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

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

Иван1946Дата: Четверг, 24.12.2015, 13:12 | Сообщение # 161
Трейдер - Лейтенант
Группа: Пользователи
Сообщений: 76
Награды: 0
Статус: Offline


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

Цитата expforex ()
а что пишет в логах? http://www.expforex.com/publ....1-0-58

Прикрепления: 20151224.zip(7Kb)


Сообщение отредактировал Иван1946 - Четверг, 24.12.2015, 13:13
 
Сообщение
Цитата expforex ()
а что пишет в логах? http://www.expforex.com/publ....1-0-58

Автор - Иван1946
Дата добавления - 24.12.2015 в 13:12

Иван1946Дата: Четверг, 07.01.2016, 14:49 | Сообщение # 162
Трейдер - Лейтенант
Группа: Пользователи
Сообщений: 76
Награды: 0
Статус: Offline


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

Здравствуйте! Подскажите пожалуйста как в строке st="Lots="+DoubleToStr(Lots,2)+ значение фиксированного лота заменить на значение автолота. И если возможно добавьте пожалуйста в автолот ограничение лота максимальным кредитным плечом.Спасибо!

Прикрепления: e-TFL_v2-3_edit.zip(53Kb)
 
СообщениеЗдравствуйте! Подскажите пожалуйста как в строке st="Lots="+DoubleToStr(Lots,2)+ значение фиксированного лота заменить на значение автолота. И если возможно добавьте пожалуйста в автолот ограничение лота максимальным кредитным плечом.Спасибо!

Автор - Иван1946
Дата добавления - 07.01.2016 в 14:49

dragonsДата: Понедельник, 29.02.2016, 12:51 | Сообщение # 163
Трейдер - Рядовой
Группа: Пользователи
Сообщений: 2
Награды: 0
Статус: Offline


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

smile Привет знатокам кода у меня к вам просьба немогли бы вы добавить в советник функцию перевода ордера в Б/У

при проходе ценой в нашу сторону N- пунктов,заранее спасибо .

Прикрепления: SMF_3_final_min.mq4(13Kb)
 
Сообщениеsmile Привет знатокам кода у меня к вам просьба немогли бы вы добавить в советник функцию перевода ордера в Б/У

при проходе ценой в нашу сторону N- пунктов,заранее спасибо .

Автор - dragons
Дата добавления - 29.02.2016 в 12:51

expforexДата: Четверг, 03.03.2016, 09:37 | Сообщение # 164
Главный Администартор
Группа: Администраторы
Сообщений: 8959
Награды: 29
Статус: Offline


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

Иван1946, Здравствуйте, 
мой автолот здесь: http://www.expforex.com/publ/sekrety_moego_avtolota/4-1-0-81 есть также код моих функций, их можно скопировать себе в код



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

 
СообщениеИван1946, Здравствуйте, 
мой автолот здесь: http://www.expforex.com/publ/sekrety_moego_avtolota/4-1-0-81 есть также код моих функций, их можно скопировать себе в код

Автор - expforex
Дата добавления - 03.03.2016 в 09:37

expforexДата: Четверг, 03.03.2016, 09:42 | Сообщение # 165
Главный Администартор
Группа: Администраторы
Сообщений: 8959
Награды: 29
Статус: Offline


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

dragons

Установка стоплосса в безубыток
MovingInWLUSE (true - false) LevelWLoss(в пунктах) LevelProfit (в пунктах)
Данные параметры регулируют возможность включить модифицирование сделки в безубыток, при первой возможности
Например
Вы хотите установить стоплосс в безубыток, когда сделка наберет +10 пунктов прибыли:
MovingInWLUSE = true; LevelWLoss=0 ; LevelProfit =10;
Вы хотите установить стоплосс в +5 пунктов, когда сделка наберет +20 пунктов прибыли:
MovingInWLUSE = true; LevelWLoss=5 ; LevelProfit =20;
При этом Разница между LevelProfit - LevelWLoss должны быть всегда больше или равна минимальному стопу на сервере

Прикрепления: SMF_3_final_min.zip(28Kb)


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

 
Сообщениеdragons

Установка стоплосса в безубыток
MovingInWLUSE (true - false) LevelWLoss(в пунктах) LevelProfit (в пунктах)
Данные параметры регулируют возможность включить модифицирование сделки в безубыток, при первой возможности
Например
Вы хотите установить стоплосс в безубыток, когда сделка наберет +10 пунктов прибыли:
MovingInWLUSE = true; LevelWLoss=0 ; LevelProfit =10;
Вы хотите установить стоплосс в +5 пунктов, когда сделка наберет +20 пунктов прибыли:
MovingInWLUSE = true; LevelWLoss=5 ; LevelProfit =20;
При этом Разница между LevelProfit - LevelWLoss должны быть всегда больше или равна минимальному стопу на сервере

Автор - expforex
Дата добавления - 03.03.2016 в 09:42

dragonsДата: Понедельник, 07.03.2016, 08:48 | Сообщение # 166
Трейдер - Рядовой
Группа: Пользователи
Сообщений: 2
Награды: 0
Статус: Offline


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

Большое спасибо за помощь.

 
СообщениеБольшое спасибо за помощь.

Автор - dragons
Дата добавления - 07.03.2016 в 08:48

tchumachenkovladДата: Воскресенье, 20.03.2016, 07:50 | Сообщение # 167
Трейдер - Рядовой
Группа: Пользователи
Сообщений: 3
Награды: 0
Статус: Offline


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

помогите исправить ошибку '}' - unexpected end of programtma2.mq41245

'{' - unbalanced parentheses tma2.mq4 48 1
 

extern int   TakeProfit       =100;
extern int   StopLoss         =50;
extern double Lots            = 0.01;
extern int    Slippage        =5;
extern string comment         ="Продажа";
extern int    Megic           = 123;
extern string Indi            = "данные индикатора";
extern string TimeFrame       = "current time frame";//текущее время кадра
extern int    HalfLength      = 56;
extern int    Price           = PRICE_CLOSE;
extern double ATRMultiplier   = 2.0;
extern int    ATRPeriod       = 100;
extern bool   Interpolate     = true;

double PriceHigh, PriceLow, SL, TP;
int ticket;

int init()
{0
     if(Digits==3|| Digits==5)
{    
     
  
 TakeProfit*=10;
    StopLoss*=10;
     Slippage*=10;
     
     
}   
   
    return(0);
    
}

int start()

{0
      PriceHigh= iCustom(Symbol(),0,"TMA with Distancer",TimeFrame,HalfLength,Price, ATRMultiplier,ATRPeriod, Interpolate,1,0);
      PriceLow= iCustom(Symbol(),0,"TMA with Distancer",TimeFrame,HalfLength,Price, ATRMultiplier,ATRPeriod, Interpolate,2,0);
    
      if(Bid>=(PriceHigh);
     {
      SL=NormalizeDouble(Bid+StopLoss*Point,Digits);
      TP=NormalizeDouble(Bid-TakeProfit*Point,Digits);
      
     
     ticket=OrderSend(Simbol(),OP_SELL,Lots,Bid,Slippage,0,0,comment,123,0,Maroon);
     
     
 
    
     if(ticket>0);
     

   if  (OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)==true);
      
      OrderModify(ticket,OrderOpenPrice,ST,TP,0);
      
     }
}
      

   if(Ask<0);
{
   ST=NormalizeDouble(Ask-StopLoss*Point,Digits);
   TP=NormalizeDouble(Ask+TakeProfit*Point,Digits);
  
     ticket=OrderSend(Simbol(),OP_BUY,Lots,Ask,Slippage,0,0,comment,123,0,clrDarkBlue);
     

    
     if(ticket>0);
     

   if  (OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)==true);
       
      OrderModify(ticket,OrderOpenPrice,ST,TP,0);
     
     }
     return(0);
     
 }

  int CountSell()
  {
   int count=0;
   for(int trede=OrdersTotal()-1;tred>=0;tread--)
   {
    OrderSelect(trade,SELECT_BY_POS,MODE_TRADES);
    if(OrderSymbol()==Symbol()&&OrderMagicNumber()==Megic)
    {
    if (OrderType()==OP_SELL)count==;
    }
    }
    return(count);
    }
    
        
 int CountBuy()
  {
   int count=0;
   for(int trede=OrdersTotal()-1;tred>=0;tread--)
   {
    OrderSelect(trade,SELECT_BY_POS,MODE_TRADES);
    if(OrderSymbol()==Symbol()&&OrderMagicNumber()==Megic)
    {
    if (OrderType()==OP_BUY)count==;
    }
    }
    return(count);
    }0

 
Сообщениепомогите исправить ошибку '}' - unexpected end of programtma2.mq41245

'{' - unbalanced parentheses tma2.mq4 48 1
 

extern int   TakeProfit       =100;
extern int   StopLoss         =50;
extern double Lots            = 0.01;
extern int    Slippage        =5;
extern string comment         ="Продажа";
extern int    Megic           = 123;
extern string Indi            = "данные индикатора";
extern string TimeFrame       = "current time frame";//текущее время кадра
extern int    HalfLength      = 56;
extern int    Price           = PRICE_CLOSE;
extern double ATRMultiplier   = 2.0;
extern int    ATRPeriod       = 100;
extern bool   Interpolate     = true;

double PriceHigh, PriceLow, SL, TP;
int ticket;

int init()
{0
     if(Digits==3|| Digits==5)
{    
     
  
 TakeProfit*=10;
    StopLoss*=10;
     Slippage*=10;
     
     
}   
   
    return(0);
    
}

int start()

{0
      PriceHigh= iCustom(Symbol(),0,"TMA with Distancer",TimeFrame,HalfLength,Price, ATRMultiplier,ATRPeriod, Interpolate,1,0);
      PriceLow= iCustom(Symbol(),0,"TMA with Distancer",TimeFrame,HalfLength,Price, ATRMultiplier,ATRPeriod, Interpolate,2,0);
    
      if(Bid>=(PriceHigh);
     {
      SL=NormalizeDouble(Bid+StopLoss*Point,Digits);
      TP=NormalizeDouble(Bid-TakeProfit*Point,Digits);
      
     
     ticket=OrderSend(Simbol(),OP_SELL,Lots,Bid,Slippage,0,0,comment,123,0,Maroon);
     
     
 
    
     if(ticket>0);
     

   if  (OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)==true);
      
      OrderModify(ticket,OrderOpenPrice,ST,TP,0);
      
     }
}
      

   if(Ask<0);
{
   ST=NormalizeDouble(Ask-StopLoss*Point,Digits);
   TP=NormalizeDouble(Ask+TakeProfit*Point,Digits);
  
     ticket=OrderSend(Simbol(),OP_BUY,Lots,Ask,Slippage,0,0,comment,123,0,clrDarkBlue);
     

    
     if(ticket>0);
     

   if  (OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)==true);
       
      OrderModify(ticket,OrderOpenPrice,ST,TP,0);
     
     }
     return(0);
     
 }

  int CountSell()
  {
   int count=0;
   for(int trede=OrdersTotal()-1;tred>=0;tread--)
   {
    OrderSelect(trade,SELECT_BY_POS,MODE_TRADES);
    if(OrderSymbol()==Symbol()&&OrderMagicNumber()==Megic)
    {
    if (OrderType()==OP_SELL)count==;
    }
    }
    return(count);
    }
    
        
 int CountBuy()
  {
   int count=0;
   for(int trede=OrdersTotal()-1;tred>=0;tread--)
   {
    OrderSelect(trade,SELECT_BY_POS,MODE_TRADES);
    if(OrderSymbol()==Symbol()&&OrderMagicNumber()==Megic)
    {
    if (OrderType()==OP_BUY)count==;
    }
    }
    return(count);
    }0

Автор - tchumachenkovlad
Дата добавления - 20.03.2016 в 07:50

expforexДата: Воскресенье, 20.03.2016, 10:57 | Сообщение # 168
Главный Администартор
Группа: Администраторы
Сообщений: 8959
Награды: 29
Статус: Offline


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

tchumachenkovlad
Здравствуйте, ошибок тут очень много. я так понял Вы учились и писали сами? это похвально.
исправил код полностью . 


Код
//+------------------------------------------------------------------+
//|                    ProjectName |
//|                    Copyright 2012, CompanyName |
//|                    http://www.companyname.net |
//+------------------------------------------------------------------+
extern int   TakeProfit       =100;
extern int   StopLoss         =50;
extern double Lots            = 0.01;
extern int    Slippage        =5;
extern string comment         ="Продажа";
extern int    Megic           = 123;
extern string Indi            = "данные индикатора";
extern string TimeFrame="current time frame";//текущее время кадра
extern int    HalfLength      = 56;
extern int    Price           = PRICE_CLOSE;
extern double ATRMultiplier   = 2.0;
extern int    ATRPeriod       = 100;
extern bool   Interpolate     = true;

double PriceHigh,PriceLow,SL,TP;
int ticket;
//+------------------------------------------------------------------+
//|                    |
//+------------------------------------------------------------------+
int init()
  {
   if(Digits==3 || Digits==5)
     {

      TakeProfit*=10;
      StopLoss*=10;
      Slippage*=10;

     }

   return(0);

  }
//+------------------------------------------------------------------+
//|                    |
//+------------------------------------------------------------------+
int start()
  {
   PriceHigh=iCustom(Symbol(),0,"TMA with Distancer",TimeFrame,HalfLength,Price,ATRMultiplier,ATRPeriod,Interpolate,1,0);
   PriceLow=iCustom(Symbol(),0,"TMA with Distancer",TimeFrame,HalfLength,Price,ATRMultiplier,ATRPeriod,Interpolate,2,0);

   if(Bid>=PriceHigh)
     {
      SL=NormalizeDouble(Bid+StopLoss*Point,Digits);
      TP=NormalizeDouble(Bid-TakeProfit*Point,Digits);

      ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,Slippage,0,0,comment,123,0,Maroon);

      if(ticket>0)

        {
         if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)==true)

            OrderModify(ticket,OrderOpenPrice(),SL,TP,0);

        }
     }

   if(Ask<PriceLow)
     {
      SL=NormalizeDouble(Ask-StopLoss*Point,Digits);
      TP=NormalizeDouble(Ask+TakeProfit*Point,Digits);

      ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,Slippage,0,0,comment,123,0,clrDarkBlue);

      if(ticket>0)

        {
         if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)==true)

            OrderModify(ticket,OrderOpenPrice(),SL,TP,0);

        }
      return(0);

     }
  }
//+------------------------------------------------------------------+
//|                    |
//+------------------------------------------------------------------+
int CountSell()
  {
   int count=0;
   for(int trede=OrdersTotal()-1;trede>=0;trede--)
     {
      OrderSelect(trede,SELECT_BY_POS,MODE_TRADES);
      if(OrderSymbol()==Symbol() && OrderMagicNumber()==Megic)
        {
         if(OrderType()==OP_SELL)count++;
        }
     }
   return(count);
  }
//+------------------------------------------------------------------+
//|                    |
//+------------------------------------------------------------------+
int CountBuy()
  {
   int count=0;
   for(int trede=OrdersTotal()-1;trede>=0;trede--)
     {
      OrderSelect(trede,SELECT_BY_POS,MODE_TRADES);
      if(OrderSymbol()==Symbol() && OrderMagicNumber()==Megic)
        {
         if(OrderType()==OP_BUY)count++;
        }
     }
   return(count);
  }
//+------------------------------------------------------------------+



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

 
Сообщениеtchumachenkovlad
Здравствуйте, ошибок тут очень много. я так понял Вы учились и писали сами? это похвально.
исправил код полностью . 

Код
//+------------------------------------------------------------------+
//|                    ProjectName |
//|                    Copyright 2012, CompanyName |
//|                    http://www.companyname.net |
//+------------------------------------------------------------------+
extern int   TakeProfit       =100;
extern int   StopLoss         =50;
extern double Lots            = 0.01;
extern int    Slippage        =5;
extern string comment         ="Продажа";
extern int    Megic           = 123;
extern string Indi            = "данные индикатора";
extern string TimeFrame="current time frame";//текущее время кадра
extern int    HalfLength      = 56;
extern int    Price           = PRICE_CLOSE;
extern double ATRMultiplier   = 2.0;
extern int    ATRPeriod       = 100;
extern bool   Interpolate     = true;

double PriceHigh,PriceLow,SL,TP;
int ticket;
//+------------------------------------------------------------------+
//|                    |
//+------------------------------------------------------------------+
int init()
  {
   if(Digits==3 || Digits==5)
     {

      TakeProfit*=10;
      StopLoss*=10;
      Slippage*=10;

     }

   return(0);

  }
//+------------------------------------------------------------------+
//|                    |
//+------------------------------------------------------------------+
int start()
  {
   PriceHigh=iCustom(Symbol(),0,"TMA with Distancer",TimeFrame,HalfLength,Price,ATRMultiplier,ATRPeriod,Interpolate,1,0);
   PriceLow=iCustom(Symbol(),0,"TMA with Distancer",TimeFrame,HalfLength,Price,ATRMultiplier,ATRPeriod,Interpolate,2,0);

   if(Bid>=PriceHigh)
     {
      SL=NormalizeDouble(Bid+StopLoss*Point,Digits);
      TP=NormalizeDouble(Bid-TakeProfit*Point,Digits);

      ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,Slippage,0,0,comment,123,0,Maroon);

      if(ticket>0)

        {
         if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)==true)

            OrderModify(ticket,OrderOpenPrice(),SL,TP,0);

        }
     }

   if(Ask<PriceLow)
     {
      SL=NormalizeDouble(Ask-StopLoss*Point,Digits);
      TP=NormalizeDouble(Ask+TakeProfit*Point,Digits);

      ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,Slippage,0,0,comment,123,0,clrDarkBlue);

      if(ticket>0)

        {
         if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)==true)

            OrderModify(ticket,OrderOpenPrice(),SL,TP,0);

        }
      return(0);

     }
  }
//+------------------------------------------------------------------+
//|                    |
//+------------------------------------------------------------------+
int CountSell()
  {
   int count=0;
   for(int trede=OrdersTotal()-1;trede>=0;trede--)
     {
      OrderSelect(trede,SELECT_BY_POS,MODE_TRADES);
      if(OrderSymbol()==Symbol() && OrderMagicNumber()==Megic)
        {
         if(OrderType()==OP_SELL)count++;
        }
     }
   return(count);
  }
//+------------------------------------------------------------------+
//|                    |
//+------------------------------------------------------------------+
int CountBuy()
  {
   int count=0;
   for(int trede=OrdersTotal()-1;trede>=0;trede--)
     {
      OrderSelect(trede,SELECT_BY_POS,MODE_TRADES);
      if(OrderSymbol()==Symbol() && OrderMagicNumber()==Megic)
        {
         if(OrderType()==OP_BUY)count++;
        }
     }
   return(count);
  }
//+------------------------------------------------------------------+

Автор - expforex
Дата добавления - 20.03.2016 в 10:57

tchumachenkovladДата: Воскресенье, 27.03.2016, 13:51 | Сообщение # 169
Трейдер - Рядовой
Группа: Пользователи
Сообщений: 3
Награды: 0
Статус: Offline


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

с переменными разобрался "спасибо"  ошибок неттеперь пишет предуприждение   possible loss of data due to type conversion test3.mq4 87 15и в тестере   cannot open file 'C:\Users\Àäìèíèñòðàòîð\AppData\Roaming\MetaQuotes\Terminal\F8B0CF1E1FEED3B00D2D7E193237B799\MQL4\indicators\TMA_Fair.ex4' [2]extern string TMA="Параметры";
extern int   TakeProfit       =100;
extern int   StopLoss         =50;
extern int    Megic           = 123;
extern double Lots            = 0.01;
extern int    Slippage        =5;
extern string TimeFrame       = "current time frame";
extern int    HalfLength      = 56;
extern int    Price           = PRICE_CLOSE;
extern double ATRMultiplier   = 2.0;
extern int    ATRPeriod       = 100;
extern bool   Interpolate     = true;

double PriceHigh,PriceLow;
int SL,TP;
int ticket;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
{

if(Digits==3 || Digits==5)
{

TakeProfit*=10;
StopLoss*=10;
Slippage*=10;
}

return(INIT_SUCCEEDED);

}
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+

//---

//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
{
PriceHigh=iCustom(NULL,0,"TMA_Fair",TimeFrame,HalfLength,Price,ATRMultiplier,ATRPeriod,Interpolate,1,0);
PriceLow=iCustom(NULL,0,"TMA_Fair",TimeFrame,HalfLength,Price,ATRMultiplier,ATRPeriod,Interpolate,2,0);

if(CountBuy()==0 && Ask<=PriceLow)

{
ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,Slippage,0,0,"tma",Megic,0,Blue);
if(ticket>0)
{
TP=NormalizeDouble(Ask+TakeProfit*Point,Digits);
ST=NormalizeDouble(Ask-StopLoss*Point,Digits);

if(OrderSelect(ticket,SELECT_BY_TICKET))

if( OrderModify(ticket,OrderOpenPrice(),ST,TP,0))
Print("Ошибка");
}

}

if(CountSell()==0 && Bid>=PriceHigh)

{
ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,Slippage,0,0,"tma",Megic,0,Red);
if(ticket>0)
{
ST=NormalizeDouble(Bid+StopLoss*Point,Digits);
TP=NormalizeDouble(Bid-TakeProfit*Point,Digits);

if(OrderSelect(ticket,SELECT_BY_TICKET))

if( OrderModify(ticket,OrderOpenPrice(),ST,TP,0))
Print("Ошибка");
}
}
}
//+------------------------------------------------------------------+
int CountSell()
{
int count=0;
for(int trede=OrdersTotal()-1;trede>=0;trede--)
{
if(OrderSelect(trede,SELECT_BY_POS,MODE_TRADES))
{
if(OrderSymbol()==Symbol() && OrderMagicNumber()==Megic && OrderType()==OP_SELL)

count++;

}
}
return(count);
}

int CountBuy()
{
int count=0;
for(int trede=OrdersTotal()-1;trede>=0;trede--)
{
if(OrderSelect(trede,SELECT_BY_POS,MODE_TRADES))
{
if(OrderSymbol()==Symbol() && OrderMagicNumber()==Megic && OrderType()==OP_BUY)

count++;

}
}

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

Прикрепления: TMA_Fair.mq4(8Kb)


Сообщение отредактировал tchumachenkovlad - Воскресенье, 27.03.2016, 15:05
 
Сообщениес переменными разобрался "спасибо"  ошибок неттеперь пишет предуприждение   possible loss of data due to type conversion test3.mq4 87 15и в тестере   cannot open file 'C:\Users\Àäìèíèñòðàòîð\AppData\Roaming\MetaQuotes\Terminal\F8B0CF1E1FEED3B00D2D7E193237B799\MQL4\indicators\TMA_Fair.ex4' [2]extern string TMA="Параметры";
extern int   TakeProfit       =100;
extern int   StopLoss         =50;
extern int    Megic           = 123;
extern double Lots            = 0.01;
extern int    Slippage        =5;
extern string TimeFrame       = "current time frame";
extern int    HalfLength      = 56;
extern int    Price           = PRICE_CLOSE;
extern double ATRMultiplier   = 2.0;
extern int    ATRPeriod       = 100;
extern bool   Interpolate     = true;

double PriceHigh,PriceLow;
int SL,TP;
int ticket;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
{

if(Digits==3 || Digits==5)
{

TakeProfit*=10;
StopLoss*=10;
Slippage*=10;
}

return(INIT_SUCCEEDED);

}
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+

//---

//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
{
PriceHigh=iCustom(NULL,0,"TMA_Fair",TimeFrame,HalfLength,Price,ATRMultiplier,ATRPeriod,Interpolate,1,0);
PriceLow=iCustom(NULL,0,"TMA_Fair",TimeFrame,HalfLength,Price,ATRMultiplier,ATRPeriod,Interpolate,2,0);

if(CountBuy()==0 && Ask<=PriceLow)

{
ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,Slippage,0,0,"tma",Megic,0,Blue);
if(ticket>0)
{
TP=NormalizeDouble(Ask+TakeProfit*Point,Digits);
ST=NormalizeDouble(Ask-StopLoss*Point,Digits);

if(OrderSelect(ticket,SELECT_BY_TICKET))

if( OrderModify(ticket,OrderOpenPrice(),ST,TP,0))
Print("Ошибка");
}

}

if(CountSell()==0 && Bid>=PriceHigh)

{
ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,Slippage,0,0,"tma",Megic,0,Red);
if(ticket>0)
{
ST=NormalizeDouble(Bid+StopLoss*Point,Digits);
TP=NormalizeDouble(Bid-TakeProfit*Point,Digits);

if(OrderSelect(ticket,SELECT_BY_TICKET))

if( OrderModify(ticket,OrderOpenPrice(),ST,TP,0))
Print("Ошибка");
}
}
}
//+------------------------------------------------------------------+
int CountSell()
{
int count=0;
for(int trede=OrdersTotal()-1;trede>=0;trede--)
{
if(OrderSelect(trede,SELECT_BY_POS,MODE_TRADES))
{
if(OrderSymbol()==Symbol() && OrderMagicNumber()==Megic && OrderType()==OP_SELL)

count++;

}
}
return(count);
}

int CountBuy()
{
int count=0;
for(int trede=OrdersTotal()-1;trede>=0;trede--)
{
if(OrderSelect(trede,SELECT_BY_POS,MODE_TRADES))
{
if(OrderSymbol()==Symbol() && OrderMagicNumber()==Megic && OrderType()==OP_BUY)

count++;

}
}

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

Автор - tchumachenkovlad
Дата добавления - 27.03.2016 в 13:51

expforexДата: Вторник, 29.03.2016, 08:01 | Сообщение # 170
Главный Администартор
Группа: Администраторы
Сообщений: 8959
Награды: 29
Статус: Offline


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

possible loss of data due to type conversion test3.mq4 - это предупреждение, никак не влияющее на торговлю и алгоритм.

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



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

 
Сообщениеpossible loss of data due to type conversion test3.mq4 - это предупреждение, никак не влияющее на торговлю и алгоритм.

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

Автор - expforex
Дата добавления - 29.03.2016 в 08:01
Форум трейдеров » Скрипты Советники Индикаторы для Metatrader4/Metatrader5 » MT 4 MQL программирование, помощь. » Доработка советника.
Страница 17 из 18«1215161718»
Поиск:


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