[АРХИВ] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 3. - страница 66

 
vovan-gogan:

А в чем смысл? Уровень SL правильный. Когда присваиваю переменной SL значение MA20 со сдвигом 3, я вывожу через Alert уровень SL и он всегда на нужном уровне. Тока не пойму почему отложник удаляется до достижения уровня SL.

Не, ну если для Вас важно не проблему устранить, а пообщаться, тогда я пас.
 
PapaYozh:

Не, ну если для Вас важно не проблему устранить, а пообщаться, тогда я пас.

Да нет, как раз наоборот. последую Вашему совету. Посмотрим что выйдет
 
Меня смущает то, что удаляются оба типа ордеров BUYSTOP / SELLSTOP по одному условию, как минимум это разные вещи. Полагаю есть еще один похожий фрагмент кода и последовательно выполняясь они удалят все отложки.
 
splxgf:
Меня смущает то, что удаляются оба типа ордеров BUYSTOP / SELLSTOP по одному условию, как минимум это разные вещи. Полагаю есть еще один похожий фрагмент кода и последовательно выполняясь они удалят все отложки.

Неа. Не по одному. Просто для наглядности я представил часть фрагмента кода, который отражает случай с удалением ордера SellStop
 
vovan-gogan:

Неа. Не по одному.
   if (OrderType() == OP_BUYSTOP || OrderType() == OP_SELLSTOP)

Один из типов ордера находится под ценой, другой над ценой... а условие для их закрытия одно Bid>SL... спрашивается где здесь логика.

Рекомендую убрать из условия один тип ордеров, ну или можно тупить дальше.

 
vovan-gogan:

люди, помогите разобраться что это за жуть! У меня эксперт расчитан на то, чтобы выставлять отложник, а в случае, если цена не доходит до него, а разворачивается до уровня его стопа, то отложник должен быть удален. но на тестере иногда выставляется отложник и сразу же удаляется даже не доходя до стопа. В чем тут дело? Вот скрин и код удаления.

А вот код:

В чем здесь ошибка?

В самой первой же строке (об остальных помолчим)... Если Бид ниже СтопЛося вашего ордера...
А ордер выставляется ниже Бида и его стоп оказывается тоже ниже Бида. По первой строке кода тут же он и удаляется.
 
Здравствуйте, совсем уж нубский вопрос..наверное. На скринах у людей  часто вижу на стандартных (родные инструменты МТ4) Фибо уровнях и Фибо расширениях, после Фибо числа указанна цена на которой стоит уровень.....собственно вопрс : как это включить? кудой тыркнуть, чтобы на уровнях цена стала отображаться ?
 
Vinin:

Перенесено



Здравствуйте, помогите, пожалуйста... Здесь есть индикатор. Можно ли к нему прикрепить звуковой сигнал при отрисовке нового отрезка? ZigzagFr_v1.mq4 (4.4 Kb) View
 
Добрый день! Я что-то не пойму. Я решил себе прикрутить советнику трейлинг-стоп, а он все пишет ашибка 130. Ничего не магу понять, и вчера не мог.
  } }
   
   
  //+------------------------------------------------------
  double JUN;int tiktik;
   for ( i=0; i<OrdersTotal(); i++) {   OrderSelect(i,SELECT_BY_POS );if(( OrderMagicNumber( )==1000 &&OrderSymbol()==Symbol())) { 
      if( OrderType( )!=OP_BUY ) continue;
     if (price-OrderOpenPrice( )>30*Point) {JUN= price-OrderOpenPrice( );tiktik=OrderTicket();} }} 
     
     Alert("Позиция с тикетом #",tiktik," имеет JUN, ",JUN);Alert("JUN",JUN,"JUNpomnim",JUNpomnim);
    if (JUN>0){if (JUN>JUNpomnim){Alert("JUN",JUN,"JUNpomnim+++++++++++++++++++++++++",JUNpomnim);
      OrderModify(tiktik,OrderOpenPrice(),price-15*Point,OrderTakeProfit(),0,0);     JUNpomnim=JUN;
      Alert("OrderModify-BAY", GetLastError()); }}
      
      
      
  double BAN;int tiktAk;
   for ( i=0; i<OrdersTotal(); i++) {   OrderSelect(i,SELECT_BY_POS );if(( OrderMagicNumber( )==2000 &&OrderSymbol()==Symbol())) { 
      if( OrderType( )!=OP_SELL ) continue;
     if (OrderOpenPrice( )-price>30*Point) {BAN= OrderOpenPrice( )-price;tiktAk=OrderTicket();} }} 
     
     Alert("Позиция с тикетом #",tiktAk," имеет BAN, ",BAN);Alert("BAN",BAN,"BANpomnim",BANpomnim);
    if (BAN>0){ if (BAN>BANpomnim){Alert("BAN",BAN,"BANpomnim++++++++++++++++++++++++++++",BANpomnim);
      OrderModify(tiktAk,OrderOpenPrice(),price+15*Point,OrderTakeProfit(),0,0);  BANpomnim=BAN;
       Alert("OrderModify-SELL", GetLastError()); }}
    

  
   return(0);
  }
//+------------------------------------------------------

Смотрите, пожалуста, строку именно с модификацией, в ней вазникает ашибка. Ну,соответствено, стоплосс щитается для бая на 15 пунктов выше цены, для селла наоборот.

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

А пирименную price я считаю на каждом тике, и считаю так

int X,Y; double price=NormalizeDouble((Ask+Bid)/2,4); 

Что еще написать?В общем, я как ни думал, ну все же правильно.

Я хоть участок кода написал без плана, не задумавшись, имено сачинив по ходу, однако же он правилен

 
Dimka-novitsek:
Добрый день! Я что-то не пойму. Я решил себе прикрутить советнику трейлинг-стоп, а он все пишет ашибка 130. Ничего не магу понять, и вчера не мог.

Смотрите, пожалуста, строку именно с модификацией, в ней вазникает ашибка. Ну,соответствено, стоплосс щитается для бая на 15 пунктов выше цены, для селла наоборот.

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

А пирименную price я считаю на каждом тике, и считаю так

Что еще написать?В общем, я как ни думал, ну все же правильно.

Я хоть участок кода написал без плана, не задумавшись, имено сачинив по ходу, однако же он правилен

в такой каше сложно что-то предложить.

Ну для начала:

1) не надо писать по 2-3 оператора в строку, все смешивается и плохо читается

2) переменная JUNpomnim. Где ей "выдается" начальное значение? Она одна для всех -дцати открытых ордеров?

Простой пример. ордеров у вас 2. вы перенесли SL первого, изменили эту переменную.. и все. Второй уже перенесен не будет, потому что JUN = JUNpomnim

3) при использовании OrderModify() нормализуйте все цены

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