Come ho assemblato il mio consulente per tentativi ed errori - pagina 47

 

Tuttavia, c'è una differenza nel codice, il segnale dell'indicatore è diverso

Se è così, meno indicatori sono adatti

//---
   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)
     {

Questo è meglio.

//---
   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])
     {

L'ho cambiato con questo! Controllo ancora la disponibilità dell'Expert Advisor, tutto sembra funzionare.

funziona bene con un indicatore di questo tipo (il file qui sotto)

File:
2.mq5  17 kb
 

Per evitare confusione con l'apertura e la chiusura delle posizioni, è meglio impostare tutte le linee e l'indicatore nella giusta direzione, e non usare l'inverso

altrimenti ci si può confondere - soprattutto perché c'è un'opzione nelle impostazioni (l'inversione si applica a tutte le linee e all'indicatore)

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

potete semplicemente cancellarel'input nel codice stesso
come questo

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

Per evitare confusione con l'apertura e la chiusura delle posizioni, è meglio impostare tutte le linee e l'indicatore nella giusta direzione, e non usare l'inverso

altrimenti ci si può confondere - soprattutto perché c'è un'opzione nelle impostazioni (l'inversione si applica a tutte le linee e all'indicatore)

potete semplicemente cancellarel'input nel codice stesso
come questo

no! l'indicatore deve essere invertito

 

Sto cercando di ottenere alcune nuove funzionalità dall'Indicatore, e sto cercando di fare tutto.

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)

Posso fantasticare con un indicatore o due.

devi solo raccogliere, Indicatore - come questo (foto)

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

Foto di

Ho fatto un indicatore chiamato ( 2 )

File:
2.mq5  17 kb
 
Alexsandr San:

Sto cercando di ottenere alcune nuove funzionalità dall'Indicatore, e sto cercando di fare tutto.

Posso fantasticare con un indicatore o due.

devi solo raccogliere, Indicatore - come questo (foto)

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

Ho imbrogliato l'indicatore che si chiama ( 2 )

Controllo come funziona per 1 minuto - funziona bene

Istantanea2

 
Alexsandr San:

Controllare come funziona per 1 minuto - funziona bene


expertWWWW_Trailing_Line.mq596 kb funziona bene, nessun errore.

solo, bisogno di aggiungere un pannello per informazioni e per i test, nel tester nella versione manuale

pannello

 
Alexsandr San:

esperto funziona beneWWWW_Trailing_Line.mq596 kb, nessun errore.

Solo, è necessario aggiungere un pannello per le informazioni e per i test, nel tester nella versione manuale

Ho aggiunto un pannello - ora puoi fare dei test manuali nel tester.

Comando_Linea d'uscita

quali sono le sue impostazioni

//+------------------------------------------------------------------+
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
File:
 
Alexsandr San:

aggiunto un pannello - ora è possibile ancora nel tester, mettere le mani su di esso.

quali impostazioni ha

Dannazione, mi è sfuggito l'inserimento in OnDeinit

quando si rimuove l'Expert Advisor dal grafico - il pannello non viene rimosso senza di esso

il codice è aperto, potete copiarlo e incollarlo voi stessi

//+------------------------------------------------------------------+
//| 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:

aggiunto un pannello - ora è possibile ancora nel tester, mettere le mani su di esso.

quali impostazioni ha.

Ho bisogno di aggiungere un'altra funzione.

Per esempio - un segnale per SELL viene attivato, non per aprire una posizione - ma per disegnare una linea orizzontale N punti indietro e quando il prezzo va indietro e da questa linea - per aprire una posizione.

EURUSDH1

 
Alexsandr San:

dobbiamo aggiungere un'altra funzione.

Per esempio - un segnale per SELL viene attivato, non per aprire una posizione, ma per disegnare una linea orizzontale N punti indietro e quando il prezzo va indietro e da questa linea - per aprire una posizione.


Ho cercato di farlo senza confondermi, se qualcuno è interessato, cerchiamo di capirlo insieme.

Foto di

Istantanea2