Как я собираю себе советника методом тыка - страница 47

 

Все же , есть различие в коде , от Индикатора получаются разный сигнал

если так, то, меньше индикаторов подходит

//---
   double BuyBuffer[];
   double SellBuffer[];
   ArraySetAsSeries(BuyBuffer,true);
   ArraySetAsSeries(SellBuffer,true);
   if(!iGetArray(handle_iCustom,1,0,2,BuyBuffer) || !iGetArray(handle_iCustom,0,0,2,SellBuffer))
     {
      ExtPrevBarsY=0;
      return(false);
     }
//---
   if(BuyBuffer[1]!=0.0)
     {

А вот так, лучше получается

//---
   double main[],signal[];
   ArraySetAsSeries(main,true);
   ArraySetAsSeries(signal,true);
   int start_pos=0,count=3;
   if(!iGetArray(handle_iCustom,MAIN_LINE,start_pos,count,main) ||
      !iGetArray(handle_iCustom,SIGNAL_LINE,start_pos,count,signal))
     {
      ExtPrevBarsY=0;
      return(false);
     }

   if(main[1]>signal[1])
     {

Переделал на так! всё ещё проверяю эксперта, на работоспособность, вроде всё работает.

хорошо работает от Индикатора, такого типа (файл ниже) 

Файлы:
2.mq5  17 kb
 

Что бы не путаться с открытием позиции и закрытием - лучше настроить все линии и индикатор в правильном направлении, и не пользоваться реверсом

а то, можно запутаться - тем более, что есть возможность в настройках  (реверс распространяется на все линии и индикатор) 

input string   t3="----- Indicators:        -----";              //
input string   short_name                   = "Examples\\MACD";  // Name Indicators
input bool     InpIndicators                = false;             // Indicators: Start (true)
input bool     InpCloseOpposite             = false;             // Close opposite
input ENUM_TRADE_COMMAND InpTradeCommandY   = open_buy;          // Trade command: (BuyBuffer Indicators)
input ENUM_TRADE_COMMAND InpTradeCommandU   = open_sell;         // Trade command: (SellBuffer Indicators)
input string   t4="----- Revers Buy><Sell   -----";              //
input bool     ObjRevers                    = false;             //  Revers

можно просто удалить input в самом коде
  вот так

string   t4="----- Revers Buy><Sell   -----";              //
bool     ObjRevers                    = false;             //  Revers
 
Alexsandr San:

Что бы не путаться с открытием позиции и закрытием - лучше настроить все линии и индикатор в правильном направлении, и не пользоваться реверсом

а то, можно запутаться - тем более, что есть возможность в настройках  (реверс распространяется на все линии и индикатор) 

можно просто удалить input в самом коде
  вот так

нет! для индикатора нужен реверс 

 

Мудрил и на мудрил, от Индикатора всё пытаюсь, получить какие не будь, новые возможности.

input string   t3="----- Indicators: SELL   -----";              //
input string   short_name                   = "2";               // Name Indicators "SELL"
input bool     InpIndicators                = false;             // Indicators: Start (true)
input ENUM_TRADE_COMMAND InpTradeCommandY   = open_sell;         // Trade command: (BuyBuffer Indicators)
input ENUM_TRADE_COMMAND InpTradeCommandU   = close_sells;       // Trade command: (SellBuffer Indicators)
input string   t4="----- Indicators: BUY    -----";              //
input string   short_name1                  = "2";               // Name Indicators "BUY"
input bool     InpIndicators1               = false;             // Indicators: Start (true)
input ENUM_TRADE_COMMAND InpTradeCommandY1  = close_buys;        // Trade command: (BuyBuffer Indicators)
input ENUM_TRADE_COMMAND InpTradeCommandU1  = open_buy;          // Trade command: (SellBuffer Indicators)

можно по фантазировать - как с одним индикатором, так и с двумя.

нужно только подобрать, Индикатор - типа такого (фото)

https://www.mql5.com/ru/code/392

Снимок 

Я нахимичил Индикатор который называется( 2 ) 
 

Файлы:
2.mq5  17 kb
 
Alexsandr San:

Мудрил и на мудрил, от Индикатора всё пытаюсь, получить какие не будь, новые возможности.

можно по фантазировать - как с одним индикатором, так и с двумя.

нужно только подобрать, Индикатор - типа такого (фото)

https://www.mql5.com/ru/code/392

 

Я нахимичил Индикатор который называется( 2 ) 
 

Проверяю как работает на 1 минуте - работает нормально

Снимок2

 
Alexsandr San:

Проверяю как работает на 1 минуте - работает нормально


хорошо работает экспертWWW_Trailing_Line.mq5 96 kb, без ошибок. 

только, нужно добавить панельку, для информации и для тестирования, в тестере в ручном исполнении

панель 

 
Alexsandr San:

хорошо работает экспертWWW_Trailing_Line.mq5 96 kb, без ошибок. 

только, нужно добавить панельку, для информации и для тестирования, в тестере в ручном исполнении

 

добавил панельку - теперь можно ещё в тестере, набивать руку.

Command_Trailing Line 

какие у него настройки 

//+------------------------------------------------------------------+
input string   t="-----  Parameters         -----";              //
input string   Template                     = "ADX";             // Имя шаблона(without '.tpl')
input double   TargetProfit                 = 999999.99;         // Цель Баланса(Ваш Баланс + сумма)
input uint     maxLimits                    = 1;                 // Кол-во Позиции Открыть в одну сторону
input double   InpLots                      = 0.01;              // Lots
input int      InpTakeProfit                = 50;                // Take Profit ("0"-No. 5<100)
input string   t0="----- Trailing Line      -----";              //
input string   InpObjUpName                 = "TOP";             // Obj: TOP (Horizontal Line)
input ENUM_TRADE_COMMAND InpTradeCommand    = close_sells;       // Obj:  command:
input string   InpObjDownName               = "LOWER";           // Obj: LOWER (Horizontal Line)
input ENUM_TRADE_COMMAND InTradeCommand     = close_buys;        // Obj:  command:
input ushort   InpObjTrailingStop           = 30;                // Obj: Trailing Stop (distance from price to object, in pips)
input ushort   InpObjTrailingStep           = 5;                 // Obj: Trailing Step, in pips (1.00045-1.00055=1 pips)
input string   t1="----- Line name: 1       -----";              //
input string   InpNameR                     = "LineR";           // Line name (Horizontal Line or Trend Line)
input ENUM_TRADE_COMMAND InpTradeCommandR   = open_buy;          // Trade command:
input string   t2="----- Line name: 2       -----";              //
input string   InpNameS                     = "LineS";           // Line name (Horizontal Line or Trend Line)
input ENUM_TRADE_COMMAND InpTradeCommandS   = open_sell;         // Trade command:
input string   t3="----- Indicators: SELL   -----";              //
input string   short_name                   = "2";               // Name Indicators "SELL"
input bool     InpIndicators                = false;             // Indicators: Start (true)
input ENUM_TRADE_COMMAND InpTradeCommandY   = open_sell;         // Trade command: (BuyBuffer Indicators)
input ENUM_TRADE_COMMAND InpTradeCommandU   = close_sells;       // Trade command: (SellBuffer Indicators)
input string   t4="----- Indicators: BUY    -----";              //
input string   short_name1                  = "2";               // Name Indicators "BUY"
input bool     InpIndicators1               = false;             // Indicators: Start (true)
input ENUM_TRADE_COMMAND InpTradeCommandY1  = close_buys;        // Trade command: (BuyBuffer Indicators)
input ENUM_TRADE_COMMAND InpTradeCommandU1  = open_buy;          // Trade command: (SellBuffer Indicators)
input string   t5="----- Button:            -----";              //
input ENUM_TRADE_COMMAND InpTradeCommandBut = open_buy;          // Obj(BUY):  command:Button: BUY
input ENUM_TRADE_COMMAND InTradeCommandBut  = open_sell;         // Obj(SELL):  command:Button: SELL
input int      TrailingStop_STOP_LEVEL      = 36;                // Button: Trailing Stop LEVEL
Файлы:
 
Alexsandr San:

добавил панельку - теперь можно ещё в тестере, набивать руку.

 

какие у него настройки 

блин! пропустил вставить в OnDeinit

когда удаляете с графика эксперта - панелька не удаляется без этого 

код открыт, вы сами можете, скопировать это и вставить

//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
   for(int i=0; i<ArraySize(_name); i++)
     {
      ObjectDelete(0,Symbol()+_name[i]);
     };
   EventKillTimer();
//---
   Print(TimeCurrent(),": ",__FUNCTION__," reason code = ",reason);
   Comment("");
  }
//+------------------------------------------------------------------+


 

 
Alexsandr San:

добавил панельку - теперь можно ещё в тестере, набивать руку.

 

какие у него настройки 

надо ещё, одну функцию добавить.

например - сработал сигнал на SELL , что бы, не открылась позиция - а, от рисовалась Горизонтальная линия, на N пунктов назад, и уже когда, цена вернётся назад, и от этой линии - открывалась позиция.

EURUSDH1

 
Alexsandr San:

надо ещё, одну функцию добавить.

например - сработал сигнал на SELL , что бы, не открылась позиция - а, от рисовалась Горизонтальная линия, на N пунктов назад, и уже когда, цена вернётся назад, и от этой линии - открывалась позиция.


Вроде что то, получилось - старался что бы, не запутано получилось, если кто заинтересуется - спрашивайте, будем вместе разбираться.

Снимок 

Снимок2