kipjatok001
Kipjatok001 Best Trader

 
Уровень 13

  Торгую в компаниях:


Группа "Стол заказов MQL"

Рейтинг 2081



РЕКОМЕНДУЮ



необычные скрипты

Привет Уважаемый AM2. Очень Вас прошу сделать скрипт.
Параметры
1. Цены выставления первого ордера на выбор ( от текущей цены или в цифровом виде — например 1.30000)
2. Тип ордера на выбор (стоповый или лимитный)
3. Количество выставляемых ордеров
4.Объем выставляемых ордеров (постоянный, увеличение на начальный лот, мартингейл)
5. ТП для группы ордеров — цифровое значение ( например ставится 2 ордера бай стоп по цене 1.30000 и 1.30100, ТП будет на уровне, который задается параметром (например 1.30200)
Заранее спасибо)
  • 0
  • Просмотров: 3579
  • 28 января 2015, 19:50
  • kipjatok001
Понравилcя материал? Не забудьте поставить плюс и поделиться в социальной сети!

Вступите в группу "Стол заказов MQL", чтобы следить за обновлениями
ПРИСОЕДИНИТЬСЯ К ГРУППЕ
присоединиться
  Предыдущая запись в группе
Советник -AltrTrend-
Следующая запись в группе  
Прошу добавить трал для ордеров
27 января 2015
30 января 2015

Комментарии (8)

+
0
Завтра утром займусь.
avatar

  34  AM2 Сообщений: 15873 - Андрей

  • 28 января 2015, 23:20
+
0
Начал делать, но чтобы выставить все ордера с тейком на одном уровне, вот в этой формуле что то не вяжется:


tp=Ask+Distance*Point+Step*(Count-i)*Point+TakeProfit*Point; 



//+------------------------------------------------------------------+
//|                                                    UniScript.mq4 |
//|                                              Copyright 2014, AM2 |
//|                                      http://www.forexsystems.biz |
//+------------------------------------------------------------------+
#property copyright "Copyright 2014, AM2"
#property link      "http://www.forexsystems.biz"
#property version   "1.00"
#property script_show_inputs

#define MAGIC  20150129

extern int    StopLoss    = 1900;//Стоплосс ордера
extern int    TakeProfit  = 350; //Тейкпрофит ордера 
extern int    MiliSec     = 300; //Количество миллисекунд, через которые выставляем следующий ордер
extern int    Slip        = 0;   //Реквот
extern int    Distance    = 250; //Расстояние от цены для установки ордера
extern int    Step        = 250; //Шаг установки ордеров
extern int    Count       = 10;  //Количество устанавливаемых ордеров
extern int    StopLimit   = 0;   //0 - Только стоповые ордера, 1 - только лимитные, 2 - и стоп и лимит
extern int    Expiration  = 14;  //Время истечения ордера
extern double Lots        = 0.1; //Лот
extern double KLot        = 1;   //Коэффициент умножения лота
extern double PLot        = 0.1; //Увеличение лота

double blot=Lots;
double slot=Lots;
double price,tp;
int i,res;

//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
   datetime expiration = TimeCurrent()+3600*Expiration;
//--------------------------------------------------------------------          
   for(i=1;i<=Count;i++)
    {
     { 
      price=Ask+(Distance*Point+i*Step*Point);
      tp=Ask+Distance*Point+Step*(Count-i+1)*Point+TakeProfit*Point;           
      if(StopLimit==0 || StopLimit==2)res=OrderSend(Symbol(),OP_BUYSTOP,blot,fND(price),Slip,0,fND(tp),"",MAGIC,expiration,Blue);
      if(StopLimit==1 || StopLimit==2)res=OrderSend(Symbol(),OP_SELLLIMIT,blot,fND(price),Slip,0,fND(tp),"",MAGIC,expiration,Red);
      blot=blot*KLot+PLot;      
      Sleep(MiliSec);
     }
   }
//+------------------------------------------------------------------+         
   for(i=1;i<=Count;i++)
    {   
     {
      price=Bid-(Distance*Point+i*Step*Point);
      tp=Bid-(Distance*Point+Step*(Count-i+1)*Point)-TakeProfit*Point;                
      if(StopLimit==0 || StopLimit==2) res=OrderSend(Symbol(),OP_SELLSTOP,slot,fND(price),Slip,0,fND(tp),"",MAGIC,expiration,Red);
      if(StopLimit==1 || StopLimit==2)res=OrderSend(Symbol(),OP_BUYLIMIT,slot,fND(price),Slip,0,fND(tp),"",MAGIC,expiration,Blue);
      slot=slot*KLot+PLot;      
      Sleep(MiliSec);
     }
    }   
  }
//+------------------------------------------------------------------+
double fND(double d, int n=-1) 
  {  
   if (n<0) return(NormalizeDouble(d, Digits)); 
   return(NormalizeDouble(d, n)); 
  }
//+------------------------------------------------------------------+

avatar

  34  AM2 Сообщений: 15873 - Андрей

  • 29 января 2015, 10:09
+
0
Большое Вам спасибо
avatar

  13  kipjatok001 Автор Сообщений: 431 - Kipjatok001 Best Trader

  • 29 января 2015, 10:17
+
0
К сожалению пока ТП не ставится на один уровень. Но в остальном — спасибо
avatar

  13  kipjatok001 Автор Сообщений: 431 - Kipjatok001 Best Trader

  • 29 января 2015, 10:48
+
+1
Все! Выставил как положено теперь! *lalala* 
www.opentraders.ru/downloads/574/
Пошел на учебу собираться. С Дмитрием Владимировичем
неподалеку учимся

avatar

  34  AM2 Сообщений: 15873 - Андрей

  • 29 января 2015, 10:54
+
0
Спасибо) А можно отдельно на бай и селл?
avatar

  13  kipjatok001 Автор Сообщений: 431 - Kipjatok001 Best Trader

  • 29 января 2015, 12:31
+
+1
Я поправил сразу несколько моментов, но проверять завтра уже.


//+------------------------------------------------------------------+
//|                                                    UniScript.mq4 |
//|                                              Copyright 2014, AM2 |
//|                                      http://www.forexsystems.biz |
//+------------------------------------------------------------------+
#property copyright "Copyright 2014, AM2"
#property link      "http://www.forexsystems.biz"
#property version   "1.00"
#property script_show_inputs

#define MAGIC  20150129

extern int    StopLoss    = 1900;//Стоплосс ордера
extern int    TakeProfit  = 350; //Тейкпрофит ордера 
extern int    MiliSec     = 300; //Количество миллисекунд, через которые выставляем следующий ордер
extern int    Slip        = 0;   //Реквот
extern int    Distance    = 250; //Расстояние от цены для установки ордера
extern int    Step        = 250; //Шаг установки ордеров
extern int    Count       = 10;  //Количество устанавливаемых ордеров
extern int    StopLimit   = 0;   //0 - Только стоповые ордера, 1 - только лимитные, 2 - и стоп и лимит
extern int    Expiration  = 14;  //Время истечения ордера
extern double Lots        = 0.1; //Лот
extern double KLot        = 1;   //Коэффициент умножения лота
extern double PLot        = 0.1; //Увеличение лота

extern bool   Buy         = true;//Покупки включены
extern bool   Sell        = true;//Пподажи включены

double blot=Lots;
double slot=Lots;
double price,tp;
int i,res;

//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
   datetime expiration = TimeCurrent()+3600*Expiration;
//--------------------------------------------------------------------          
   for(i=1;i<=Count;i++)
    {
     { 
      price=Ask+(Distance*Point+i*Step*Point);           
      if(StopLimit==0)
       {
        tp=Ask+(Distance*Point+Count*Step*Point)+TakeProfit*Point;
        if(Buy==true) res=OrderSend(Symbol(),OP_BUYSTOP,blot,fND(price),Slip,0,fND(tp),"",MAGIC,expiration,Blue);
       } 
      if(StopLimit==1)
       {
        tp=Bid+(Distance*Point)-TakeProfit*Point;
        if(Sell==true) res=OrderSend(Symbol(),OP_SELLLIMIT,blot,fND(price),Slip,0,fND(tp),"",MAGIC,expiration,Red);
       }
      blot=blot*KLot+PLot;      
      Sleep(MiliSec);
     }
   }
//+------------------------------------------------------------------+         
   for(i=1;i<=Count;i++)
    {   
     {
      price=Bid-(Distance*Point+i*Step*Point);
      tp=Bid-(Distance*Point+Count*Step*Point)-TakeProfit*Point;                
      if(StopLimit==0)
       {
        tp=Bid-(Distance*Point+Count*Step*Point)-TakeProfit*Point;
        if(Sell==true) res=OrderSend(Symbol(),OP_SELLSTOP,slot,fND(price),Slip,0,fND(tp),"",MAGIC,expiration,Red);
       }
      if(StopLimit==1)
       {
        tp=Bid-(Distance*Point)+TakeProfit*Point;
        if(Buy==true) res=OrderSend(Symbol(),OP_BUYLIMIT,slot,fND(price),Slip,0,fND(tp),"",MAGIC,expiration,Blue);
       }
      slot=slot*KLot+PLot;      
      Sleep(MiliSec);
     }
    }   
  }
//+------------------------------------------------------------------+
double fND(double d, int n=-1) 
  {  
   if (n<0) return(NormalizeDouble(d, Digits)); 
   return(NormalizeDouble(d, n)); 
  }
//+------------------------------------------------------------------+

avatar

  34  AM2 Сообщений: 15873 - Андрей

  • 29 января 2015, 23:31
+
0
Спасибо, скрипт мне очень понравился, а можно это все в советника воткнуть?:) 
avatar

  1  a-2101 Сообщений: 1

  • 30 января 2015, 19:59

Зарегистрируйтесь или авторизуйтесь, чтобы оставить комментарий
Начать торговлю с Альпари