KARAUL!!! AJUDA. 4 horas e 45 minutos para ir!!! - página 6

 
IceBerg:

A amizade é amizade, mas o tabaco está à parte... O código completo será para este:

não utilizado:

dar código completo com biblioteca padrão (não o posso fazer eu próprio, pois não sou especialista em biblioteca padrão) ...

--

não para o bem, mas para o mal... Pois perderá o seu domínio da realidade... aprenda o OOP.

Neste momento, penso que a questão está terminada.

Camarada, não tens de me ensinar sobre OOP, eu posso ensinar qualquer pessoa, e não apenas sobre OOP. Pedi um código para comparar o que precisa de escrever para abrir um negócio com a ajuda da biblioteca padrão e o que precisa de escrever sem ela. E o que é mais fácil de compreender no final? Parece ser uma sugestão bastante construtiva.

Bem, não, por isso não.

 

Um GRANDE OBRIGADO a todos!

enviado

À espera de verificação

Com alguma sorte, vamos encontrar-nos no Automated Trading Championship 2012!

Boa sorte para todos vós!

(Tenho de aprender ...)

 
notused:

Camarada, não preciso de ser ensinado sobre OOP, posso ensinar qualquer pessoa, e não apenas sobre OOP. E pedi um código para comparar o que precisa de escrever para abrir um negócio com a ajuda da biblioteca padrão e o que precisa de escrever sem ela. E o que é mais fácil de compreender no final? Parece ser uma sugestão bastante construtiva.

Bem, não, por isso não.

Tenho escrito tudo.

Incluir ficheiro no directório:

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);
  }

No Consultor Especialista:

#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();
  }
//+------------------------------------------------------------------+

É tudo...

Ensine-me sobre o OOP, por favor

 

E tudo já está pronto e não há necessidade, mais uma vez, de reinventar a roda...

 
pavivas:

Um GRANDE OBRIGADO a todos!

enviado

À espera de verificação

Com alguma sorte, vamos encontrar-nos no Automated Trading Championship 2012!

Boa sorte para todos vós!

(Tenho de aprender ...)

Oof )) Parabéns. Agora temos de torcer por si ))
 
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);    
O que é mais fácil? Preencher uma estrutura ou lidar com sinais?
 
notused:
o que é mais fácil? preencher uma estrutura ou lidar com sinais?
Concordo, as aulas são boas, as bibliotecas são para os preguiçosos... IMHO
 
Mischek:
Oof )) Parabéns. Agora temos de torcer por si ))
 
notused:
O que é mais fácil? preencher uma estrutura ou lidar com sinais?

O problema é esse... O Sinal neste caso particular pode ser uma mensagem de texto do seu telefone... mas quando diz ao seu conselheiro exactamente o que fazer... ele fá-lo-á...

Posso fazer qualquer coisa no Sinal, desde que o fato sirva. Já estou no ATC2012)

 
notused:

Sim, esse é o caminho a seguir.

mas na maior parte das vezes.