Logo

Вход

Войти с помощью соц. сетей
X
 
  • Фильтр
  • Время
  • Показать
Очистить всё
новые сообщения
  • #1 Свернуть

    Как добавить LotExponent в любого mq4 советника?

    Я думаю из названия всё понятно!
    Обращаюсь к профи.
    Хочу добавить LotExponent (как в Ilan) в советник
    Уважаемые программисты, если не трудно, скиньте хотя-бы кусок кода. А лучше скажите куда его вставлять
    Я уверен что начинающему программисту и трейдеру это очень пригодится!
    Потому что почти все советники входят без индюков и без лоссов.
    А Мартингейл хорошо себя зарекомендовал
    Я добавил в своего красатулю лоссы. Но как добавить умножалку?
    Заранее спасибо!
  • <a href="https://www.instaforex.org/ru/?x=ruforum">InstaForex</a>
  • #2 Свернуть

    Вот функция которя в сдучае закрытия последнего ордера в минус вернет его лот умноженный на коэффициент или ( в случае зарытия последнего в плючь) первоначальный лот.
    Предопределенные параметры:
    lot-первоначальный лот
    koef - коэффициент мартина
    key-маджик номер с которым работает советник
    PHP код:
    double  getlotlast()
     {
      if(
    MarketInfo(Symbol(),MODE_LOTSTEP)==0.01int dig =2;
      if(
    MarketInfo(Symbol(),MODE_LOTSTEP)==0.10)     dig =1;
      if(
    MarketInfo(Symbol(),MODE_LOTSTEP)==1.00)     dig =0;
           
    double _lot lot ;  
                  for(
    int i=OrdersHistoryTotal(); i>=0i--)
                    {  
                      if (
    OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)&&OrderSymbol()==Symbol()&& OrderMagicNumber()==key && OrderType()<=1){
                       if(
    OrderProfit()<0){_lot=NormalizeDouble(OrderLots()*koef,dig); break;}
                       if(
    OrderProfit()>=0) break;
                       }
                    } 
                  return(
    _lot); 
     } 
    Результат функции подставляю в место открытия очередного ордера.
    пишу советники (скрипты,индикаторы) за еду...тут

    Комментарий

    • #3 Свернуть

      Сообщение от vasili Посмотреть сообщение
      Вот функция которя в сдучае закрытия последнего ордера в минус вернет его лот умноженный на коэффициент или ( в случае зарытия последнего в плючь) первоначальный лот.
      Предопределенные параметры:
      lot-первоначальный лот
      koef - коэффициент мартина
      key-маджик номер с которым работает советник
      PHP код:
      double  getlotlast()
       {
        if(
      MarketInfo(Symbol(),MODE_LOTSTEP)==0.01int dig =2;
        if(
      MarketInfo(Symbol(),MODE_LOTSTEP)==0.10)     dig =1;
        if(
      MarketInfo(Symbol(),MODE_LOTSTEP)==1.00)     dig =0;
             
      double _lot lot ;  
                    for(
      int i=OrdersHistoryTotal(); i>=0i--)
                      {  
                        if (
      OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)&&OrderSymbol()==Symbol()&& OrderMagicNumber()==key && OrderType()<=1){
                         if(
      OrderProfit()<0){_lot=NormalizeDouble(OrderLots()*koef,dig); break;}
                         if(
      OrderProfit()>=0) break;
                         }
                      } 
                    return(
      _lot); 
       } 
      Результат функции подставляю в место открытия очередного ордера.
      Наверно тогда придется еще в статическую переменную дату включения советника забить, и проверять дату закрытых ордеров, а то получится так что советник перезапустил, а он подхватит последний ордер из истории и возьмет его лот, вместо того чтобы использовать начальный

      PHP код:
      static int time;

      int init()
        {
        
      time TimeCurrent();
        } 
      и в счетчике

      PHP код:
      if(OrderOpenTime() > time)
        {
        
      time OrderOpenTime();
        
      тра та та
        

      Комментарий

      • <a href="https://www.instaforex.org/ru/?x=ruforum">InstaForex</a>
      • #4 Свернуть

        Vasili спасибо за код, и sss2019 за то что усовершенствовал!
        Может ещё кто-то что-то добавит в код?
        Хотя моя проблема уже решена, но было бы неплохо довести до идеала!

        Комментарий

        Сейчас онлайн

        working...
        X