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

Рейтинг 2146



РЕКОМЕНДУЮ



Советник на 2-х индикаторах

Здравствуйте! Прошу Вас создать советник, который будет работать на 2-х индикаторах: «FQ — TBS Arrow Time Zones-» и «Solar Wind Joy + TMA AA MTF R+TT».
1.Открытие сделки будет осуществляться при появлении стрелки индикатора «Solar Wind Joy + TMA AA MTF R+TT» с, уже закрепившемся ранее на графике, уровнем индикатора «FQ — TBS Arrow Time Zones-» (даже, если стрелка появилась на несколько баров ранее при выбранном в режиме MTF более старшего TF);
2.При покупке StopLoss выставляется на нижней границе уровня поддержки индикатора «FQ — TBS Arrow Time Zones-», при продаже наоборот на верхней границе уровня сопротивления. Сделка держится до появления противоположной стрелки.
Например: Продажа закрывается при появлении стрелки на покупку. При появлении снова стрелки вниз опять открывается сделка на продажу и держится до тех пор пока не будет обратного сигнала. Если обратный сигнал появляется при уровне поддержки индикатора «FQ — TBS Arrow Time Zones-», то после закрытия продажи сразу открывается ордер на покупку и держится также до появления обратных условий.

3.Так же можно сделать опцию, где после появления стрелок в том же направлении после уже открытого ордера, добавить выставление дополнительных ордеров.

Система стоит на часовых графиках c настройками индикаторов: у «FQ — TBS Arrow Time Zones-» (Param_A-1000, Param_B-1000), у
«Solar Wind Joy + TMA AA MTF R+TT» (TmaRePaint-true, TmaMTF-4 Hours, остальное по-умолчанию).

FQ — TBS Buffering Zones-.mq4 (0 Kb)

Solar Wind Joy + TMA AA MTF R+TT.mq4 (44 Kb)

С уважением, Роман.
  • 0
  • Просмотров: 2182
  • 20 октября 2021, 02:26
  • druzhba78
Понравилcя материал? Не забудьте поставить плюс и поделиться в социальной сети!

Вступите в группу "Стол заказов MQL", чтобы следить за обновлениями
ПРИСОЕДИНИТЬСЯ К ГРУППЕ
присоединиться
  Предыдущая запись в группе
Добавить функцию в советника.
Следующая запись в группе  
Советник по свечам
19 октября 2021
20 октября 2021

Брокер для ваших роботов, 15 лет на рынке

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

+
0
на 22-е
avatar

  35  AM2 Сообщений: 16250 - Андрей

  • 20 октября 2021, 22:29
+
0
Один индюк не прикрепился
avatar

  12  Slava78 Сообщений: 598

  • 21 октября 2021, 07:01
+
0
avatar

  12  druzhba78 Автор Сообщений: 97 - Роман

  • 21 октября 2021, 20:30
+
0
FQ — TBS Buffering Zones не отображается на графике

avatar

  35  AM2 Сообщений: 16250 - Андрей

  • 22 октября 2021, 13:03
+
0
Здравствуйте, Андрей! Я этот индикатор скопировал прямо из моего терминала и он работает нормально. Не понимаю почему он у Вас на графике не показывает?
avatar

  12  druzhba78 Автор Сообщений: 97 - Роман

  • 22 октября 2021, 14:47
+
0
пока в таком виде:




//+------------------------------------------------------------------+
//|                                                          Joy.mq4 |
//|                                              Copyright 2021, AM2 |
//|                                      http://www.forexsystems.biz |
//+------------------------------------------------------------------+
#property copyright "Copyright 2021, AM2"
#property link      "http://www.forexsystems.biz"
#property version   "1.00"
#property strict

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

extern string IndName    = "Solar Wind Joy + TMA AA MTF R+TT";

extern string IndName2   = "FQ — TBS Buffering Zones-";

datetime t=0;
//+------------------------------------------------------------------+
//| 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,Lot(),NormalizeDouble(price,_Digits),Slip,sl,tp,"",Magic,0,clr);
   return;
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
int CountTrades()
  {
   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()<2)
               count++;
           }
        }
     }
   return(count);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
double Lot()
  {
   double lot=Lots;
   for(int i=OrdersHistoryTotal()-1; i>=0; i--)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY))
        {
         if(OrderSymbol()==Symbol() && OrderMagicNumber()==Magic)
           {
            if(OrderProfit()>0)
               break;
            if(OrderProfit()<0)
              {
               lot=OrderLots()*KLot;
               break;
              }
           }
        }
     }
   if(lot>MaxLot)
      lot=Lots;
   return(lot);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void CloseAll(int ot=-1)
  {
   bool cl;
   for(int i=OrdersTotal()-1; i>=0; i--)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
        {
         if(OrderSymbol()==Symbol() && OrderMagicNumber()==Magic)
           {
            if(OrderType()==0 && (ot==0 || ot==-1))
              {
               RefreshRates();
               cl=OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Bid,_Digits),Slip,White);
              }
            if(OrderType()==1 && (ot==1 || ot==-1))
              {
               RefreshRates();
               cl=OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Ask,_Digits),Slip,White);
              }
           }
        }
     }
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
   double blu1 = iCustom(NULL,0,IndName,0,Shift);
   double red1 = iCustom(NULL,0,IndName,1,Shift);
   double blu2 = iCustom(NULL,0,IndName,0,Shift+1);
   double red2 = iCustom(NULL,0,IndName,1,Shift+1);

   bool buy = blu1!=0 && red2!=0;
   bool sell = red1!=0 && blu2!=0;

   if(t!=Time[0])
     {
      if(CountTrades()<1)
        {
         if(buy)
           {
            PutOrder(0,Ask);
           }

         if(sell)
           {
            PutOrder(1,Bid);
           }
        }

      if(CloseOn>0)
        {
         if(buy)
           {
            CloseAll(1);
           }

         if(sell)
           {
            CloseAll(0);
           }
        }
      t=Time[0];
     }

   Comment("\n blu: ",blu1,
           "\n red: ",red1);
  }
//+------------------------------------------------------------------+

avatar

  35  AM2 Сообщений: 16250 - Андрей

  • 22 октября 2021, 13:11
+
0
Спасибо, Андрей! За Ваш труд. Вы не ответили заработал ли индикатор уровней в Вашем терминале? Скажите, а Вы будете ещё заниматься доработкой этого робота? С уважением, Роман.
avatar

  12  druzhba78 Автор Сообщений: 97 - Роман

  • 22 октября 2021, 20:46
+
0
скиньте в базу ваш индикатор. видимо версия по ссылке славы отличается. по умолчанию в терминале вашего индикатора нет
avatar

  35  AM2 Сообщений: 16250 - Андрей

  • 23 октября 2021, 07:52

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