KARAUL!!!!あと4時間45分!!!! - ページ 6

 
IceBerg:

友情は友情でも、トバシはトバシで...。フルコードはこのためにあるのだろう。

使わず

標準ライブラリの フルコードを提供する(標準ライブラリの専門家ではないので自分ではできない) ...

--

良きにつけ悪しきにつけ...現実が見えなくなってしまうからだ...OOPを学ぼう。

この時点で質問は終わりかと思います。

同志よ、私にOOPについて教える必要はない、私は誰にでも教えることができるのだ、OOPについてだけでなく。標準ライブラリの力を借りて取引を開くために必要な記述と、そうでない場合の記述を比較するためのコードをお願いしたのです。そして、最終的に何がわかりやすいか?なかなか建設的な提案のようです。

まあ、だからダメなんです。

 

皆さん、本当にありがとうございました。

おくった

検証待ち

ぜひ、「自動売買チャンピオン2012」でお会いしましょう。

グッドラック!(Good Luck to all of you

(勉強しなきゃ)

 
notused:

同志よ、私はOOPについて教わる必要はなく、誰にでも教えることができるのです。そして、標準ライブラリの 助けを借りて取引を開くために必要な記述と、そうでない場合の記述を比較するためのコードをお願いしたのです。そして、最終的に何がわかりやすいか?なかなか建設的な提案のようです。

まあ、だからダメなんです。

すべて書きました。

ディレクトリ内のファイル 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);
  }

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

以上です...。

OOPについて教えてください。

 

そして、全体はすでに出来上がっていて、もう一度、車輪を再発明する必要はないのです......。

 
pavivas:

皆さん、本当にありがとうございました。

おくった

検証待ち

ぜひ、「自動売買チャンピオン2012」でお会いしましょう。

グッドラック!(Good Luck to all of you

(勉強しなきゃ)

ウフ ))おめでとうございます。これで、応援するしかないですね ))
 
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);    
1つの構造を埋めることと、信号を扱うこと、どちらが簡単でしょうか?
 
notused:
1つの構造を埋めるのと、信号を扱うのと、どちらが簡単でしょうか?
そうですね、授業はいい、図書館は怠け者のためのもの...。IMHO
 
Mischek:
ウフ ))おめでとうございます。これで、応援するしかないですね ))
 
notused:
1つの構造を埋めるのと、信号を扱うのと、どちらが簡単か?

それがね...。この特別な場合のシグナルは、携帯電話のメールでもいいのですが...アドバイザーに何をすべきか正確に伝えると...彼はそれを実行します...。

スーツが似合うなら、「シグナル」では何でもできる...。すでにATC2012に参加しています)

 
notused:

そう、それがいいんです。

が、そうでない場合の方が多い。