Скачать MetaTrader 5

Проблемы с тестером стратегий!!!

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
evgen117
64
evgen117  

Решил советник провести по истории - открывает только короткие позиции, несмотря на то, что в свойствах позначил открытие в обе стороны. Подскажите, пожалуйста, в чем проблемы? в коде?

2) можно ли ТР настроить "скользящим" (чтобы по мере роста/падения цены перемещался вверх/вниз) или он прописывается только "жестко"?

3) чтобы заходить по цене на один пункт отличающейся от МА можно ли прописать это как (Price= iMA(...) +/- Point)? или это нужно прописать немного по другому?

Vitalie Postolache
12449
Vitalie Postolache  
Evgen117:

Решил советник провести по истории - открывает только короткие позиции, несмотря на то, что в свойствах позначил открытие в обе стороны. Подскажите, пожалуйста, в чем проблемы? в коде?

2) можно ли ТР настроить "скользящим" (чтобы по мере роста/падения цены перемещался вверх/вниз) или он прописывается только "жестко"?

3) чтобы заходить по цене на один пункт отличающейся от МА можно ли прописать это как (Price= iMA(...) +/- Point)? или это нужно прописать немного по другому?

Судя по вопросам, проблемы с программистом, а не с тестером стратегий )

По первому пункту, кода не видно, ответить никто не сможет.

2) такое называется трейлинг уровня тэйкпрофита, аналогично трейлингу уровня стоплосса, реализуется так же.

3) "немного по-другому" - это слишком мягко сказано...

evgen117
64
evgen117  
evillive:

Судя по вопросам, проблемы с программистом, а не с тестером стратегий )

По первому пункту, кода не видно, ответить никто не сможет.

2) такое называется трейлинг уровня тэйкпрофита, аналогично трейлингу уровня стоплосса, реализуется так же.

3) "немного по-другому" - это слишком мягко сказано...


1) // Торговые критерии
_VHL = Low[iLowest(Symbol(),0,1,KPeriod,0)];

_VHH = High[iHighest(NULL,0,2,KPeriod,0)];

if (_VHH <= NormalizeDouble(MODE_ASK,Digits))

{

Opn_B=true;

}

if (_VHL >= NormalizeDouble(MODE_BID,Digits))

{

Opn_S=true;

}

while(true)

{

if (Total==0 && Opn_B==true)

{

RefreshRates();

SL=Bid - New_Stop(StopLoss)*Point;

TP=Bid + New_Stop(TakeProfit)*Point;

Alert("Попытка открыть Buy. Ожидание ответа..");

Ticket=OrderSend(Symb,OP_BUY,Lts,MarketInfo(Symbol(),MODE_ASK),2,SL,TP);

if (Ticket > 0)

{

Alert ("Открыт ордер Buy ",Ticket);

return;

}

if (Fun_Error(GetLastError())==1)

continue;

return;

}

это часть кода, весь не сбрасываю, поскольку в короткие позиции заходит

2) в коде я так понимаю как раз и прописан "трэйлинг уровня ТР/СЛ"?

3) Дайте пожалуйста, наводку, где почитать, как правильно это прописать.

Vitalie Postolache
12449
Vitalie Postolache  

В журнале прям таки никаких ошибок не появляется при попытках войти в покупку? Может там всегда в такой момент есть незакрытая короткая позиция и стоит её закрыть перед попыткой купить?

И хде там "трейлинг"? В предоставленном куске кода нету приказов на модификацию позиций.

Касаемо кода на сравнение текущей цены с уровнем МА, так в кодобазе полно советников, так или иначе применяющих МА, совершенно бесплатных. Да и в поставке терминала есть один, "Moving Average".

evgen117
64
evgen117  
evillive:

В журнале прям таки никаких ошибок не появляется при попытках войти в покупку? Может там всегда в такой момент есть незакрытая короткая позиция и стоит её закрыть перед попыткой купить?

И хде там "трейлинг"? В предоставленном куске кода нету приказов на модификацию позиций.

Касаемо кода на сравнение текущей цены с уровнем МА, так в кодобазе полно советников, так или иначе применяющих МА, совершенно бесплатных. Да и в поставке терминала есть один, "Moving Average".


1) в том то и дело - не выдает никакой ошибки (разве что я тоже подумал про то, что может накладываются друг на друга короткие и длинные, поставил в свойствах входы только на длинных и вот тогда мне впервые выдало ошибку - 4111 (запрещены короткие)) - так что не знаю - это в коде ошибка или ну не знаю... проблемы с ДЦ (О_о) .... прям бермудский треугольник.

2) с Ваших слов я понял, что "трейлинг" нужно прописывать через модификацию (OrderModifу)???

3) Ок, спс, посмотрю, но (я могу ошибаться) те коды на имашки, которые я видел - так просто прописано тупое вхождение при "одна имашка больше/меньше другой" - имею ввиду, что эти параметры входа могут длиться днями/неделями/месяцами, а я именно думал, как прописать чтобы вошло при цене, отличающейся от имашки на один пункт (грубо говоря, на пробой), или такие советники тоже есть?

Vitalie Postolache
12449
Vitalie Postolache  

1) Внимательно прочитайте устав ДЦ

2) Да, именно через OrderModifу, опять же в кодобазе примеров реализации тысячи

3) Никто не мешает сравнивать не две МА, а цену и МА. Но такая стратегия (пробоя МА) заведомо убыточна, проверено поколениями трейдеров.

Vladislav Andruschenko
101671
Vladislav Andruschenko  
Evgen117:

1) // Торговые критерии
_VHL = Low[iLowest(Symbol(),0,1,KPeriod,0)];

_VHH = High[iHighest(NULL,0,2,KPeriod,0)];

if (_VHH <= NormalizeDouble(MODE_ASK,Digits))

{

Opn_B=true;

}

if (_VHL >= NormalizeDouble(MODE_BID,Digits))

{

Opn_S=true;

}

while(true)

{

if (Total==0 && Opn_B==true)

{

RefreshRates();

SL=Bid - New_Stop(StopLoss)*Point;

TP=Bid + New_Stop(TakeProfit)*Point;

Alert("Попытка открыть Buy. Ожидание ответа..");

Ticket=OrderSend(Symb,OP_BUY,Lts,MarketInfo(Symbol(),MODE_ASK),2,SL,TP);

if (Ticket > 0)

{

Alert ("Открыт ордер Buy ",Ticket);

return;

}

if (Fun_Error(GetLastError())==1)

continue;

return;

}

это часть кода, весь не сбрасываю, поскольку в короткие позиции заходит

2) в коде я так понимаю как раз и прописан "трэйлинг уровня ТР/СЛ"?

3) Дайте пожалуйста, наводку, где почитать, как правильно это прописать.

где в Вашем коде упоминание про селл ордер? открытие?
evgen117
64
evgen117  
evillive:

1) Внимательно прочитайте устав ДЦ

2) Да, именно через OrderModifу, опять же в кодобазе примеров реализации тысячи

3) Никто не мешает сравнивать не две МА, а цену и МА. Но такая стратегия (пробоя МА) заведомо убыточна, проверено поколениями трейдеров.


По поводу функции OrderModifу - она единоразовая или повторяется (имею ввиду, если пропишу какуюто переменную (например, ТР=Бид*какой-то индекс(1.012 например)) - у меня (точнее в открытой позиции) будет изменяться ТР каждый раз при новом поступлении? а можно как-то зафиксировать? например, чтобы на следующем биде после Опенпрайс оно пересчитало мне ТР и больше не пересчитывало?
Vitalie Postolache
12449
Vitalie Postolache  
Evgen117:

По поводу функции OrderModifу - она единоразовая или повторяется (имею ввиду, если пропишу какуюто переменную (например, ТР=Бид*какой-то индекс(1.012 например)) - у меня (точнее в открытой позиции) будет изменяться ТР каждый раз при новом поступлении? а можно как-то зафиксировать? например, чтобы на следующем биде после Опенпрайс оно пересчитало мне ТР и больше не пересчитывало?

как закодить - так и будет...
evgen117
64
evgen117  
evillive:

как закодить - так и будет...

Спс
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий