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

Рейтинг 2156



РЕКОМЕНДУЮ



Советник на 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
  • Просмотров: 2275
  • 20 октября 2021, 02:26
  • druzhba78
Понравилcя материал? Не забудьте поставить плюс и поделиться в социальной сети!

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

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

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

0
на 22-е
avatar

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

  • 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 Сообщений: 16530 - Андрей

  • 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 Сообщений: 16530 - Андрей

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

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

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

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

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

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