KARAUL ! !! AIDE. Il reste 4 heures et 45 minutes ! !! - page 6

 
IceBerg:

L'amitié est l'amitié, mais le tabac est à part... Le code complet sera pour celui-ci :

non utilisé:

donner le code complet avec la bibliothèque standard (je ne peux pas le faire moi-même car je ne suis pas un expert en bibliothèque standard) ...

--

pas utile, mais nuisible... ... parce que vous perdrez votre sens de la réalité... apprenez le fonctionnement normal.

À ce stade, je pense que la question est close.

Camarade, je n'ai pas besoin d'apprendre sur la POO, je peux enseigner à tout le monde, et pas seulement sur la POO. J'ai demandé un code pour comparer ce qu'il faut écrire pour ouvrir un marché avec l'aide de la bibliothèque standard et ce qu'il faut écrire sans elle. Et qu'est-ce qui est le plus facile à comprendre au final ? Cela semble être une suggestion plutôt constructive.

Eh bien, non, donc non.

 

Un GRAND MERCI à tous !

envoyé

En attente de vérification

Avec un peu de chance, nous nous rencontrerons lors du championnat de trading automatisé 2012 !

Bonne chance à vous tous !

(Je dois apprendre...)

 
notused:

Camarade, je n'ai pas besoin d'être instruit sur la POO, je peux enseigner à n'importe qui, et pas seulement sur la POO. Et j'ai demandé un code pour comparer ce qu'il faut écrire pour ouvrir un marché avec l'aide de la bibliothèque standard et ce qu'il faut écrire sans elle. Et qu'est-ce qui est le plus facile à comprendre au final ? Cela semble être une suggestion plutôt constructive.

Eh bien, non, donc non.

J'ai tout écrit.

Fichier dans le répertoire 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);
  }

Dans l'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();
  }
//+------------------------------------------------------------------+

C'est tout...

Apprenez-moi la POO, s'il vous plaît

 

Et le tout est déjà prêt et il n'y a pas besoin, une fois de plus, de réinventer la roue...

 
pavivas:

Un GRAND MERCI à tous !

envoyé

En attente de vérification

Avec un peu de chance, nous nous rencontrerons lors du championnat de trading automatisé 2012 !

Bonne chance à vous tous !

(Je dois apprendre...)

Oof :) Félicitations. Maintenant, nous devrons t'encourager...)
 
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);    
Qu'est-ce qui est le plus facile ? Remplir une structure ou traiter des signaux ?
 
notused:
Qu'est-ce qui est le plus facile ? Remplir une structure ou gérer des signaux ?
Je suis d'accord, les cours sont bien, les bibliothèques sont pour les paresseux... IMHO
 
Mischek:
Oof :) Félicitations. Maintenant, nous devrons t'encourager...)
 
notused:
Qu'est-ce qui est le plus facile ? Remplir une structure ou traiter des signaux ?

C'est ça le truc... Le signal dans ce cas particulier peut être un message texte de votre téléphone... mais lorsque vous dites à votre conseiller exactement ce qu'il doit faire... il le fera...

Je peux tout faire sur le Signal, tant que le costume me va... Je suis déjà sur ATC2012)

 
notused:

Oui, c'est la voie à suivre.

mais plus souvent qu'autrement.