Como eu monto meu conselheiro por tentativa e erro - página 47

 

Ainda assim, há uma diferença no código, o sinal do Indicador é diferente

Se assim for, menos indicadores são adequados

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

Isto é melhor.

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

Eu mudei para este! Eu ainda verifico a disponibilidade do Expert Advisor, tudo parece funcionar.

funciona bem com um indicador deste tipo (o arquivo abaixo)

Arquivos anexados:
2.mq5  17 kb
 

Para evitar confusão com abertura e fechamento de posição, é melhor colocar todas as linhas e o indicador na direção certa, e não usar o inverso

caso contrário, você pode ficar confuso - especialmente porque há uma opção nas configurações (a inversão se aplica a todas as linhas e ao indicador)

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

você pode simplesmente apagara entrada no próprio código
desta forma

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

Para evitar confusão com abertura e fechamento de posição, é melhor colocar todas as linhas e o indicador na direção certa, e não usar o inverso

caso contrário, você pode ficar confuso - especialmente porque há uma opção nas configurações (a inversão se aplica a todas as linhas e ao indicador)

você pode simplesmente apagara entrada no próprio código
desta forma

não! o indicador precisa ser revertido

 

Estou tentando tirar algumas características novas do Indicador, e estou tentando tirar algumas novas características.

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)

Eu posso fantasiar com um ou dois indicadores.

você só precisa pegar, Indicador - como este (foto)

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

Foto por

Eu fiz um indicador chamado ( 2 )

Arquivos anexados:
2.mq5  17 kb
 
Alexsandr San:

Estou tentando tirar algumas características novas do Indicador, e estou tentando fazer tudo isso.

Eu posso fantasiar com um ou dois indicadores.

Você só precisa escolher, Indicador - como este (foto)

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

Eu enganei o indicador que é chamado ( 2 )

Eu verifico como funciona por 1 minuto - funciona bem

Instantâneo2

 
Alexsandr San:

Verificação de como funciona por 1 minuto - funciona bem


expertWWWWWW_Trailing_Line.mq596 kb funciona bem, sem erros.

apenas, é necessário adicionar um painel para informações e para testes, no testador na versão manual

painel

 
Alexsandr San:

especialista trabalha bemWWWWWW_Trailing_Line.mq596 kb, sem erros.

Somente é necessário acrescentar um painel para informação e para testes, no testador na versão manual

Eu adicionei um painel - agora você pode fazer alguns testes manuais no testador.

Linha Command_Trailing

quais são seus ajustes

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

acrescentou um painel - agora você ainda pode no testador, colocar suas mãos nele.

que configurações tem

Maldição! falhou a inserção no OnDeinit

quando você remove o Expert Advisor do quadro - o painel não é removido sem ele

o código está aberto, você mesmo pode copiá-lo e colá-lo

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

acrescentou um painel - agora você ainda pode no testador, colocar suas mãos nele.

que configurações tem.

Preciso acrescentar mais uma função.

Por exemplo - um sinal para VENDA é acionado, não para abrir uma posição - mas para traçar uma linha horizontal N pontos para trás e quando o preço voltar e a partir desta linha - para abrir uma posição.

EURUSDH1

 
Alexsandr San:

precisamos acrescentar mais uma função.

Por exemplo - um sinal para VENDA é acionado, não para abrir uma posição, mas para desenhar uma linha horizontal N pontos para trás e quando o preço voltar e a partir desta linha - para abrir uma posição.


Tentei manter as coisas simples. Se alguém se interessar, pergunte-nos, tentaremos descobrir isso juntos.

Foto por

Instantâneo2

Arquivos anexados: