HoaNguyen
HoaNguyen

 
Уровень 6


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

Рейтинг 2146



РЕКОМЕНДУЮ



Андрей, помогите переписать этот индикатор

Hello Andrew, Помогите отредактировать индикатор, чтобы он не перерисовывался
Описание индикатора: Это индикатор, который я запрограммировал для нескольких таймфреймов в техническом анализе, и это чисто трендовая торговля. Так что это очень безопасно и действительно выгодно для инвесторов.
У меня есть условия на долгосрочном H1, среднесрочном M30 и тогда на M15 появится сигнал индикатора для серфинга. Это мультитаймфрейм, поэтому я вижу, что сигнал на M15 перерисовывается, когда свеча на H1 или M30 еще не закончена. Я не знаю, как уберечь его от перерисовки, потому что я не программист. Надеюсь на вашу помощь Андрей и спонсор.
Вот показатели, которые я использую: SD и 5line, используемые в библиотеке для двух метрик, которые нужно редактировать, — это ScalpM15_BUY и ScalpM15_SELL.fx_indi.zip (42 Kb)
  • +1
  • Просмотров: 1919
  • 20 ноября 2020, 07:29
  • HoaNguyen
Понравилcя материал? Не забудьте поставить плюс и поделиться в социальной сети!

Вступите в группу "Стол заказов MQL", чтобы следить за обновлениями
ПРИСОЕДИНИТЬСЯ К ГРУППЕ
присоединиться
  Предыдущая запись в группе
Forex-Plagiat-Trend-Direction-Indicator
18 ноября 2020
20 ноября 2020

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

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

+
0
с чужим кодом не ко мне
avatar

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

  • 20 ноября 2020, 17:56
+
0
Извини, Эндрю за языковой барьер, который мешает мне полностью понять, что ты имеешь в виду. Если индикаторы не используются, опишите способ создания индикатора или, возможно, советника, который мне нужен. Я использую EMA 14, SMA 20, MACD (12,26,9) и использую спрос на предложение, но я не знаю, как использовать его в коде, поэтому я заменяю его индикатором, как вы видели. Условие ПОКУПКИ: Когда происходит H1, EMA 14> SMA20 && MACD (Main)> MACD (signal) && Затем на M30 происходит нечто подобное EMA 14> SMA20 && MACD (Main)> MACD (signal), затем на M15: EMA 14> SMA20 && MACD (основной)> MACD (сигнал) && MACD (основной)> 0 && MACD (сигнал)> 0 && iClose (закрытие свечи M15)> Предыдущая зона предложения на M15. Условия продажи противоположны условиям ПОКУПКИ.
avatar

  6  HoaNguyen Автор Сообщений: 147 - HoaNguyen

  • 23 ноября 2020, 05:06
+
0
Уважаемый скинь если не жалко настройки или TPL с настройками. Индюк селл не отображается на графике
Редактирован: 21 ноября 2020, 14:23
avatar

  5  Lotos017 Сообщений: 70

  • 21 ноября 2020, 14:21
+
0
thanks Bro, i'll testing it
avatar

  6  HoaNguyen Автор Сообщений: 147 - HoaNguyen

  • 23 ноября 2020, 05:08
+
0
Просто советник
//+------------------------------------------------------------------+
//|                                                        Scalp.mq4 |
//|                                                 Copyright 2020,  |
//|                                      http://www.forexsystems.biz |
//+------------------------------------------------------------------+
#property copyright "Copyright 2020, "
#property link      "http://www.forexsystems.biz"
#property version   "1.00"
#property strict

//--- Inputs
extern double Lots       = 0.01;     // торговый объем ордера
extern double MaxLot     = 5;        // максимальный торговый объем
extern double KLot       = 1;        // увеличение лота
extern int StopLoss      = 0;        // лось
extern int TakeProfit    = 0;        // язь
extern int CloseSig      = 1;        // 1-закрытие по сигналу 0-нет
extern int Shift         = 5;        // до какого бара сигнал
extern int Slip          = 30;       // реквот
extern int Magic         = 123;      // магик

extern string s = "     ------------- Настройки BUY ------------- ";
extern string IndName    = "ScalpM15_BUY";

extern string ss = "     ------------- Настройки SELL ------------- ";
extern string IndName2    = "ScalpM15_SELL";
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
   Comment("");
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
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);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
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;
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
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);
              }
           }
        }
     }
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
double Lot()
  {
   double lot=Lots;
   if(CountTrades()>0)
      lot=NormalizeDouble(Lots*MathPow(KLot,CountTrades()),2);
   if(lot>MaxLot)
      lot=Lots;
   return(lot);
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
   double up=iCustom(NULL,0,IndName,0,Shift);
   double dn=iCustom(NULL,0,IndName2,1,Shift);
   double sto=iCustom(NULL,0,IndName,1,Shift);
   double sto1=iCustom(NULL,0,IndName2,0,Shift);
   
   if(CountTrades()<1)
     {
      if(up!=EMPTY_VALUE) PutOrder(0,Ask);
      if(dn!=EMPTY_VALUE) PutOrder(1,Bid);
     }
   if(CloseSig>0)
     {
      if(sto!=EMPTY_VALUE) CloseAll(0);
      if(sto1!=EMPTY_VALUE)  CloseAll(1);
     }

  }
//+------------------------------------------------------------------+

Редактирован: 21 ноября 2020, 19:38
avatar

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

  • 21 ноября 2020, 18:51
+
0
ПОКУПКИ:

Когда происходит H1, EMA 14> SMA20 && MACD (Main)> MACD (signal) && Затем на M30 происходит нечто подобное EMA 14> SMA20 && MACD (Main)> MACD (signal), затем на M15: EMA 14> SMA20 && MACD (основной)> MACD (сигнал) && MACD (основной)> 0 && MACD (сигнал)> 0

Условия продажи противоположны условиям ПОКУПКИ.

я перенес часть условий в советник, но их у вас во всех индикаторах слишком много.


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

//--- Inputs
extern double Lots       = 0.01;     // торговый объем ордера
extern double MaxLot     = 5;        // максимальный торговый объем
extern double KLot       = 1;        // увеличение лота

extern int StopLoss      = 0;        // лось
extern int TakeProfit    = 0;        // язь

extern int MA1Period     = 14;       // период МА1
extern int MA2Period     = 20;       // период МА2

extern int Fast          = 12;       // Fast EMA period
extern int Slow          = 26;       // Slow EMA period
extern int Signal        = 9;        // Signal SMA period

extern int CloseSig      = 1;        // 1-закрытие по сигналу 0-нет
extern int Shift         = 1;        // бар индикатора
extern int Slip          = 30;       // реквот
extern int Magic         = 123;      // магик

//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
   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);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
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);
              }
           }
        }
     }
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
double Lot()
  {
   double lot=Lots;
   if(CountTrades()>0)
      lot=NormalizeDouble(Lots*MathPow(KLot,CountTrades()),2);
   if(lot>MaxLot)
      lot=Lots;
   return(lot);
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
   double H1MA1=iMA(NULL,60,MA1Period,0,1,0,Shift);
   double H1MA2=iMA(NULL,60,MA2Period,0,0,0,Shift);
   double H1Main=iMACD(NULL,60,Fast,Slow,Signal,0,MODE_MAIN,Shift);
   double H1Sign=iMACD(NULL,60,Fast,Slow,Slow,0,MODE_SIGNAL,Shift);

   double M30MA1=iMA(NULL,30,MA1Period,0,1,0,Shift);
   double M30MA2=iMA(NULL,30,MA2Period,0,0,0,Shift);
   double M30Main=iMACD(NULL,30,Fast,Slow,Slow,0,MODE_MAIN,Shift);
   double M30Sign=iMACD(NULL,30,Fast,Slow,Slow,0,MODE_SIGNAL,Shift);

   double M15MA1=iMA(NULL,15,MA1Period,0,1,0,Shift);
   double M15MA2=iMA(NULL,15,MA2Period,0,0,0,Shift);
   double M15Main=iMACD(NULL,15,Fast,Slow,Slow,0,MODE_MAIN,Shift);
   double M15Sign=iMACD(NULL,15,Fast,Slow,Slow,0,MODE_SIGNAL,Shift);

   bool buy=H1MA1>H1MA2 && H1Main>H1Sign && M30MA1>M30MA2 && M30Main>M30Sign && M15MA1>M15MA2 && M15Main>M15Sign && M15Sign>0;
   bool sell=H1MA1<H1MA2 && H1Main<H1Sign && M30MA1<M30MA2 && M30Main<M30Sign && M15MA1<M15MA2 && M15Main<M15Sign && M15Sign<0;

   if(CountTrades()<1)
     {
      if(buy)
         PutOrder(0,Ask);
      if(sell)
         PutOrder(1,Bid);
     }
   if(CloseSig>0)
     {
      if(sell)
         CloseAll(0);
      if(buy)
         CloseAll(1);
     }

  }
//+------------------------------------------------------------------+

avatar

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

  • 23 ноября 2020, 13:32
+
0
Спасибо, братан, я знаю, что одновременно происходит слишком много условий, но это необходимо для точности сигнала. Спасибо вам за все, что вы пытались мне помочь. Я это протестирую. Еще раз спасибо со всей добротой
avatar

  6  HoaNguyen Автор Сообщений: 147 - HoaNguyen

  • 23 ноября 2020, 13:47
+
0
К сожалению, спрос и предложение играют незаменимую роль в терминах, потому что условия, которые вы помогли мне закодировать, чтобы идентифицировать новый тренд, были сформированы, но когда условие цены не нарушило диапазон. Предложение, тренд может быть просто боковым (боковой тренд), поэтому фактор прорыва является верной гарантией реального движения тренда и получения прибыли. Пожалуйста, дайте мне знать, как я могу добавить элементы спроса и предложения и советника, если не использую библиотеку доступных индикаторов. Спасибо Andrew
avatar

  6  HoaNguyen Автор Сообщений: 147 - HoaNguyen

  • 23 ноября 2020, 13:57
+
0
Пожалуйста, дайте мне знать, как я могу добавить элементы спроса и предложения и советника, если не использую библиотеку доступных индикаторов. Спасибо Andrew


опишите алгоритм расчета этих зон. если он простой я добавлю его в советник
avatar

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

  • 23 ноября 2020, 14:31
+
0
Для меня это сложно. Поскольку я не знаю, как описать спрос на предложение, я использовал альтернативный индикатор, чтобы определить его. На самом деле, когда я торгую, я могу сам определить спрос на предложение, но я хочу, чтобы работа была проще, и я решил написать индикатор или советник для торговли. Могу я использовать прилагаемый рисунок, чтобы вы могли легко понять, что я имею в виду. Как мой рисунок. Что мы знаем, когда цена пробивает линию тренда (фиолетовый), тренд заканчивается. Однако нового тренда реально не будет, это просто необходимое условие. Достаточным условием является то, что цена должна превышать уровни спроса на предложение (обозначены желтым R0, R1, R2). Я буду говорить о ПРОДАЖЕ, то есть цене прорыва точки 0 (ниже) R0. Например, с ПОКУПКОЙ: цена пробьет R1 или цена будет на вершине C (нам нужна цена бара в конце), потому что, если бар не закончился, это может быть прорыв. фальшивка, обманите нас. Стоп-лосс будет находиться на расстоянии нескольких пунктов от R2 в зависимости от таймфрейма, поскольку цена 1 имеет тенденцию возвращаться в диапазоне R1 — R2 до возобновления тренда. Это сложно описать. Надеюсь, вы поделитесь со мной своими мыслями. Спасибо.
avatar

  6  HoaNguyen Автор Сообщений: 147 - HoaNguyen

  • 23 ноября 2020, 16:15
+
0
то что у вас на рисунке по зигзагу можно сделать, а еще проще пересечение 2-х МА
avatar

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

  • 23 ноября 2020, 17:34
+
0
Рад слышать это от вас. Я голый трейдер, использующий только японские свечи. То, как я торгую, показано на рисунке. Поэтому, чтобы сделать это индикатором или советником, мне пришлось полагаться на доступные индикаторы, я не знаю, как представить это в коде. Я с нетерпением жду от вас чего-то великого.
avatar

  6  HoaNguyen Автор Сообщений: 147 - HoaNguyen

  • 23 ноября 2020, 17:41
+
0
я работаю по тз. накиньте на график индикаторы, посмотрите какие больше подходят и я напишу код.
avatar

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

  • 23 ноября 2020, 18:27
+
0
Thanks bro
avatar

  6  HoaNguyen Автор Сообщений: 147 - HoaNguyen

  • 23 ноября 2020, 18:57
+
0
TZ, который вы упомянули, совпадает с eabuilder.com. Вы можете сказать мне его адрес
avatar

  6  HoaNguyen Автор Сообщений: 147 - HoaNguyen

  • 24 ноября 2020, 04:46
+
0
Как дела в эти дни, братан. Я все еще жду вашего ответа. Надеюсь, ты меня не забудешь.
avatar

  6  HoaNguyen Автор Сообщений: 147 - HoaNguyen

  • 28 ноября 2020, 13:46
+
0
Как дела в эти дни, братан. Я все еще жду вашего ответа. Надеюсь, ты меня не забудешь.


я просил тз а его нет
avatar

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

  • 28 ноября 2020, 15:41
+
0
Я предоставил вам полный файл следующих указателей и библиотек. Вы можете просмотреть это. Или дайте мне полезный совет. Спасибо, бро. fx_indi.zip (45 Kb)
avatar

  6  HoaNguyen Автор Сообщений: 147 - HoaNguyen

  • 30 ноября 2020, 05:01
+
0
Извините всех, сегодня я проверил загруженный мной файл индикатора и обнаружил отсутствие включаемой библиотеки, из-за которой индикаторы могут не работать, не отображаться на MT4. Это файл включаемой библиотеки, вы можете скопировать его в папку include в mt4, и на mt4 отобразятся 2 индикатора Sclap BUY & SELL. Andrew Извините за отсутствие. Надеюсь, вы получили от меня это сообщение.Это сжатый файл, в котором находится библиотека. Индикаторы будут работать на мт4. fx_indi.zip (45 Kb)
Редактирован: 25 ноября 2020, 05:32
avatar

  6  HoaNguyen Автор Сообщений: 147 - HoaNguyen

  • 25 ноября 2020, 05:27

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