Форум трейдеров » Торговые роботы, советники, индикаторы » Вопросы программирования
+ Подписаться
Страница 86 из 87 ПерваяПервая ... 367684858687 ПоследняяПоследняя
  1. 405
    Комментарии
    2
    Темы
    411
    Репутация Pro
     
    Member

    2 Медалей
    Цитата Сообщение от qqmber Посмотреть сообщение
    А вот этого я не знал. Стало быть, OrderSend() доставляет ордер в статусе selected. Недокументированая фича, удобная. Век живи век учись.
    Удачи, улетел.
    Сегодня потестил, фича не подтверждается.
    OrderOpenPrice() все же работает с тем ордером, которому OrderSelect() был сделан. OrderSend() или OrderModify() на его результат не влияют.

    А в большом скрипте все хорошо, по крайней мере там не видно, чтобы было обращение к OrderOpenPrice() неведомо где селектированного ордера.

    С праздником!
    Побеждали и будем побеждать!
  2. 1,156
    Комментарии
    4
    Темы
    1189
    Репутация Pro
    Аватар для zerkmax  
    Мастер форумных наук

    4 Медалей
    Цитата Сообщение от qqmber Посмотреть сообщение
    Сегодня потестил, фича не подтверждается.
    OrderOpenPrice() все же работает с тем ордером, которому OrderSelect() был сделан. OrderSend() или OrderModify() на его результат не влияют.

    А в большом скрипте все хорошо, по крайней мере там не видно, чтобы было обращение к OrderOpenPrice() неведомо где селектированного ордера.

    С праздником!
    Побеждали и будем побеждать!
    тоже пользую такую конструкцию:
    Ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,0,0,"R SI_Buy",magicnumber,0,Green);
    if (StopLoss!=0)
    {
    OrderModify(Ticket,OrderOpenPrice(),Bid-(StopLoss*Point),OrderTakeProfit(),0,Green);
    }

    все прокатывает, но я правлю сразу же после открытия ордера, работает
    хотя проще тогда сделать:
    Ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,0,0,"R SI_Buy",magicnumber,0,Green);
    if (StopLoss!=0)
    {
    OrderModify(Ticket,Ask,Bid-(StopLoss*Point),0,0,Green);
    }
  3. 405
    Комментарии
    2
    Темы
    411
    Репутация Pro
     
    Member

    2 Медалей
    OrderModify() на открытой позиции вообще игнорирует второй параметр. Пиши что хочешь, хоть 0, хоть OrderOpenPrice() без OrderSelect-а (он тоже 0 равен), хоть 123 - ошибки не будет.
  4. 1,156
    Комментарии
    4
    Темы
    1189
    Репутация Pro
    Аватар для zerkmax  
    Мастер форумных наук

    4 Медалей
    Цитата Сообщение от qqmber Посмотреть сообщение
    OrderModify() на открытой позиции вообще игнорирует второй параметр. Пиши что хочешь, хоть 0, хоть OrderOpenPrice() без OrderSelect-а (он тоже 0 равен), хоть 123 - ошибки не будет.
    не проверял, а накой оно тогда есть?
  5. 405
    Комментарии
    2
    Темы
    411
    Репутация Pro
     
    Member

    2 Медалей
    Цитата Сообщение от zerkmax Посмотреть сообщение
    не проверял, а накой оно тогда есть?
    Чтобы отложки переставлять.
  6. 1,156
    Комментарии
    4
    Темы
    1189
    Репутация Pro
    Аватар для zerkmax  
    Мастер форумных наук

    4 Медалей
    Цитата Сообщение от qqmber Посмотреть сообщение
    Чтобы отложки переставлять.
    Семен Семеныч ;)
    Зы. что-то я туплю сегодня
  7. 3
    Комментарии
    0
    Темы
    3
    Репутация Pro
     
    Новичок

    2 Медалей
    Добрый день,
    как такое реализовать в програмирование, может кто поможет
    Вобщем линия А идет наверх линия Б идет вниз.
    тоесть выглядит это вот так if (MathAbs(А - Б) > OpenTrade), сейчас он отрывает сделки если А и Б больше чем OpenTrade
    Возможно ли сделать как то следующее.
    Пока растояние между А и Б не начнет уменьшаться (*например на 2*)не отрывать сделки и игнорировать OpenTrade, пока идет увеличение/расстояние?
  8. 2,974
    Комментарии
    7
    Темы
    2995
    Репутация Pro
     
    Banned

    4 Медалей
    Цитата Сообщение от Acobat Посмотреть сообщение
    Добрый день,
    как такое реализовать в програмирование, может кто поможет
    Вобщем линия А идет наверх линия Б идет вниз.
    тоесть выглядит это вот так if (MathAbs(А - Б) > OpenTrade), сейчас он отрывает сделки если А и Б больше чем OpenTrade
    Возможно ли сделать как то следующее.
    Пока растояние между А и Б не начнет уменьшаться (*например на 2*)не отрывать сделки и игнорировать OpenTrade, пока идет увеличение/расстояние?
    translated by google?? sorry.. do not understand..
  9. 3
    Комментарии
    0
    Темы
    3
    Репутация Pro
     
    Новичок

    2 Медалей
    Цитата Сообщение от EQU Посмотреть сообщение
    translated by google?? sorry.. do not understand..
    да нет вообще то :-)
    Попробую по другому сказать. в общем имеем два во одном Stochastic''a, то есть теперь у нас две линии, только с разными параметрами. Эти 2 линии сначала расходятся, затем снова сходятся.
    чтоб советник сравнивает относительные изменения 2х инструментов и сигнализирует
    о их значительном расжождении, а когда начинают снова сходится, чтоб открывал сделки
  10. 2,974
    Комментарии
    7
    Темы
    2995
    Репутация Pro
     
    Banned

    4 Медалей
    Цитата Сообщение от Acobat Посмотреть сообщение
    да нет вообще то :-)
    Попробую по другому сказать. в общем имеем два во одном Stochastic''a, то есть теперь у нас две линии, только с разными параметрами. Эти 2 линии сначала расходятся, затем снова сходятся.
    чтоб советник сравнивает относительные изменения 2х инструментов и сигнализирует
    о их значительном расжождении, а когда начинают снова сходится, чтоб открывал сделки
    О.. Совсем другое дело..)))
    Код:
    #property copyright "Copyright © 2012, EQU"
    
    #property indicator_separate_window
    #property indicator_buffers 1
    #property indicator_color1 Gold
    
    //qwick stoch
    extern int KP=13, DP=5, Slow=5;
    //slow stoch
    extern int KPS=36, DPS=5, SlowS=5;
    
    double Diff[];
    
    int init(){
      SetIndexStyle(0,DRAW_LINE);
      SetIndexBuffer(0,Diff);
      SetLevelValue(0,0);
      IndicatorDigits(1);
      SetIndexLabel(0,"DSX");
      IndicatorShortName("Q("+KP+","+DP+","+Slow+")"+" S("+KPS+","+DPS+","+SlowS+")");
      return(0);
    }
    
    int deinit(){ return(0);}
    
    //+------------------------------------------------------------------+
    int start(){
      int limit;
      int counted_bars=IndicatorCounted();  if(counted_bars>0) counted_bars--;
      limit=Bars-counted_bars;
      for(int i=0; i<limit; i++){
        double SX=iStochastic(NULL,0,KP,DP,Slow,MODE_SMA,0,MODE_MAIN,i);//Qwick stoch
        double SXS=iStochastic(NULL,0,KPS,DPS,SlowS,MODE_SMA,0,MODE_MAIN,i);//Slow stoch
        Diff[i]=SX-SXS;
      }
      return(0);
    }
    
    а уровни, думаю - подберёте..

Вверх
РегистрацияX

чтобы писать, читать, комментировать