Автор |
Сообщение |
Alex14
Зарегистрирован: 12.11.2010
Сообщения: 90
|
Система честно подсмотрена на одном сайте http://www.jc-trader.com/2013/12/eurofsb.html#more Описание таково
Цитата: |
Начитался квантов, тоже решил попробовать как они Smile
В общем, получилась система, которая позволяла на истории зарабатывать на валютной паре EURUSD либо на фьючерсе на Евро. Правила довольно просты.
Для длинных позиций:
1. Если на сегодняшний день нет открытых позиций
2. Если сегодняшний лоу выше хая прошлого месяца
3. Если индикатор ROC, построенный по ценам закрытия с периодом 10, сегодня меньше чем вчера
Выставляем лимитный ордер на открытие позиции по цене вчерашнего лоу
Для коротких позиций все наоборот.
Если открылась позиция, закрываем ее в конце дня. |
дальше присутствует тест и код для WealthLab 6
Код: |
using System;
using System.Collections.Generic;
using System.Text;
using System.Drawing;
using WealthLab;
using WealthLab.Indicators;
namespace WealthLab.Strategies
{
public class MyStrategy : WealthScript
{
protected override void Execute()
{
SetScaleMonthly();
DataSeries MonthlyHigh = High;
DataSeries MonthlyLow = Low;
RestoreScale();
MonthlyHigh = Synchronize(MonthlyHigh);
MonthlyLow = Synchronize(MonthlyLow);
DataSeries PC = ROC.Series(Close, 10);
ChartPane PCPane = CreatePane( 60, true, true );
PlotSeries(PCPane,PC,Color.Green,LineStyle.Histogram,1);
PlotSeries(PricePane,MonthlyHigh,Color.Red,LineStyle.Solid,1);
PlotSeries(PricePane,MonthlyLow,Color.Green,LineStyle.Solid,1);
PlotStops();
for(int bar = 20; bar < Bars.Count; bar++)
{
if (IsLastPositionActive)
{
SellAtClose(bar, LastPosition);
CoverAtClose(bar, LastPosition);
}
if ( LastActivePosition == null )
if(Low[bar] > MonthlyHigh[bar-1])
if(PC[bar] < PC[bar-1])
BuyAtLimit(bar+1, Low[bar]);
if ( LastActivePosition == null )
if(High[bar] < MonthlyLow[bar-1])
if(PC[bar] > PC[bar-1])
ShortAtLimit(bar+1, High[bar]);
}
}
}
} |
Загвоздка как прописать хай и лой за предыдущий месяц без сдвига, как у автора. Ну или может кто то сваяет код целиком))) |
_________________ Деда Мороза не существует!!! |
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
По описанию кажись так
Код: |
MontlyH = TimeFrameGetPrice("H", inMonthly, -1);
MontlyL = TimeFrameGetPrice("L", inMonthly, -1);
ROCBuyCond = ROC(C, 10) > Ref(ROC(C, 10), -1);
ROCShortCond = ROC(C, 10) < Ref(ROC(C, 10), -1);
BuyCond = ROCBuyCond AND L > MontlyH;
Buy = Ref(BuyCond, -1) AND L < Ref(L, -1);
BuyPrice = Max(Ref(L, -1), O);
ShortCond = ROCShortCond AND H < MontlyL;
Short = Ref(ShortCond, -1) AND H > Ref(H, -1);
BuyPrice = Min(Ref(H, -1), O);
SellPrice = CoverPrice = C;
Sell = Cover = 1;
|
|
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
Alex14
Зарегистрирован: 12.11.2010
Сообщения: 90
|
Спасибо, буду смотреть |
_________________ Деда Мороза не существует!!! |
|
Посмотреть профиль Отправить личное сообщение |
|
|
|
Следующая тема
Предыдущая тема
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах Вы не можете вкладывать файлы Вы не можете скачивать файлы
|
|