Советники: Мультивалютный советник на основе кластерного индикатора - страница 5

 
lexandros:
            if (OrderStopLoss()< MarketInfo(OrderSymbol(),MODE_BID)-tr*MarketInfo(OrderSymbol(),MODE_POINT)){
//для бай 
            if (OrderStopLoss()>MarketInfo(OrderSymbol(),MODE_ASK)+tr*MarketInfo(OrderSymbol(),MODE_POINT) || (OrderStopLoss()==0)){
//для селл

таким образом тралить начинаем когда цена пересечет порог трала, а так как у вас реализовано - стоп тралится сразу.

Выкладывать свою версию не буду, потому как там есть платные функции (не мои), извините, а вот помочь в развитии хорошей идеи буду рад.

в каких строках внести ваше предложение?
Видимо автор сей поправки - немного невнимательно разобрался в коде:) В коде присутствует конструкция подобная той которую он написал. Чтобы советник правильно работал с заранее выставленнными стопами нужно изменить (как я уже писал ранее) 

Возможно. Вот код всей функции трала как он есть в моем варианте, работает без сбоев.

void tral (int tr){
int cnt,k,x;
for (cnt=0;cnt<OrdersTotal();cnt++){
   OrderSelect(cnt,SELECT_BY_POS);
   if (OrderType()==OP_BUY){
       if (OrderStopLoss()< MarketInfo(OrderSymbol(),MODE_BID)-tr*MarketInfo(OrderSymbol(),MODE_POINT) || (OrderStopLoss()==0)){
           if (MarketInfo(OrderSymbol(),MODE_BID)-OrderOpenPrice()>=tr*MarketInfo(OrderSymbol(),MODE_POINT)){
           OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(MarketInfo(OrderSymbol(),MODE_BID)-tr*MarketInfo(OrderSymbol(),MODE_POINT),MarketInfo(OrderSymbol(),MODE_DIGITS)),OrderProfit(),0);
   }}}
   if (OrderType()==OP_SELL){
       if (OrderStopLoss()>MarketInfo(OrderSymbol(),MODE_ASK)+tr*MarketInfo(OrderSymbol(),MODE_POINT) || (OrderStopLoss()==0)){
           if (OrderOpenPrice()-MarketInfo(OrderSymbol(),MODE_ASK)>=tr*MarketInfo(OrderSymbol(),MODE_POINT)){
           OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(MarketInfo(OrderSymbol(),MODE_ASK)+tr*MarketInfo(OrderSymbol(),MODE_POINT),MarketInfo(OrderSymbol(),MODE_DIGITS)),OrderProfit(),0);
}}}}
return;
}
 
walker_:

Советник очень хорош как костяк, немного доработок и оптимизации и получится почти грааль.

Немного изменил его, добавил свои функции а так же отключил закрытие - и за один день работы советник на демо-счете принес с 9к - 2к прибыли, убыточных сделок на 256 демобаксов.

Картинка дабы не быть голословным

Добрый день. Подскажите пожалуйста, как отключить закрытие позиций?

 

Подскажите пожалуйста как бороться?

В логе была масса строчек "Открываем..." но ордера не открывались. добавил в это место небольшую отладку:

18:51:51 ccfp_v3 EURUSD,M5: 2010.01.14 13:51:55 Открываем AUDUSD 0 Lots: 0.58000000 по 0.92862 TP: 0.0000000 SL: 0.92962 Point : 0.00001 Stop Level: 50.00000000
18:51:55 ccfp_v3 EURUSD,M5: 2010.01.14 13:51:58 error 130 ( invalid stops )

И так пока сигнал не пропадет. цифры меняются (цена и стоп соответственно) а ордер не открывается.

Эксперт висит на другой паре - я правильно понимаю что RefreshRates() не поможет? Есть еще какие-нибудь способы?

 

Сливает страшно

 

СЛИВ на 100% гарантирован в базовом варианте, в коректированном даже нету охоты проверять....его нужно дорабатывать и дорабатывать.

 
evbut:

с включенным ММ и тралом в 150 пунктов на альпари счет практически уничтожен с советником по умолчанию.

предлагаю советник по этому индикатору сделать так (напримере EurUsd)

когда евро по CCFp выше бакса, то рассматривать сделки только на покупку. а совершать сделки будем по другому кластерному индикатору - Complex Common (CC), у которого если после пересечения линий линия евра пошла вверх (бакса соответственно вниз) - то покупка.

Автор, примите на рассмотрение?


Да... надо посмотреть на индикатор... если можно дайте ссыль, чтобы самому не искать... прикину. Думаю - сделаю что то в этом духе.


vegetate:

Подскажите пожалуйста как бороться?

В логе была масса строчек "Открываем..." но ордера не открывались. добавил в это место небольшую отладку:

18:51:51 ccfp_v3 EURUSD,M5: 2010.01.14 13:51:55 Открываем AUDUSD 0 Lots: 0.58000000 по 0.92862 TP: 0.0000000 SL: 0.92962 Point : 0.00001 Stop Level: 50.00000000
18:51:55 ccfp_v3 EURUSD,M5: 2010.01.14 13:51:58 error 130 ( invalid stops )

И так пока сигнал не пропадет. цифры меняются (цена и стоп соответственно) а ордер не открывается.

Эксперт висит на другой паре - я правильно понимаю что RefreshRates() не поможет? Есть еще какие-нибудь способы?

Вариант первый. это проблемы не советника, а вашего ДЦ. советник пишет в комментариях "Открываю позицию бла-бла" и действительно открывает ее. т.е. выполняет функцию OrderSend - однако ваш ДЦ - тормозит. 

Вариант второй (предположение) - вы выставили стоплосс меньше чем разрешено вашим ДЦ для данной пары. в данном случае AUDUSD - для нее и так спред немаленький а кроме того если еще время новостей совпало - вот вам и неправильные стопы.

Вариант третий (опять же предположение) - вы что то самостоятельно меняли в коде и видимо некорректно... насколько я вижу из логов - если это не ваша опечатка - у вас стоплосс для сделки бай - больше чем цена открытия - это естественно неправильно. Однако советник так торговать не может. в коде в этом отношении все верно. 

и позиция не открывается. советник на следующем тике - вновь пытается ее открыть. и так будет до тех пор, пока либо позиция не откроется, либо сигнал не исчезнет с появлением нового бара.

 

lexandros писал(а):

vegetate писал(а):

Подскажите пожалуйста как бороться?

В логе была масса строчек "Открываем..." но ордера не открывались. добавил в это место небольшую отладку:

18:51:51 ccfp_v3 EURUSD,M5: 2010.01.14 13:51:55 Открываем AUDUSD 0 Lots: 0.58000000 по 0.92862 TP: 0.0000000 SL: 0.92962 Point : 0.00001 Stop Level: 50.00000000
18:51:55 ccfp_v3 EURUSD,M5: 2010.01.14 13:51:58 error 130 ( invalid stops )

И так пока сигнал не пропадет. цифры меняются (цена и стоп соответственно) а ордер не открывается.

Эксперт висит на другой паре - я правильно понимаю что RefreshRates() не поможет? Есть еще какие-нибудь способы?

Вариант первый. это проблемы не советника, а вашего ДЦ. советник пишет в комментариях "Открываю позицию бла-бла" и действительно открывает ее. т.е. выполняет функцию OrderSend - однако ваш ДЦ - тормозит.

Вариант второй (предположение) - вы выставили стоплосс меньше чем разрешено вашим ДЦ для данной пары. в данном случае AUDUSD - для нее и так спред немаленький а кроме того если еще время новостей совпало - вот вам и неправильные стопы.

Вариант третий (опять же предположение) - вы что то самостоятельно меняли в коде и видимо некорректно... насколько я вижу из логов - если это не ваша опечатка - у вас стоплосс для сделки бай - больше чем цена открытия - это естественно неправильно. Однако советник так торговать не может. в коде в этом отношении все верно.

и позиция не открывается. советник на следующем тике - вновь пытается ее открыть. и так будет до тех пор, пока либо позиция не откроется, либо сигнал не исчезнет с появлением нового бара.

1. Да, это именно ДЦ, я и спрашивал, есть-ли способ бороться средствами МТ.

2 и 3. Верное предположение (касательно именно этого случая). Я и полез править-то чтобы добавить проверку MarketInfo(sym, MODE_STOPLEVEL). Это уже был 3-й вариант переделки, перепутал BUY и SELL сигналы.

но оно и раньше случалось:

00:30:02 ccfp_v3 EURUSD,M5: Открываем AUDCHF 1 Lots: 0.2 по 0.9402 TP: 0.9382 SL: 0.9415 Point (*10000): 1 Stop Level: 120
00:30:02 ccfp_v3 EURUSD,M5: error(130)

(пятизнак, строчка не форматированная, но и так видно, что ( 0.9415х - 0.9402х ) > 120 ) Скорее всего да, время новостей.

Ну и пожелания:

1. при открытии ордера проверять MODE_STOPLEVEL (для себя я его еще расширил, чтобы не попадать на тормоза системы с выставленным впритык к этому значению стопом или профитом)

2. то-же при трейлинге.

3. при трейлинге смотреть Magic.

4. При открытии смотреть например на цену, если 0 - то такой пары ДЦ не предоставляет, ордер не открывать.

 
vegetate:


Ну и пожелания:

1. при открытии ордера проверять MODE_STOPLEVEL (для себя я его еще расширил, чтобы не попадать на тормоза системы с выставленным впритык к этому значению стопом или профитом)

2. то-же при трейлинге.

3. при трейлинге смотреть Magic.

4. При открытии смотреть например на цену, если 0 - то такой пары ДЦ не предоставляет, ордер не открывать.


Предложения интересные, спасибо. Постараюсь учесть в следующем советнике... Сейчас плотно занят на основной работе. Как только будет времени побольше, попробую сделать что-то подобное тому что предложил evbut

 

lexandros

Кинул в личку индюк

 
evbut:

lexandros

Кинул в личку индюк


Спс. бум поглядеть:)

Причина обращения: