KARAUL!!! HILFE. Noch 4 Stunden und 45 Minuten!!! - Seite 6

 
IceBerg:

Freundschaft ist Freundschaft, aber Tabak ist etwas anderes... Der vollständige Code wird für diesen einen sein:

nicht verwendet:

Geben Sie den vollständigen Code mit der Standardbibliothek an (ich kann es nicht selbst tun, da ich kein Experte für die Standardbibliothek bin) ...

--

nicht für das Gute, sondern für das Schlechte... Denn Sie werden Ihren Sinn für die Realität verlieren... lernen Sie OOP.

An diesem Punkt ist die Frage meines Erachtens erledigt.

Genosse, Sie müssen mich nicht über OOP belehren, ich kann jeden belehren, und nicht nur über OOP. Ich bat um einen Code, um zu vergleichen, was man schreiben muss, um ein Geschäft mit Hilfe der Standardbibliothek zu öffnen, und was man ohne sie schreiben muss. Und was ist am Ende leichter zu verstehen? Das scheint ein recht konstruktiver Vorschlag zu sein.

Nun, nein, also nein.

 

Ein GROSSES DANKESCHÖN an alle!

gesendet

Warten auf die Überprüfung

Mit etwas Glück sehen wir uns bei der Automated Trading Championship 2012!

Viel Glück für Sie alle!

(Ich muss noch lernen ...)

 
notused:

Genosse, ich muss nicht über OOP unterrichtet werden, ich kann jeden unterrichten, und nicht nur über OOP. Und ich habe nach einem Code gefragt, um zu vergleichen, was man schreiben muss, um ein Geschäft mit Hilfe der Standardbibliothek zu öffnen, und was man ohne sie schreiben muss. Und was ist am Ende leichter zu verstehen? Das scheint ein recht konstruktiver Vorschlag zu sein.

Nun, nein, also nein.

Ich habe alles geschrieben.

Datei im Verzeichnis Include:

class МойСигнальщик : public CExpertSignal //наследуемся от Signal
  {
private:
   CiCustom          МойИндикатор; 
     
public:
                     МойОбработчик();
                    ~МойОбработчик();
      
      bool              ValidationSettings(void);
      
      bool              InitIndicators(CIndicators *indicators);
      
      virtual int       LongCondition();
      virtual int       ShortCondition(); 
      
protected:

   bool              МойИндикатор(CIndicators *indicators);
    
int МойСигнальщик::LongCondition()
  {
   int signal=0;
  
   if (!signalLong0==0)
            {
               signal=100;
            }
   return(signal);
  }

Im Expert Advisor:

#include <МойСигнальщик.mqh>
input double Signal_StopLevel       =150.0;        // Stop Loss level (in points)
input double Signal_TakeLevel       =120.0;        // Take Profit level (in points)
input double Signal_PriceLevel      =10.0;         // Price level to execute a deal
input double Money_FixLot           =1.0;         
CExpert ExtExpert;
//+------------------------------------------------------------------+
//| Initialization function of the expert                            |
//+------------------------------------------------------------------+
int OnInit()
  {
//--- Initializing expert
   if(!ExtExpert.Init(Symbol(),Period(),Expert_EveryTick,Expert_MagicNumber))
     {
      //--- failed
      printf(__FUNCTION__+": error initializing expert");
      ExtExpert.Deinit();
      return(-1);
     }
//--- Creating signal
   CExpertSignal *signal=new CExpertSignal;
   if(signal==NULL)
     {
      //--- failed
      printf(__FUNCTION__+": error creating signal");
      ExtExpert.Deinit();
      return(-2);
     }
//---
   ExtExpert.InitSignal(signal);
   signal.ThresholdOpen(Signal_ThresholdOpen);
   signal.ThresholdClose(Signal_ThresholdClose);
   signal.PriceLevel(Signal_PriceLevel);
   signal.StopLevel(Signal_StopLevel);
   signal.TakeLevel(Signal_TakeLevel);
   signal.Expiration(Signal_Expiration);
//--- Creating filter IRTMiniMax
   МойИндикатор *filter0=new МойИндикатор;
   if(filter0==NULL)
     {
      //--- failed
      printf(__FUNCTION__+": error creating filter0");
      ExtExpert.Deinit();
      return(-3);
     }
   signal.AddFilter(filter0);
//--- Set filter parameters
   filter0.Weight(Signal_MovingMM_Weight);
//--- Creation of trailing object
   CTrailingNone *trailing=new CTrailingNone;
   if(trailing==NULL)
     {
      //--- failed
      printf(__FUNCTION__+": error creating trailing");
      ExtExpert.Deinit();
      return(-4);
     }
//--- Add trailing to expert (will be deleted automatically))
   if(!ExtExpert.InitTrailing(trailing))
     {
      //--- failed
      printf(__FUNCTION__+": error initializing trailing");
      ExtExpert.Deinit();
      return(-5);
     }

//--- Set trailing parameters
//--- Creation of money object
   CMoneyFixedLot *money=new CMoneyFixedLot;
   if(money==NULL)
     {
      //--- failed
      printf(__FUNCTION__+": error creating money");
      ExtExpert.Deinit();
      return(-6);
     }
//--- Add money to expert (will be deleted automatically))
   if(!ExtExpert.InitMoney(money))
     {
      //--- failed
      printf(__FUNCTION__+": error initializing money");
      ExtExpert.Deinit();
      return(-7);
     }
//--- Set money parameters
   money.Lot(Money_FixLot);
//--- Check all trading objects parameters
   if(!ExtExpert.ValidationSettings())
     {
      //--- failed
      ExtExpert.Deinit();
      return(-8);
     }
//--- Tuning of all necessary indicators
   if(!ExtExpert.InitIndicators())
     {
      //--- failed
      printf(__FUNCTION__+": error initializing indicators");
      ExtExpert.Deinit();
      return(-9);
     }
//--- ok
   return(0);
  }
//+------------------------------------------------------------------+
//| Deinitialization function of the expert                          |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
   ExtExpert.Deinit();
  }
//+------------------------------------------------------------------+
//| "Tick" event handler function                                    |
//+------------------------------------------------------------------+
void OnTick()
  {
   ExtExpert.OnTick();
  }
//+------------------------------------------------------------------+
//| "Trade" event handler function                                   |
//+------------------------------------------------------------------+
void OnTrade()
  {
   ExtExpert.OnTrade();
  }
//+------------------------------------------------------------------+
//| "Timer" event handler function                                   |
//+------------------------------------------------------------------+
void OnTimer()
  {
   ExtExpert.OnTimer();
  }
//+------------------------------------------------------------------+

Das ist alles...

Bringen Sie mir etwas über OOP bei, bitte

 

Und das Ganze ist bereits fertig und es besteht keine Notwendigkeit, das Rad noch einmal neu zu erfinden...

 
pavivas:

Ein GROSSES DANKESCHÖN an alle!

gesendet

Warten auf die Überprüfung

Mit etwas Glück sehen wir uns bei der Automated Trading Championship 2012!

Viel Glück für Sie alle!

(Ich muss noch lernen ...)

Oof )) Herzlichen Glückwunsch! Jetzt müssen wir für dich jubeln ))
 
MqlTradeRequest request = {0};
MqlTradeResult result = {0};
MqlTick tick;
SymbolInfoTick(_Symbol, tick);
request.volume = 1;
request.action = TRADE_ACTION_DEAL;
request.symbol = _Symbol;
request.type_filling = ORDER_FILLING_FOK; 
request.price = tick.ask;
request.sl = tick.ask - 100 * _Point;
request.tp = tick.ask + 200 * _Point;
request.type = ORDER_TYPE_BUY;
request.deviation = 10;
OrderSend(request, result);    
Was ist einfacher: eine Struktur auszufüllen oder mit Signalen umzugehen?
 
notused:
Was ist einfacher: das Ausfüllen einer Struktur oder der Umgang mit Signalen?
Ich stimme zu, Klassen sind gut, Bibliotheken sind für die Faulen... IMHO
 
Mischek:
Oof )) Herzlichen Glückwunsch! Jetzt müssen wir für dich jubeln ))
 
notused:
Was ist einfacher: eine Struktur ausfüllen oder mit Signalen umgehen?

Das ist die Sache... Das Signal kann in diesem speziellen Fall eine Textnachricht von Ihrem Telefon sein... aber wenn Sie Ihrem Berater genau sagen, was er tun soll... wird er es tun...

Auf dem Signal kann ich alles machen, solange der Anzug passt... Ich bin bereits bei ATC2012)

 
notused:

Ja, das ist der richtige Weg.

aber meistens ist das nicht der Fall.