0
На следующей неделе только доберусь.
avatar

AM2

  • 14 декабря 2017, 17:22
0
не берусь.
avatar

AM2

  • 14 декабря 2017, 17:16
0
ищите поручителя
avatar

AM2

  • 14 декабря 2017, 17:14
0
насчет где какая часть и как суммируется подробнее пожалуйста
avatar

AM2

  • 13 декабря 2017, 20:36
0
Посмотрю сегодня.
avatar

AM2

  • 13 декабря 2017, 17:44
0
Сейчас как?


//+------------------------------------------------------------------+
//|                                                      BuyStop.mq4 |
//|                                              Copyright 2017, AM2 |
//|                                      http://www.forexsyatems.biz |
//+------------------------------------------------------------------+
#property copyright "Copyright 2017, AM2"
#property link      "http://www.forexsyatems.biz"
#property version   "1.00"
#property strict

//--- Inputs
extern double Lots       = 0.1;      // лот
extern int StopLoss      = 2000;     // лось
extern int TakeProfit    = 3000;     // язь
extern int Delta         = 200;      // расстояние от цены
extern int Slip          = 30;       // реквот
extern int Type          = 0;        // 0-BuyStop 1-SellStop
extern int Magic         = 123;      // магик
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---
   Comment("");
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
   Comment("");
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void PutOrder(int type,double price)
  {
   int r=0;
   color clr=Green;
   double sl=0,tp=0;

   if(type==1 || type==3 || type==5)
     {
      clr=Red;
      if(StopLoss>0) sl=NormalizeDouble(price+StopLoss*Point,Digits);
      if(TakeProfit>0) tp=NormalizeDouble(price-TakeProfit*Point,Digits);
     }

   if(type==0 || type==2 || type==4)
     {
      clr=Blue;
      if(StopLoss>0) sl=NormalizeDouble(price-StopLoss*Point,Digits);
      if(TakeProfit>0) tp=NormalizeDouble(price+TakeProfit*Point,Digits);
     }

   r=OrderSend(NULL,type,Lots,NormalizeDouble(price,Digits),Slip,sl,tp,"",Magic,0,clr);
   return;
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void ModeOOP()
  {
   bool m;
   double delta=0,oop=0,sl=0,tp=0;
   for(int i=OrdersTotal()-1;i>=0;i--)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
        {
         if(OrderSymbol()==Symbol() || OrderMagicNumber()==Magic)
           {
            if(OrderType()==4)
              {
               delta=NormalizeDouble(OrderOpenPrice()-Bid,Digits);
               if(delta>Delta*Point)
                 {
                  oop=NormalizeDouble(Bid+Delta*Point,Digits);
                  sl=NormalizeDouble(oop-StopLoss*Point,Digits);
                  tp=NormalizeDouble(oop+TakeProfit*Point,Digits);
                  m=OrderModify(OrderTicket(),oop,sl,tp,0,Blue);
                  return;
                 }
              }

            if(OrderType()==5)
              {
               delta=NormalizeDouble(Bid-OrderOpenPrice(),Digits);
               if(delta>Delta*Point)
                 {
                  oop=NormalizeDouble(Bid-Delta*Point,Digits);
                  sl=NormalizeDouble(oop+StopLoss*Point,Digits);
                  tp=NormalizeDouble(oop-TakeProfit*Point,Digits);
                  m=OrderModify(OrderTicket(),oop,sl,tp,0,Red);
                  return;
                 }
              }
           }
        }
     }
  }
//+------------------------------------------------------------------+
//| Тип последней сделки                                             |
//+------------------------------------------------------------------+
int LastOrderType()
  {
   int type=8;
   if(OrderSelect(OrdersTotal()-1,SELECT_BY_POS,MODE_TRADES))
     {
      if(OrderSymbol()==Symbol() && OrderMagicNumber()==Magic)
        {
         if(OrderType()<2)
           {
            type=OrderType();//sell  
           }
        }
     }
   return(type);
  }
//+------------------------------------------------------------------+
//| Подсчет ордеров по типу                                          |
//+------------------------------------------------------------------+
int CountOrders(int type=-1)
  {
   int count=0;
   for(int i=OrdersTotal()-1;i>=0;i--)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
        {
         if(OrderSymbol()==Symbol() && OrderMagicNumber()==Magic)
           {
            if(OrderType()==type || type==-1) count++;
           }
        }
     }
   return(count);
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
   ModeOOP();
   if(CountOrders()<1)
     {
      if(Type==0) PutOrder(4,Bid+Delta*Point);
      if(Type==1) PutOrder(5,Bid-Delta*Point);
     }

   if(LastOrderType()==0 && CountOrders(5)<1) PutOrder(5,Bid-Delta*Point);
   if(LastOrderType()==1 && CountOrders(4)<1) PutOrder(4,Bid+Delta*Point);
   
   Comment(LastOrderType());
  }
//+------------------------------------------------------------------+

avatar

AM2

  • 12 декабря 2017, 20:59
0
Добавил настройки индикаторов и открытие по стрелке реал тренд:

avatar

AM2

  • 12 декабря 2017, 20:47
0
Посмотрите как работает этот вариант:


//+------------------------------------------------------------------+
//|                                                      BuyStop.mq4 |
//|                                              Copyright 2017, AM2 |
//|                                      http://www.forexsyatems.biz |
//+------------------------------------------------------------------+
#property copyright "Copyright 2017, AM2"
#property link      "http://www.forexsyatems.biz"
#property version   "1.00"
#property strict

//--- Inputs
extern double Lots       = 0.1;      // лот
extern int StopLoss      = 2000;     // лось
extern int TakeProfit    = 3000;     // язь
extern int Delta         = 200;      // расстояние от цены
extern int Slip          = 30;       // реквот
extern int Type          = 0;        // 0-BuyStop 1-SellStop
extern int Magic         = 123;      // магик
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---
   Comment("");
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
   Comment("");
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void PutOrder(int type,double price)
  {
   int r=0;
   color clr=Green;
   double sl=0,tp=0;

   if(type==1 || type==3 || type==5)
     {
      clr=Red;
      if(StopLoss>0) sl=NormalizeDouble(price+StopLoss*Point,Digits);
      if(TakeProfit>0) tp=NormalizeDouble(price-TakeProfit*Point,Digits);
     }

   if(type==0 || type==2 || type==4)
     {
      clr=Blue;
      if(StopLoss>0) sl=NormalizeDouble(price-StopLoss*Point,Digits);
      if(TakeProfit>0) tp=NormalizeDouble(price+TakeProfit*Point,Digits);
     }

   r=OrderSend(NULL,type,Lots,NormalizeDouble(price,Digits),Slip,sl,tp,"",Magic,0,clr);
   return;
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void ModeOOP()
  {
   bool m;
   double delta=0,oop=0,sl=0,tp=0;
   for(int i=OrdersTotal()-1;i>=0;i--)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
        {
         if(OrderSymbol()==Symbol() || OrderMagicNumber()==Magic)
           {
            if(OrderType()==4)
              {
               delta=NormalizeDouble(OrderOpenPrice()-Bid,Digits);
               if(delta>Delta*Point)
                 {
                  oop=NormalizeDouble(Bid+Delta*Point,Digits);
                  sl=NormalizeDouble(oop-StopLoss*Point,Digits);
                  tp=NormalizeDouble(oop+TakeProfit*Point,Digits);
                  m=OrderModify(OrderTicket(),oop,sl,tp,0,Blue);
                  return;
                 }
              }

            if(OrderType()==5)
              {
               delta=NormalizeDouble(Bid-OrderOpenPrice(),Digits);
               if(delta>Delta*Point)
                 {
                  oop=NormalizeDouble(Bid-Delta*Point,Digits);
                  sl=NormalizeDouble(oop+StopLoss*Point,Digits);
                  tp=NormalizeDouble(oop-TakeProfit*Point,Digits);
                  m=OrderModify(OrderTicket(),oop,sl,tp,0,Red);
                  return;
                 }
              }
           }
        }
     }
  }
//+------------------------------------------------------------------+
//| Подсчет ордеров по типу                                          |
//+------------------------------------------------------------------+
int CountOrders(int type=-1)
  {
   int count=0;
   for(int i=OrdersTotal()-1;i>=0;i--)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
        {
         if(OrderSymbol()==Symbol() && OrderMagicNumber()==Magic)
           {
            if(OrderType()==type || type==-1) count++;
           }
        }
     }
   return(count);
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
   ModeOOP();
   if(CountOrders()<1)
     {
      if(Type==0) PutOrder(4,Bid+Delta*Point);
      if(Type==1) PutOrder(5,Bid-Delta*Point);
     }

   if(CountOrders(0)>0 && CountOrders(5)<1 && CountOrders(4)<1) PutOrder(5,Bid-Delta*Point);
   if(CountOrders(1)>0 && CountOrders(4)<1 && CountOrders(5)<1) PutOrder(4,Bid+Delta*Point);
  }
//+------------------------------------------------------------------+

avatar

AM2

  • 12 декабря 2017, 20:27
0
Посмотрю сегодня
avatar

AM2

  • 12 декабря 2017, 17:17
0
Делал здесь подобные, посмотрите в базе. Если не найдете то что надо, дайте ссылку на самый близкий вариант, переделаю его.
avatar

AM2

  • 11 декабря 2017, 21:52
0
почему не читает?


//--- Inputs
extern double Lots       = 0.1;      // лот
extern double KLot       = 1;        // умножение лота
extern double MaxLot     = 5;        // максимальный лот
extern int StopLoss      = 2000;     // лось
extern int TakeProfit    = 3000;     // язь
extern int Slip          = 30;       // реквот
extern int Shift         = 1;        // на каком баре сигнал индикатора
extern int Magic         = 123;      // магик
avatar

AM2

  • 11 декабря 2017, 21:48
0
Суть стратегии когда индикатор Waddah_Attar_Explosion со своими настройками (не меняем их) становится зеленым (не имеет значение пересек скользящую а только цвет) и в тоже время если индикатор Real Trend с настройками SignalPeriod 15 и AwowwPeriod 1 становится голубого цвета мы открываем ордер на покупку.

На продажу мы открываем ордер если индикатор Waddah_Attar_Explosion принимает красный цвет а индикатор Real Trend становится желтого цвета.

Закрытие ордера происходит при смене тренда. Например… У нас сигнал на покупку и открываемся по сигналу, после появляется сигнал на продажу мы закрываем ордер и в тоже время открываемся на продажу и так далее по кругу.

Это если в функции Trend выставлено значение False а если значение True то при смене тренда мы не закрываемся а добавляем позицию. И так бесконечно пока в суммарном счете не будет плюс в проценте от общего депозита.

Например… Отрылась покупка после продажа после опять покупка и так далее, не закрывая не одну позицию пока функция All Position Take Profit (суммарный счет в проценте от общего депозита) не достигнет определенного размера в процентах.

Это накопительная стратегия пунктов для маленьких временных промежутков пока не прорвет в одну сторону цена резко. Так же нужна 3 функция это All Position Stop Loss (суммарный счет в проценте от общего депозита).

И четвертая функция это Lot Размер лота. 5 функция Slippage проскальзывание. Я думаю нужно добавить мартингейл после того как проиграли тренд чтобы удвоил размер лота при следующем тренде или необязательно удваивать просто что бы добавлял определенный коэффициент к лоту.

Добавим функцию максимальный спред.
avatar

AM2

  • 11 декабря 2017, 20:03
0
Зачем сплошняком задание написали? В таком виде оно нечитаемо и скринов нет поясняющих пункты ТЗ.
avatar

AM2

  • 11 декабря 2017, 18:43
0
Я вчера перепробовал несколько вариантов. Быстро сделать не удалось, обратитесь к платному.
avatar

AM2

  • 11 декабря 2017, 18:35
0
Не знаю для чего тут множитель лота

люблю экспериментировать с мартином :) 
avatar

AM2

  • 11 декабря 2017, 18:31
0
За сложные не берусь.
avatar

AM2

  • 11 декабря 2017, 18:29