КАРАУЛ!!! ПОМОГИТЕ. осталось 4 часа 45 минут!!! - страница 6

 
IceBerg:

Дружба дружбой, а табачек врознь... Полный код будет для вот этого:

notused: 

приведите полный код со стандартной библиотекой (сам не могу ибо не спец по стандартной библиотеке) ...

--

не на пользу, а во вред... ибо отпадет понимание реальности.. учите ООП.

На этом я считаю исчерпаным данный вопрос. 

товарищ - меня не надо учить ооп, я сам кого хошь научу, и не только ООП. А код просил, чтобы сравнить - что нужно написать для открытия сделки с помощью стандартной библиотеки, а что нужно написать без неё. И что в итоге легче понять? Вроде бы вполне конструктивное было предложение.

Ну нет, так нет

 

Всем БОЛЬШОЕ СПАСИБО!

отправил

жду проверки

если повезет встретимся на Automated Trading Championship 2012

Вам всем УДАЧИ!

(а мне учить ...) 

 
notused:

товарищ - меня не надо учить ооп, я сам кого хошь научу, и не только ООП. А код просил, чтобы сравнить - что нужно написать для открытия сделки с помощью стандартной библиотеки, а что нужно написать без неё. И что в итоге легче понять? Вроде бы вполне конструктивное было предложение.

Ну нет, так нет

 

Так вроде все написал же..

Файл в каталоге 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);
  }

В самом эксперте:

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

Собственно все..

Научите меня ООП, ну пожалуйста 

 

Причем вся эта штука уже готова и не надо, опять же изобретать велосипед...

 
pavivas:

Всем БОЛЬШОЕ СПАСИБО!

отправил

жду проверки

если повезет встретимся на Automated Trading Championship 2012

Вам всем УДАЧИ!

(а мне учить ...) 

Уфф )) Поздравляем. Теперь придется за вас болеть ))
 
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);    
что легче? заполнить одну структуру или разбираться с сигналами?
 
notused:
что легче? заполнить одну структуру или разбираться с сигналами?
поддерживаю, классы хорошо, библиотеки для ленивых... ИМХО
 
Mischek:
Уфф )) Поздравляем. Теперь придется за вас болеть ))
 
notused:
что легче? заполнить одну структуру или разбираться с сигналами?

Так в том то и дело.. Сигналом в данном конкретном случае можно сделать хоть смс с твоего телефона.. а вот когда ты жестко прописал советнику что делать.. он и будет куярить..

а вот на Сигнал я могу повесить все что угодно, главное чтобы костюмчик сидел.. Я уже на ATC2012) 

 
notused:

да, по такой дорожке можно

но чаще всего

 

Причина обращения: