記事"トレーディングモデルに基づくマルチエキスパートアドバイザーの作成"についてのディスカッション - ページ 4

 

記事とコードを提供してくれた著者に感謝します。今日、私はモデルクラス用のシンプルなExpert Advisorのコードを再設計しました。いくつかの努力の結果、異なるペアとタイムフレームで並行して動作させることに成功しました。

コードで唯一修正しなければならなかったのは、GetMyPosition()関数を少しモダンにし、パラメータとして渡されたシンボルによってのみ出来高をカウントするようにしたことだ。そうしないと、2つ以上のペアの束で動作しているモデルがGetMyPosition()を呼び出すと、各ペアに必要な個別の出来高ではなく、複数のペアの合計出来高を取得してしまいます。また、注文シンボルを取得するメソッドをCTableOrders クラスに追加しました。

string            OrderSymbol(){return(m_symbol);}


ありがとうございました!

 

友人たちよ、私の仕事を評価してくれてありがとう!私が考えている問題が適切であり、必要なものであることを理解するのは楽しいことだ。無教養な批評家と極論を戦わせるのはやめよう。彼らは常に存在し、明白なことであっても説得されることはない。

H.Y.doubleのGetMyPosition()メソッドをオーバーロードするのがよいでしょう:double GetMyPosition(stringSymbol)。そうすれば、より柔軟性と汎用性が増す。

間違いなく、このコードは時間の経過とともに改良され、変更されていくだろう。

2011年、明けましておめでとうございます!幸せと幸運を!

 
Огромное спасибо автору за статью, обязательно возьму себе на вооружение.
 

ヴァシリー、記事をありがとう。私の意見では、これが今のところ最高のアプローチだ。どうやってこのコードをデバッグしたのか、信じられないよ。

Vasily - テスターでデバッガーを使わずにどうやってこのコードをデバッグしたのですか? テスターでデバッガーを使わずに作業するのはとても難しいと思います。

デバッグの経験を共有してください。

 

こんにちは。この素晴らしいチュートリアルをありがとうございます。

このコードをデバッグしたところ、Model.mqhの355行目にエラーが見つかりました。

switch(op_type)
 {
 case ORDER_TYPE_BUY:
 case ORDER_TYPE_SELL:
 rez=m_trade.PositionOpen(m_symbol,op_type,lot_send,price,0.0,0.0,comment);
 break;




ORDER_TYPE_BUY:の下にnone Funktion.があるのですが、これは正しいのでしょうか?
switch(op_type)
 {
 case ORDER_TYPE_BUY:
 rez=m_trade.PositionOpen(m_symbol,op_type,lot_send,price,0.0,0.0,comment);
 break;
 case ORDER_TYPE_SELL:
 rez=m_trade.PositionOpen(m_symbol,op_type,lot_send,price,0.0,0.0,comment);
 break;


しかし、あなたが見るJornualで、彼はショートだけロングポジションを持っていません。


ea_modelclass



私はerror.needヘルプを見つけることができません。


MfGクリスチャン

ファイル:
logfile.txt  100 kb
 
最新のターミナル・アップデートの 後、このモデルは動作しなくなった。何が起こったのか、どなたか説明していただけますか?
 
YYURIYY:
最新のターミナル・アップデートの後、このモデルは動作しなくなった。何が起こったのか、誰か説明してくれる?


同様に。私は1週間、コードをコンマずつ解析しています。ストラテジーは売り注文を 出しますが、GetNumberOrders()関数は売り注文=0だけを返し、買い注文=1を返します。

このコードの開発者であるVasilyに助けを求めたいと思います。まだ原因がわかりません。

Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Свойства ордеров
Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Свойства ордеров
  • www.mql5.com
Стандартные константы, перечисления и структуры / Торговые константы / Свойства ордеров - Документация по MQL5
 

この記事を褒めてくれてありがとう!

より多くの人がこのアイデアについて考えてくれることをうれしく思います。以前、私はMQL4で多通貨マルチストラテジーEAのテンプレートを開発しようとしたことがあります。

MQL5が登場したので、私はそのようなEAのオブジェクトモデルを設計し、実装を開始しようとしていました。

残念なことに、このような活動のための自由な時間がありません... :-(

このプロジェクトを続けてください...それが私の考える方法です...多くのストラテジーを簡単に実装でき、手動または自動でそれらのいずれかをオン/オフすることが可能なフレームワークを持つことができます。EAのポートフォリオを持つことができ、必要であればEAを追加したり削除したりすることもできます。

ありがとうございます!

追記:ご興味のある方はこちらへどうぞ。

https:// www.mql5.com/en/forum/118148

Cooperation on interesting projects: TRENDLINE AUTOTRADER and UNIVERSAL MULTICURRENCY MULTISTRATEGY TRADER TEMPLATE - MQL4 forum
  • www.mql5.com
Cooperation on interesting projects: TRENDLINE AUTOTRADER and UNIVERSAL MULTICURRENCY MULTISTRATEGY TRADER TEMPLATE - MQL4 forum
 
YYURIYY:
最新のターミナル・アップデートの後、このモデルは動作しなくなった。何が起こったのか、誰か説明してくれる?

私はそれを理解したと思う。コードの中で:

#property copyright "Copyright 2010, MetaQuotes Software Corp."
#property link      "http://www.mql5.com"

#include <Trade\_OrderInfo.mqh>
#include <Trade\_HistoryOrderInfo.mqh>
#include <Arrays\List.mqh>
class CTableOrders : CObject
{
private:
   ulong             m_magic;       // 命令を下した専門家のマジク
   ulong             m_ticket;      // 主な注文のチケット
   ulong             m_ticket_sl;    // メイン注文に基づいて約定した取引の買い戻し注文のチケット(ストップロス)
   ulong             m_ticket_tp;    主注文(テイクプロフィット)に基づいて約定した取引の買戻し注文のチケット // 主注文(テイクプロフィット)に基づいて約定した取引の買戻し注文のチケット
   ENUM_ORDER_TYPE   m_type;         // 主な注文タイプ
   datetime          m_time_setup;  // オーダー設定時間
   double            m_price;       // 注文価格
   double            m_sl;          // ストップロスの目安
   double            m_tp;          // 利食い予定価格
   double            m_volume_initial;      // 注文量
public:
                     CTableOrders();
   bool              Add(COrderInfo &order_info, double stop_loss, double take_profit);
   bool              Add(CHistoryOrderInfo &history_order_info, double stop_loss, double take_profit);
   double            StopLoss(void){return(m_sl);}
   double            TakeProfit(void){return(m_tp);}
   ulong             Magic(){return(m_magic);}
   ulong             Ticket(){return(m_ticket);}
   int               Type() const;
   datetime          TimeSetup(){return(m_time_setup);}
   double            Price(){return(m_price);}
   double            VolumeInitial(){return(m_volume_initial);}
};

CTableOrders::CTableOrders(void)
{
   m_magic=0;
   m_ticket=0;
   m_type=0;
   m_time_setup=0;
   m_price=0.0;
   m_volume_initial=0.0;
}

bool CTableOrders::Add(CHistoryOrderInfo &history_order_info, double stop_loss, double take_profit)
{
   if(HistoryOrderSelect(history_order_info.Ticket())){
      m_magic=history_order_info.Magic();
      m_ticket=history_order_info.Ticket();
       m_type=history_order_info.OrderType();
      m_time_setup=history_order_info.TimeSetup();
      m_volume_initial=history_order_info.VolumeInitial();
      m_price=history_order_info.PriceOpen();
      m_sl=stop_loss;
      m_tp=take_profit;
      return(true);
   }
   else return(false);
}

bool CTableOrders::Add(COrderInfo &order_info, double stop_loss, double take_profit)
{
   if(OrderSelect(order_info.Ticket())){
      m_magic=order_info.Magic();
      m_ticket=order_info.Ticket();
      m_type=order_info.OrderType();
      m_time_setup=order_info.TimeSetup();
      m_volume_initial=order_info.VolumeInitial();
      m_price=order_info.PriceOpen();
      m_sl=stop_loss;
      m_tp=take_profit;
      return(true);
   }
   else return(false);
}

int   CTableOrders::Type() const
{
   return((ENUM_ORDER_TYPE)m_type);
}
 

この記事の範囲は広大で、非常によく練られている。

このフレームワークを構築したあなたの努力にどれだけ感謝しているか、言葉では言い表せません。あなたはまた、あなたのアプローチの背後にある理由を(少なくとも私には!)理解可能なレベルで説明してくれました。この記事は、概念よりもはるかに進んだもので、トレーディングとOOプログラミングテクニックの実践的で適切な、そして最も重要な 慎重な 応用だと思います!

お願いがあるのですが、英語ファイルのコメントは翻訳できますか?さらに、ロシア語で作業するためのツールをどなたか教えてください。MetaEditorのコメントはロシア語としては表示されず、むしろこの例と大差ない、アクセントのついた文字化けとして表示されます:

 // Èíèöèàëèçèóðóåì óêàçàòåëü ìîäåëüþ MACD

以前からChrome+Google翻訳を使ってロシア語のサイトを見ていますが、長い記事(特にこの記事)では、限られた長さの文書しか翻訳されません。この記事を深く読みたかったので、しばらく待たなければならなかった!もっと外国語に対応できるようになるためのアドバイスがあれば、大いに歓迎する!

傑作です、ソコロフさん。あなたの仕事に対する賛辞と感謝を送ります。この素晴らしいトレーディングシステムへのアプローチに対する私のビジョンを実行することを楽しみにしています。あなたは、私が最終的に取引したいシステムの要件を扱えるようなシステムを設計しようとしていたときに抱えていた多くの葛藤を解決してくれました。まだ解決されていない残りの問題については、このフレームワークが私の努力を正しい方向に導いてくれるでしょう。