Cómo armo mi asesor por ensayo y error - página 47

 

Aún así, hay una diferencia en el código, la señal del Indicador es diferente

Si es así, son adecuados menos indicadores

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

Esto es mejor.

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

Lo he cambiado por este. Sigo comprobando la disponibilidad del Asesor Experto, todo parece funcionar.

funciona bien con un indicador de este tipo (el archivo de abajo)

Archivos adjuntos:
2.mq5  17 kb
 

Para evitar confusiones con la apertura y el cierre de la posición, es mejor poner todas las líneas y el indicador en la dirección correcta, y no utilizar la inversión

de lo contrario, se puede confundir - sobre todo porque hay una opción en la configuración (la inversión se aplica a todas las líneas y el 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

puede simplemente eliminarla entrada en el propio código
como esto

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

Para evitar confusiones con la apertura y el cierre de la posición, es mejor poner todas las líneas y el indicador en la dirección correcta, y no utilizar la inversión

de lo contrario, se puede confundir - sobre todo porque hay una opción en la configuración (la inversión se aplica a todas las líneas y el indicador)

puede simplemente eliminarla entrada en el propio código
como esto

¡no! el indicador necesita invertirse

 

Estoy tratando de sacar algunas nuevas características del Indicador, y estoy tratando de hacerlo todo.

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)

Puedo fantasear con un indicador o dos.

sólo tienes que recoger, Indicador - como este (foto)

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

Foto de

He hecho un indicador llamado ( 2 )

Archivos adjuntos:
2.mq5  17 kb
 
Alexsandr San:

Estoy tratando de sacar algunas nuevas características del Indicador, y estoy tratando de hacerlo todo.

Puedo fantasear con un indicador o dos.

Sólo tienes que elegir, Indicador - así (foto)

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

He engañado el indicador que se llama ( 2 )

Compruebo cómo funciona durante 1 minuto - funciona bien

Instantánea2

 
Alexsandr San:

Comprobando cómo funciona durante 1 minuto - funciona bien


expertWWW_Trailing_Line.mq596 kb funciona bien, sin errores.

sólo, necesidad de añadir un panel para la información y para las pruebas, en el probador en la versión manual

panel

 
Alexsandr San:

experto funciona bienWWW_Trailing_Line.mq596 kb, sin errores.

Sólo es necesario añadir un panel para información y para pruebas, en el probador en la versión manual

He añadido un panel - ahora puedes hacer algunas pruebas manuales en el probador.

Comando_Línea de arrastre

cuáles son sus 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
Archivos adjuntos:
 
Alexsandr San:

añadido un panel - ahora puede todavía en el probador, tener en sus manos.

qué ajustes tiene

¡Maldición! se perdió la inserción en OnDeinit

cuando se quita el Asesor Experto del gráfico - el panel no se quita sin él

el código está abierto, puede copiarlo y pegarlo usted mismo

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

añadido un panel - ahora puede todavía en el probador, tener en sus manos.

qué ajustes tiene.

necesito añadir una función más.

Por ejemplo - una señal de VENTA se activa, no para abrir una posición - sino para dibujar una línea horizontal N puntos hacia atrás y cuando el precio retrocede y desde esta línea - para abrir una posición.

EURUSDH1

 
Alexsandr San:

tenemos que añadir una función más.

Por ejemplo - una señal de VENTA se activa, no para abrir una posición, sino para dibujar una línea horizontal N puntos hacia atrás y cuando el precio retrocede y desde esta línea - para abrir una posición.


He intentado hacerlo sin confundirme, si alguien está interesado, intentemos resolverlo juntos.

Foto de

Instantánea2

Archivos adjuntos:
Razón de la queja: