Новые сообщения · Участники · Правила форума · Поиск · RSS · Вход · Регистрация ·

Страница 19 из 20«1217181920»
Форум трейдеров » Скрипты Советники Индикаторы для Metatrader4/Metatrader5 » MT 4 MQL программирование, помощь. » Доработка советника.
Доработка советника.

Иван1946Дата: Понедельник, 23.01.2017, 15:56 | Сообщение # 181
Трейдер - Майор
Группа: Пользователи
Сообщений: 81
Награды: 0
Статус: Offline


[Бонусы за сообщения ]

Здравствуйте!Доработайте пожалуйста советник, чтобы открывал сделки всегда фиксированным лотом. Спасибо!

Прикрепления: SteadyWinner_v_.rar(70Kb)
 
СообщениеЗдравствуйте!Доработайте пожалуйста советник, чтобы открывал сделки всегда фиксированным лотом. Спасибо!

Автор - Иван1946
Дата добавления - 23.01.2017 в 15:56

expforexДата: Понедельник, 23.01.2017, 16:17 | Сообщение # 182
Главный Администартор
Группа: Администраторы
Сообщений: 9043
Награды: 29
Статус: Offline


[Бонусы за сообщения ]

extern double LOTSFIX=0.1;



Код
void f0_6() {
   double price_0;
   double price_8;
   int ticket_16;
   if (G_lots_284 != 0.0) {
      price_0 = 0;
      price_8 = 0;
      ticket_16 = OrderSend(Symbol(), OP_BUY, LOTSFIX, Ask, G_slippage_388, 0, 0, CommentTxt, MagicNo, 0, G_color_420);
      if (ticket_16 > -1) {
         OrderSelect(ticket_16, SELECT_BY_TICKET);
         if (Gd_236 > 0.0) price_0 = NormalizeDouble(OrderOpenPrice() - Gd_236 * Gd_380, Digits);
         if (Gd_244 > 0.0) price_8 = NormalizeDouble(OrderOpenPrice() + Gd_244 * Gd_380, Digits);
         OrderModify(OrderTicket(), OrderOpenPrice(), price_0, price_8, 0, Green);
      }
      if (ticket_16 > -1 && Gi_408) PlaySound(Gs_412);
   }
}
                    
// B6832796D33422B67F3123C913057ADB
void f0_7() {
   double price_0;
   double price_8;
   int ticket_16;
   if (G_lots_284 != 0.0) {
      price_0 = 0;
      price_8 = 0;
      ticket_16 = OrderSend(Symbol(), OP_SELL, LOTSFIX, Bid, G_slippage_388, 0, 0, CommentTxt, MagicNo, 0, G_color_428);
      if (ticket_16 > -1) {
         OrderSelect(ticket_16, SELECT_BY_TICKET);
         if (Gd_236 > 0.0) price_0 = NormalizeDouble(OrderOpenPrice() + Gd_236 * Gd_380, Digits);
         if (Gd_244 > 0.0) price_8 = NormalizeDouble(OrderOpenPrice() - Gd_244 * Gd_380, Digits);
         OrderModify(OrderTicket(), OrderOpenPrice(), price_0, price_8, 0, Green);
      }
      if (ticket_16 > -1 && Gi_408) PlaySound(Gs_412);
   }
}


Это декомпил



Программирование на заказ || Наши Разработки

 
Сообщениеextern double LOTSFIX=0.1;


Код
void f0_6() {
   double price_0;
   double price_8;
   int ticket_16;
   if (G_lots_284 != 0.0) {
      price_0 = 0;
      price_8 = 0;
      ticket_16 = OrderSend(Symbol(), OP_BUY, LOTSFIX, Ask, G_slippage_388, 0, 0, CommentTxt, MagicNo, 0, G_color_420);
      if (ticket_16 > -1) {
         OrderSelect(ticket_16, SELECT_BY_TICKET);
         if (Gd_236 > 0.0) price_0 = NormalizeDouble(OrderOpenPrice() - Gd_236 * Gd_380, Digits);
         if (Gd_244 > 0.0) price_8 = NormalizeDouble(OrderOpenPrice() + Gd_244 * Gd_380, Digits);
         OrderModify(OrderTicket(), OrderOpenPrice(), price_0, price_8, 0, Green);
      }
      if (ticket_16 > -1 && Gi_408) PlaySound(Gs_412);
   }
}
                    
// B6832796D33422B67F3123C913057ADB
void f0_7() {
   double price_0;
   double price_8;
   int ticket_16;
   if (G_lots_284 != 0.0) {
      price_0 = 0;
      price_8 = 0;
      ticket_16 = OrderSend(Symbol(), OP_SELL, LOTSFIX, Bid, G_slippage_388, 0, 0, CommentTxt, MagicNo, 0, G_color_428);
      if (ticket_16 > -1) {
         OrderSelect(ticket_16, SELECT_BY_TICKET);
         if (Gd_236 > 0.0) price_0 = NormalizeDouble(OrderOpenPrice() + Gd_236 * Gd_380, Digits);
         if (Gd_244 > 0.0) price_8 = NormalizeDouble(OrderOpenPrice() - Gd_244 * Gd_380, Digits);
         OrderModify(OrderTicket(), OrderOpenPrice(), price_0, price_8, 0, Green);
      }
      if (ticket_16 > -1 && Gi_408) PlaySound(Gs_412);
   }
}


Это декомпил

Автор - expforex
Дата добавления - 23.01.2017 в 16:17

genДата: Среда, 01.02.2017, 15:51 | Сообщение # 183
Трейдер - Рядовой
Группа: Пользователи
Сообщений: 10
Награды: 0
Статус: Offline


[Бонусы за сообщения ]

Здравствуйте. Прошу прикрутить к советнику простой трал стоплосса. Нулевое значение переменной во входных параметрах означает отсутствие трала.

Прикрепления: Turtles.mq4(19Kb)
 
СообщениеЗдравствуйте. Прошу прикрутить к советнику простой трал стоплосса. Нулевое значение переменной во входных параметрах означает отсутствие трала.

Автор - gen
Дата добавления - 01.02.2017 в 15:51

expforexДата: Среда, 01.02.2017, 15:56 | Сообщение # 184
Главный Администартор
Группа: Администраторы
Сообщений: 9043
Награды: 29
Статус: Offline


[Бонусы за сообщения ]

приветствую,

возьмите мой код:

внешние переменные:


Код
extern string Trailing_="Настройки трейлингстопа";
extern bool TrailingStopUSE=false;        // Использовать трейлингстоп 
extern bool IfProfTrail=false;            // Использовать только дял профитных позиций - режим безубытка
extern int TrailingStop=0;                // Дистанция трейлинга = 0 - минимально допустимый
extern int TrailingStep=1;                // Шаг дистанции


в старте или OnTick
     
Код
if(TrailingStopUSE)SimpleTrailing(Symbol(),-1,Magic);


Функция трала:

Код
//+----------------------------------------------------------------------------+
//|  Описание : Сопровождение позиций простым тралом                           |
//+----------------------------------------------------------------------------+
//|  Параметры:                    |
//|    sy - наименование инструмента   ( ""  - любой символ,                   |
//|                    NULL - текущий символ)                 |
//|    op - операция                   ( -1  - любая позиция)                  |
//|    mn - MagicNumber                ( -1  - любой магик)                    |
//+----------------------------------------------------------------------------+
void SimpleTrailing(string sy="",int op=-1,int mn=-1)
  {
   double po,pp;
   int    i,k=OrdersTotal();
   string Autor=" Автор функции для шаблона : www.expforex.com";

   if(sy=="0") sy=Symbol();
   if(TrailingStop==0)TrailingStop=MarketInfo(Symbol(),MODE_STOPLEVEL);
   for(i=0;i<k;i++)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
        {
         if((OrderSymbol()==sy || sy=="") && (op<0 || OrderType()==op))
           {
            po=MarketInfo(OrderSymbol(),MODE_POINT);
            if(mn<0 || OrderMagicNumber()==mn)
              {
               if(OrderType()==OP_BUY)
                 {
                  pp=MarketInfo(OrderSymbol(),MODE_BID);
                  if((!IfProfTrail && OrderProfit()>0) || pp-OrderOpenPrice()>TrailingStop*po)
                    {
                     if(OrderStopLoss()<pp-(TrailingStop+TrailingStep-1)*po)
                       {
                        ModifyOrder(-1,pp-TrailingStop*po,-1);
                       }
                    }
                 }
               if(OrderType()==OP_SELL)
                 {
                  pp=MarketInfo(OrderSymbol(),MODE_ASK);
                  if((!IfProfTrail && OrderProfit()>0) || OrderOpenPrice()-pp>TrailingStop*po)
                    {
                     if(OrderStopLoss()>pp+(TrailingStop+TrailingStep-1)*po || OrderStopLoss()==0)
                       {
                        ModifyOrder(-1,pp+TrailingStop*po,-1);
                       }
                    }
                 }
              }
           }
        }
     }
  }


Функция модификации

Код
void ModifyOrder(double pp=-1,double sl=0,double tp=0,datetime ex=0)
  {
   bool   fm;
   double op,pa,pb,os,ot;
   int    dg=MarketInfo(OrderSymbol(),MODE_DIGITS),er,it;
   string Autor=" Автор функции для шаблона : www.expforex.com";

   if(pp<=0) pp=OrderOpenPrice();
   if(sl<0 ) sl=OrderStopLoss();
   if(tp<0 ) tp=OrderTakeProfit();

   pp=NormalizeDouble(pp, dg);
   sl=NormalizeDouble(sl, dg);
   tp=NormalizeDouble(tp, dg);
   op=NormalizeDouble(OrderOpenPrice() , dg);
   os=NormalizeDouble(OrderStopLoss()  , dg);
   ot=NormalizeDouble(OrderTakeProfit(), dg);

   if(pp!=op || sl!=os || tp!=ot)
     {
      for(it=1; it<=3; it++)
        {
         if(!IsTesting() && (!IsExpertEnabled() || IsStopped())) break;
         RefreshRates();
         fm=OrderModify(OrderTicket(),pp,sl,tp,ex);
         if(fm)
           {
            break;
              } else {
            er=GetLastError();
            pa=MarketInfo(OrderSymbol(), MODE_ASK);
            pb=MarketInfo(OrderSymbol(), MODE_BID);
            Print("Error(",er,") modifying order: ",", try ",it);
            Print("Ask=",pa,"  Bid=",pb,"  sy=",OrderSymbol(),
                  "  op="+OrderType(),"  pp=",pp,"  sl=",sl,"  tp=",tp);
           }
        }
     }
  }



Программирование на заказ || Наши Разработки

 
Сообщениеприветствую,

возьмите мой код:

внешние переменные:

Код
extern string Trailing_="Настройки трейлингстопа";
extern bool TrailingStopUSE=false;        // Использовать трейлингстоп 
extern bool IfProfTrail=false;            // Использовать только дял профитных позиций - режим безубытка
extern int TrailingStop=0;                // Дистанция трейлинга = 0 - минимально допустимый
extern int TrailingStep=1;                // Шаг дистанции


в старте или OnTick
     
Код
if(TrailingStopUSE)SimpleTrailing(Symbol(),-1,Magic);


Функция трала:

Код
//+----------------------------------------------------------------------------+
//|  Описание : Сопровождение позиций простым тралом                           |
//+----------------------------------------------------------------------------+
//|  Параметры:                    |
//|    sy - наименование инструмента   ( ""  - любой символ,                   |
//|                    NULL - текущий символ)                 |
//|    op - операция                   ( -1  - любая позиция)                  |
//|    mn - MagicNumber                ( -1  - любой магик)                    |
//+----------------------------------------------------------------------------+
void SimpleTrailing(string sy="",int op=-1,int mn=-1)
  {
   double po,pp;
   int    i,k=OrdersTotal();
   string Autor=" Автор функции для шаблона : www.expforex.com";

   if(sy=="0") sy=Symbol();
   if(TrailingStop==0)TrailingStop=MarketInfo(Symbol(),MODE_STOPLEVEL);
   for(i=0;i<k;i++)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
        {
         if((OrderSymbol()==sy || sy=="") && (op<0 || OrderType()==op))
           {
            po=MarketInfo(OrderSymbol(),MODE_POINT);
            if(mn<0 || OrderMagicNumber()==mn)
              {
               if(OrderType()==OP_BUY)
                 {
                  pp=MarketInfo(OrderSymbol(),MODE_BID);
                  if((!IfProfTrail && OrderProfit()>0) || pp-OrderOpenPrice()>TrailingStop*po)
                    {
                     if(OrderStopLoss()<pp-(TrailingStop+TrailingStep-1)*po)
                       {
                        ModifyOrder(-1,pp-TrailingStop*po,-1);
                       }
                    }
                 }
               if(OrderType()==OP_SELL)
                 {
                  pp=MarketInfo(OrderSymbol(),MODE_ASK);
                  if((!IfProfTrail && OrderProfit()>0) || OrderOpenPrice()-pp>TrailingStop*po)
                    {
                     if(OrderStopLoss()>pp+(TrailingStop+TrailingStep-1)*po || OrderStopLoss()==0)
                       {
                        ModifyOrder(-1,pp+TrailingStop*po,-1);
                       }
                    }
                 }
              }
           }
        }
     }
  }


Функция модификации

Код
void ModifyOrder(double pp=-1,double sl=0,double tp=0,datetime ex=0)
  {
   bool   fm;
   double op,pa,pb,os,ot;
   int    dg=MarketInfo(OrderSymbol(),MODE_DIGITS),er,it;
   string Autor=" Автор функции для шаблона : www.expforex.com";

   if(pp<=0) pp=OrderOpenPrice();
   if(sl<0 ) sl=OrderStopLoss();
   if(tp<0 ) tp=OrderTakeProfit();

   pp=NormalizeDouble(pp, dg);
   sl=NormalizeDouble(sl, dg);
   tp=NormalizeDouble(tp, dg);
   op=NormalizeDouble(OrderOpenPrice() , dg);
   os=NormalizeDouble(OrderStopLoss()  , dg);
   ot=NormalizeDouble(OrderTakeProfit(), dg);

   if(pp!=op || sl!=os || tp!=ot)
     {
      for(it=1; it<=3; it++)
        {
         if(!IsTesting() && (!IsExpertEnabled() || IsStopped())) break;
         RefreshRates();
         fm=OrderModify(OrderTicket(),pp,sl,tp,ex);
         if(fm)
           {
            break;
              } else {
            er=GetLastError();
            pa=MarketInfo(OrderSymbol(), MODE_ASK);
            pb=MarketInfo(OrderSymbol(), MODE_BID);
            Print("Error(",er,") modifying order: ",", try ",it);
            Print("Ask=",pa,"  Bid=",pb,"  sy=",OrderSymbol(),
                  "  op="+OrderType(),"  pp=",pp,"  sl=",sl,"  tp=",tp);
           }
        }
     }
  }

Автор - expforex
Дата добавления - 01.02.2017 в 15:56

genДата: Среда, 01.02.2017, 16:53 | Сообщение # 185
Трейдер - Рядовой
Группа: Пользователи
Сообщений: 10
Награды: 0
Статус: Offline


[Бонусы за сообщения ]

Цитата expforex ()
возьмите мой код:

Согласен.

 
Сообщение
Цитата expforex ()
возьмите мой код:

Согласен.

Автор - gen
Дата добавления - 01.02.2017 в 16:53

Иван1946Дата: Четверг, 02.02.2017, 15:50 | Сообщение # 186
Трейдер - Майор
Группа: Пользователи
Сообщений: 81
Награды: 0
Статус: Offline


[Бонусы за сообщения ]

Цитата gen ()
extern double LOTSFIX=0.1;
Спасибо!То что надо.



Сообщение отредактировал Иван1946 - Четверг, 02.02.2017, 16:08
 
Сообщение
Цитата gen ()
extern double LOTSFIX=0.1;
Спасибо!То что надо.

Автор - Иван1946
Дата добавления - 02.02.2017 в 15:50

Иван1946Дата: Четверг, 02.02.2017, 16:08 | Сообщение # 187
Трейдер - Майор
Группа: Пользователи
Сообщений: 81
Награды: 0
Статус: Offline


[Бонусы за сообщения ]

Скачал советник(другой), установил всё как обычно,а на график не устанавливается.Что-нибудь сделать можно?Спасибо!



Сообщение отредактировал Иван1946 - Четверг, 02.02.2017, 16:22
 
СообщениеСкачал советник(другой), установил всё как обычно,а на график не устанавливается.Что-нибудь сделать можно?Спасибо!

Автор - Иван1946
Дата добавления - 02.02.2017 в 16:08

expforexДата: Четверг, 02.02.2017, 16:53 | Сообщение # 188
Главный Администартор
Группа: Администраторы
Сообщений: 9043
Награды: 29
Статус: Offline


[Бонусы за сообщения ]

Советники с длл не открываю.
Ибо были прецеденты



Программирование на заказ || Наши Разработки

 
СообщениеСоветники с длл не открываю.
Ибо были прецеденты

Автор - expforex
Дата добавления - 02.02.2017 в 16:53

Иван1946Дата: Четверг, 02.02.2017, 19:50 | Сообщение # 189
Трейдер - Майор
Группа: Пользователи
Сообщений: 81
Награды: 0
Статус: Offline


[Бонусы за сообщения ]

Цитата expforex ()
Советники с длл не открываю.Ибо были прецеденты
Он ведь в свободном доступе,да и старый уже.Вот мониторинг
http://www.myfxbook.com/members/FXCapitalist/fxcapitalist-s-fxopenecn/428657

 
Сообщение
Цитата expforex ()
Советники с длл не открываю.Ибо были прецеденты
Он ведь в свободном доступе,да и старый уже.Вот мониторинг
http://www.myfxbook.com/members/FXCapitalist/fxcapitalist-s-fxopenecn/428657

Автор - Иван1946
Дата добавления - 02.02.2017 в 19:50

olegooodДата: Четверг, 18.05.2017, 23:52 | Сообщение # 190
Трейдер - Рядовой
Группа: Пользователи
Сообщений: 1
Награды: 0
Статус: Offline


[Бонусы за сообщения ]

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

skype - olegoood    нужен рабочий советник обращайтесь в скайп
в контакте - https://vk.com/olegoood

идет набор на тест .... депозит 10$



Сообщение отредактировал olegoood - Пятница, 19.05.2017, 23:50
 
Сообщениеребят погоди...  что если стандарт взять с этими мозгами.... (set)  (файлы уалил, боюсь пока такое выкладывать)

skype - olegoood    нужен рабочий советник обращайтесь в скайп
в контакте - https://vk.com/olegoood

идет набор на тест .... депозит 10$

Автор - olegoood
Дата добавления - 18.05.2017 в 23:52
Форум трейдеров » Скрипты Советники Индикаторы для Metatrader4/Metatrader5 » MT 4 MQL программирование, помощь. » Доработка советника.
Страница 19 из 20«1217181920»
Поиск:


WebMoney Яндекс цитирования.