Скачать MetaTrader 5
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Миллиард задач уже выполнено в MQL5 Cloud Network. Тестируй роботов еще быстрее!
evgen117
64
evgen117 2014.05.06 20:11 

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

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

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

Vitalie Postolache
11078
Vitalie Postolache 2014.05.06 21:54  
Evgen117:

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

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

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

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

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

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

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

evgen117
64
evgen117 2014.05.07 04:11  
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
11078
Vitalie Postolache 2014.05.07 09:14  

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

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

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

evgen117
64
evgen117 2014.05.07 17:38  
evillive:

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

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

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


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

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

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

Vitalie Postolache
11078
Vitalie Postolache 2014.05.07 18:55  

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

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

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

Vladislav Andruschenko
82877
Vladislav Andruschenko 2014.05.08 13:04  
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 2014.05.08 17:52  
evillive:

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

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

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


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

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

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

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

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