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

 
Alexsandr San:

Ho capito - ho cercato di non essere confuso, se qualcuno è interessato, per favore chieda, lo capiremo insieme.

Sto ancora cercando il modo giusto per farli funzionare.

//+------------------------------------------------------------------+
//| Enum Lor or Risk                                                 |
//+------------------------------------------------------------------+
enum ENUM_TRADE_COMMAND
  {
   Line_Line=0,      // Line
   Line_buy=1,       // Line+Open Buy
   Line_sell=2,      // Line+Open Sell
   close_buys=3,     // Close All Buy's
   close_sells=4,    // Close All Sell's
   close_all=5,      // Close All Buy's and Sell's
   open_buy=6,       // Open Buy
   open_sell=7,      // Open Sell
   open_buy_sell=8,  // Open Buy and Sell
  };
//+------------------------------------------------------------------+


Qui è dove si fa l'azione, per la quale è necessario impostare la logica

   if(main[1]>signal[1])
     {
      switch(InpTradeCommandY)
        {
         case Line_Line:
            ExtNeedLine=true;
            if(Obj_line())
               break;
         case Line_buy:
            ExtNeedOpenBuy=true;
            if(LongObjOpened())
               ExtNeedLine=true;
            if(Obj_line())
               break;
         case Line_sell:
            ExtNeedOpenSell=true;
            if(ShortObjOpened())
               ExtNeedLine=true;
            if(Obj_line())
               break;
         case  close_buys:
            ExtNeedCloseBuy=true;
            if(LongObjClosed())
               break;
         case  close_sells:
            ExtNeedCloseSell=true;
            if(ShortObjClosed())
               break;
         case close_all:
            ExtNeedCloseAll=true;
            if(LongShortObjClosed())
               break;
         case open_buy:
            ExtNeedOpenBuy=true;
            if(LongObjOpened())
               break;
         case open_sell:
            ExtNeedOpenSell=true;
            if(ShortObjOpened())
               break;
         default:
            ExtNeedOpenBuySell=true;
            if(LongShortObjOpened())
               break;
        }
      PlaySound("ok.wav");
     }
   if(main[1]<signal[1])
     {
      switch(InpTradeCommandU)
        {
         case Line_Line:
            ExtNeedLine=true;
            if(Obj_line())
               break;
         case Line_buy:
            ExtNeedOpenBuy=true;
            if(LongObjOpened())
               ExtNeedLine=true;
            if(Obj_line())
               break;
         case Line_sell:
            ExtNeedOpenSell=true;
            if(ShortObjOpened())
               ExtNeedLine=true;
            if(Obj_line())
               break;
         case  close_buys:
            ExtNeedCloseBuy=true;
            if(LongObjClosed())
               break;
         case  close_sells:
            ExtNeedCloseSell=true;
            if(ShortObjClosed())
               break;
         case close_all:
            ExtNeedCloseAll=true;
            if(LongShortObjClosed())
               break;
         case open_buy:
            ExtNeedOpenBuy=true;
            if(LongObjOpened())
               break;
         case open_sell:
            ExtNeedOpenSell=true;
            if(ShortObjOpened())
               break;
         default:
            ExtNeedOpenBuySell=true;
            if(LongShortObjOpened())
               break;
        }
      PlaySound("ok.wav");
     }
//---
 

Non riesco a capire - Qui, due linee orizzontali, quando il prezzo tocca la prima, verrebbe cancellato, e qui, la seconda linea orizzontale, rimarrebbe.

- Entrambi sono stati cancellati.

E queste linee hanno nomi diversi.

1

input string   t0="----- Trailing Line: 1   -----";              //
input string   InpObjUpName                 = "TOP";             // Obj: TOP (Horizontal Line)
input int      InpStep1                     = 20;                // Obj: Шаг сетки, пунктов("0" -> false)
input ENUM_TRADE_COMMAND InpTradeCommand    = close_sells;       // Obj:  command:
input string   InpObjDownName               = "LOWER";           // Obj: LOWER (Horizontal Line)
input int      InpStep2                     = 20;                // Obj: Шаг сетки, пунктов("0" -> false)
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)

2

input string   t2="----- Trailing Line: 2   -----";              //
input string   InpObjUpNameG                = "TOP G";           // Obj: TOP (Horizontal Line)
input int      InpStep3                     = 30;                // Obj: Шаг сетки, пунктов("0" -> false)
input ENUM_TRADE_COMMAND InpTradeCommandG   = close_sells;       // Obj:  command:
input string   InpObjDownNameG              = "LOWER G";         // Obj: LOWER (Horizontal Line)
input int      InpStep4                     = 30;                // Obj: Шаг сетки, пунктов("0" -> false)
input ENUM_TRADE_COMMAND InTradeCommandG    = close_buys;        // Obj:  command:
input ushort   InpObjTrailingStopG          = 50;                // Obj: Trailing Stop (distance from price to object, in pips)
input ushort   InpObjTrailingStepG          = 5;                 // Obj: Trailing Step, in pips (1.00045-1.00055=1 pips)

Forse abbiamo bisogno di un comando diverso - questo.

                           ObjectsDeleteAll(0,InpObjUpName);

Foto di

File:
 
Alexsandr San:

Non riesco a capire - Qui, due linee orizzontali, quando il prezzo tocca la prima, verrebbe cancellato, e qui, la seconda linea orizzontale, rimarrebbe.

- Entrambi sono stati cancellati.

E queste linee hanno nomi diversi.

1

2

Forse ho bisogno di un comando diverso - questo.


Disegno manualmente una linea orizzontale, do il nome "TOP" e il robot la disegna con lo stesso nome - come può essere?

2 linee orizzontali con lo stesso nome

Foto di

linea orizzontale disegnata manualmente - il robot non ha funzionato, ma quella impostata ha funzionato e ha rimosso entrambe le linee orizzontali con lo stesso nome"TOP"

 
Alexsandr San:

Non riesco a capire - Qui, due linee orizzontali, quando il prezzo tocca la prima, verrebbe cancellato, e qui, la seconda linea orizzontale, rimarrebbe.

- Entrambi sono stati cancellati.

E queste linee hanno nomi diversi.

1

2

Forse ho bisogno di un comando diverso - questo.


Si è scoperto che i nomi sono molto simili, ecco perché"TOP" e"TOP G" sono stati cancellati

Ho dato gli altri nomi nelle impostazioni - ora è cancellato come dovrebbe essere

Istantanea2

 
Alexsandr San:

L'ho capito - risulta che i nomi sono molto simili, ecco perché"TOP" e"TOP G" sono stati cancellati

Gli ho dato un nome diverso nelle impostazioni - ora è cancellato come dovrebbe essere!


Sì, ha funzionato! - Si scopre che i nomi degli oggetti dovrebbero essere impostati così, per non essere vicini a simili

Istantanea3

 

L'Esperto eseguirà qualsiasi comando, le vostre fantasie in un Esperto

IMPOSTAZIONI-

//+------------------------------------------------------------------+
//| Enum Lor or Risk                                                 |
//+------------------------------------------------------------------+
enum ENUM_TRADE_COMMAND
  {
   Line1_Line1=0,    // Line: LOWER
   Line2_Line2=1,    // Line: TOP
   Line_Line=2,      // Line: LOWER+Line: TOP
   close_buys=3,     // Close All Buy's
   close_sells=4,    // Close All Sell's
   close_all=5,      // Close All Buy's and Sell's
   open_buy=6,       // Open Buy
   open_sell=7,      // Open Sell
   open_buy_sell=8,  // Open Buy and Sell
  };
//+------------------------------------------------------------------+
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                = 100;               // Take Profit ("0"-No. 5<100)
input string   t0="----- Trailing Line: 1   -----";              //
input string   InpObjUpName                 = "TOP";             // Obj: TOP (Horizontal Line)
input int      InpStep1                     = 20;                // Obj: Шаг сетки, пунктов("0" -> false)
input ENUM_TRADE_COMMAND InpTradeCommand    = open_sell;         // Obj:  command:
input string   InpObjDownName               = "LOWER";           // Obj: LOWER (Horizontal Line)
input int      InpStep2                     = 20;                // Obj: Шаг сетки, пунктов("0" -> false)
input ENUM_TRADE_COMMAND InTradeCommand     = open_buy;          // 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="----- Trailing Line: 2   -----";              //
input string   InpObjUpNameG                = "POT";             // Obj: TOP (Horizontal Line)
input int      InpStep3                     = 30;                // Obj: Шаг сетки, пунктов("0" -> false)
input ENUM_TRADE_COMMAND InpTradeCommandG   = close_sells;       // Obj:  command:
input string   InpObjDownNameG              = "REWOL";           // Obj: LOWER (Horizontal Line)
input int      InpStep4                     = 30;                // Obj: Шаг сетки, пунктов("0" -> false)
input ENUM_TRADE_COMMAND InTradeCommandG    = close_buys;        // Obj:  command:
input ushort   InpObjTrailingStopG          = 50;                // Obj: Trailing Stop (distance from price to object, in pips)
input ushort   InpObjTrailingStepG          = 5;                 // Obj: Trailing Step, in pips (1.00045-1.00055=1 pips)
input string   t3="----- 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   t4="----- Indicators: SELL   -----";              //
input string   short_name                   = "LeMan_BrainTrend1Sig"; // Name Indicators "SELL"
input bool     InpIndicators                = true;              // Indicators: Start (true)
input ENUM_TRADE_COMMAND InpTradeCommandY   = Line2_Line2;       // Trade command: (BuyBuffer Indicators)
input ENUM_TRADE_COMMAND InpTradeCommandU   = Line1_Line1;       // Trade command: (SellBuffer Indicators)
input string   t5="----- Indicators: BUY    -----";              //
input string   short_name1                  = "LeMan_BrainTrend1Sig"; // 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  = Line1_Line1;       // Trade command: (SellBuffer Indicators)
input string   t6="----- Button:            -----";              //
input ENUM_TRADE_COMMAND InpTradeCommandBut = Line1_Line1;       // Obj(BUY):  command:Button: BUY
input ENUM_TRADE_COMMAND InTradeCommandBut  = Line2_Line2;       // Obj(SELL):  command:Button: SELL
input int      TrailingStop_STOP_LEVEL      = 36;                // Button: Trailing Stop LEVEL

Istantanea2

Nel tester ha cercato gli errori - beh, anche il risultato di default

Foto di

 

Aggiunti altri comandi

//+------------------------------------------------------------------+
//| Enum Lor or Risk                                                 |
//+------------------------------------------------------------------+
enum ENUM_TRADE_COMMAND
  {
   Line1_Line1=0,    // Line: LOWER
   Line2_Line2=1,    // Line: TOP
   Line_Line=2,      // Line: LOWER+Line: TOP
   Line1_buys=3,     // Line: LOWER+Buy's
   Line2_sells=4,    // Line: TOP+Sell's
   close_buys=5,     // Close All Buy's
   close_sells=6,    // Close All Sell's
   close_all=7,      // Close All Buy's and Sell's
   open_buy=8,       // Open Buy
   open_sell=9,      // Open Sell
   open_buy_sell=10, // Open Buy and Sell
  };
//+------------------------------------------------------------------+

ha aggiunto questo

   Line1_buys=3,     // Line: LOWER+Buy's
   Line2_sells=4,    // Line: TOP+Sell's
File:
 

Utilità esperta -

Istruzioni - ecco la cosa più importante da ricordare.

input string   t0="----- Trailing Line: 1   -----";              //
input string   InpObjUpName                 = "TOP";             // Obj: TOP (Horizontal Line)
input int      InpStep1                     = 25;                // Obj: Шаг сетки, пунктов("0" -> false)
input ENUM_TRADE_COMMAND InpTradeCommand    = open_sell;         // Obj:  command:
input string   InpObjDownName               = "LOWER";           // Obj: LOWER (Horizontal Line)
input int      InpStep2                     = 25;                // Obj: Шаг сетки, пунктов("0" -> false)
input ENUM_TRADE_COMMAND InTradeCommand     = close_buys;        // Obj:  command:
input ushort   InpObjTrailingStop           = 0;                 // 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="----- Trailing Line: 2   -----";              //
input string   InpObjUpNameG                = "POT";             // Obj: TOP (Horizontal Line)
input int      InpStep3                     = 0;                 // Obj: Шаг сетки, пунктов("0" -> false)
input ENUM_TRADE_COMMAND InpTradeCommandG   = close_sells;       // Obj:  command:
input string   InpObjDownNameG              = "REWOL";           // Obj: LOWER (Horizontal Line)
input int      InpStep4                     = 0;                 // Obj: Шаг сетки, пунктов("0" -> false)
input ENUM_TRADE_COMMAND InTradeCommandG    = close_buys;        // Obj:  command:
input ushort   InpObjTrailingStopG          = 0;                 // Obj: Trailing Stop (distance from price to object, in pips)
input ushort   InpObjTrailingStepG          = 5;                 // Obj: Trailing Step, in pips (1.00045-1.00055=1 pips)

Queste linee sono disegnate se si imposta(passo di griglia, punti("0" -> falso)) e anche tracciate (se 0 - non lo saranno)

----------------------------------------

Anche dall'indicatore di segnale - non è necessario scaricare questi indicatori, che ho allegato, si può prendere il proprio.

input string   t2="----- Indicators: SELL   -----";              //
input string   short_name                   = "LeMan_BrainTrend1Sig"; // 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   t3="----- Indicators: BUY    -----";              //
input string   short_name1                  = "LeMan_BrainTrend1Sig"; // 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)
 
Alexsandr San:

Utilità esperta -

Istruzioni - ecco la cosa più importante da ricordare.

Queste linee sono disegnate se si imposta(passo di griglia, punti("0" -> falso)) e anche tracciate (se 0 - non lo saranno)

----------------------------------------

Anche dall'indicatore di segnale - non è possibile scaricare questi indicatori, che ho allegato, si può prendere il proprio.


Una delle impostazioni

Istantanea3

Foto di

Istantanea2

impostazioni nel file .set

File:
demo.set  4 kb
 
#property version     "1.001"

aggiunto alcuni comandi

//+------------------------------------------------------------------+
//| ENUM_TRADE_COMMAND                                                 |
//+------------------------------------------------------------------+
enum ENUM_TRADE_COMMAND
  {
   Turn_Off=0,       // TURN OFF
   Line1_Line1=1,    // Line: LOWER
   Line2_Line2=2,    // Line: TOP
   Line_Line=3,      // Line: LOWER+Line: TOP
   Line1_buys=4,     // Line: LOWER+Buy's
   Line2_sells=5,    // Line: TOP+Sell's
   sells_Line1=6,    // Line: LOWER+Sell's
   buys_Line2=7,     // Line: TOP+Buy's
   close_buys=8,     // Close All Buy's
   close_sells=9,    // Close All Sell's
   close_all=10,     // Close All Buy's and Sell's
   open_buy=11,      // Open Buy
   open_sell=12,     // Open Sell
   close_open_b=13,  // Close Sell+Open Buy
   close_open_s=14,  // Close Buy+Open Sell
   open_buy_sell=15, // Open Buy and Sell
  };
//+------------------------------------------------------------------+
File: