記事"サルでも解るMQL5 ウィザード"についてのディスカッション

 

新しい記事 サルでも解るMQL5 ウィザード はパブリッシュされました:

2011年初頭、 MQL5 ウィザードの第一版を発売しました。この新しいアプリケーションはトレーディングロボットを自動で作成する便利なツールを提供します。MetaTrader 5 ユーザーはだれでも、MQL5でプログラミングする方法を知らなくても独自のExpert Advisor を作成することができるのです。

作者: MetaQuotes Software Corp.

 

開発者への質問

1.なぜ他のシグナルが使えないのですか?

例えば、"2つのEMAのクロスオーバーに基づくシグナル"

https://www.mql5.com/ru/forum/2935/page1

2.シグナルのライブラリは補充されますか?

3.ウィザードを使って独自のシグナルを作成することはできますか?

4.ウィザードを使って、インジケーター配列に基づいたインジケーターを作成することはできますか?

5.ウィザードの設定を保存して、作成したストラテジーやインジケーターをウィザードで直接調整できるようになりませんか?

私の意見では、3-5.3-5は、「プログラマーではない」トレーダーの生活をより簡単にするものである。

そして、完全に「ファンタジー」なのは、ウィザードの助けを借りて、エクセルで方程式を書くように、あらゆるインジケーターのシグナルのカセットを自分で作成できることでしょう :)

MetaquotsやCQGに実装されているように。

Советники: Мастер MQL5 - Торговые сигналы по пересечению двух экспоненциальных скользящих средних
Советники: Мастер MQL5 - Торговые сигналы по пересечению двух экспоненциальных скользящих средних
  • www.mql5.com
В статье Создание эксперта без программирования с помощью Мастера MQL5 описаны шаги по автоматическому созданию кода советника при помощи Мастера MQL5.
 
私は独自のシグナルモジュールを書いており、その中のテスト関数は以下の通りです:
//+------------------------------------------------------------------+
//| 販売条件が満たされたかどうかをチェックする。
//| INPUT:なし|
//| OUTPUT:声の重み 0 から 100|
//| 注釈: いいえ。|
//+------------------------------------------------------------------+
int CInnerBarSignal::ShortCondition(){
//--- コンディションは、クローズした前のバーによってチェックされる。

  
   Print("call short condition");
   if(  Low(1) < Low(2) && High(2)<High(3) && Low(2)>Low(3) && Close(3)<Open(3) ){
     return(100);
   }
//--- 条件が満たされない
   return(0);
  }

生成されたEAを"all ticks "モードで実行すると、この関数がバーのオープニングで2回実行されていることがわかります。

2011.06.07 11:42:15 Core 1 接続クローズ

2011.06.07 11:42:15 Core 1 ログファイル "D:˶metatrader5Tester ˶Agent-127.0.0.1-3000˶logs ˶20110607.log "が書き込まれました。

2011.06.07 11:42:15 Core 1 EURUSD,H1: 72504 ticks (24 bars) generated within 62 ms (total bars in history 8814, total time 312 ms)

2011.06.07 11:42:15 Core 1 OnTester 結果 0

2011.06.07 11:42:15 コア 1 2011.06.02 23:00:00 コールショート条件

2011.06.07 11:42:15 Core 1 2011.06.02 23:00:00 short conditionの呼び出し

2011.06.07 11:42:15 コア1 2011.06.02 22:00:00 コールショートコンディション

2011.06.07 11:42:15 コア1 2011.06.02 22:00:00 ショートコンディション呼び出し

2011.06.07 11:42:15 コア1 2011.06.02 21:00:00:00コールショートコンディション

2011.06.07 11:42:15 コア1 2011.06.02 21:00:00 コールショートコンディション

2011.06.07 11:42:15 コア1 2011.06.02 20:00:00 コールショートコンディション

2011.06.07 11:42:15 コア1 2011.06.02 20:00:00 コールショートコンディション

2011.06.07 11:42:15 コア 1 2011.06.02 19:00:00 コールショートコンディション

このような設計になっており、シグナル・モジュールではポスティック処理は利用できないのだろうか?

Мастер MQL5: Создание эксперта без программирования
Мастер MQL5: Создание эксперта без программирования
  • 2010.12.15
  • MetaQuotes Software Corp.
  • www.mql5.com
Вы хотите быстро проверить торговую идею, не тратя времени на программирование? Выберите в "Мастере MQL5" нужный тип торговых сигналов, подключите модули сопровождения позиций и управления капиталом - на этом вся работа закончена. Создайте свои реализации модулей или закажите их через сервис "Работа" - и комбинируйте новые модули с уже существующими.
 
gdtt:
私は独自のシグナルモジュールを書いており、その中のテスト関数は以下の通りです:

生成されたEAを"all ticks "モードで実行すると、この関数がバーのオープニングで2回実行されていることがわかります。

2011.06.07 11:42:15 Core 1 接続クローズ

2011.06.07 11:42:15 Core 1 ログファイル "D:˶metatrader5Tester ˶Agent-127.0.0.1-3000˶logs ˶20110607.log "が書き込まれました。

2011.06.07 11:42:15 Core 1 EURUSD,H1: 72504 ticks (24 bars) generated within 62 ms (total bars in history 8814, total time 312 ms)

2011.06.07 11:42:15 Core 1 OnTester 結果 0

2011.06.07 11:42:15 コア 1 2011.06.02 23:00:00 コールショート条件

2011.06.07 11:42:15 Core 1 2011.06.02 23:00:00 short conditionの呼び出し

2011.06.07 11:42:15 コア1 2011.06.02 22:00:00 コールショートコンディション

2011.06.07 11:42:15 コア1 2011.06.02 22:00:00 ショートコンディション呼び出し

2011.06.07 11:42:15 コア1 2011.06.02 21:00:00:00コールショートコンディション

2011.06.07 11:42:15 コア1 2011.06.02 21:00:00 コールショートコンディション

2011.06.07 11:42:15 コア1 2011.06.02 20:00:00 コールショートコンディション

2011.06.07 11:42:15 コア1 2011.06.02 20:00:00 コールショートコンディション

2011.06.07 11:42:15 コア 1 2011.06.02 19:00:00 コールショートコンディション

このような設計になっており、シグナル・モジュールではポスティック処理は利用できないのだろうか?

デフォルトでは、Expert Advisor はウィザードによって 始値で動作するように生成されます。

Expert Advisor のソースコードで、:

//--- エキスパートの初期化
   if(!Ext_Expert.Init(...,...,false,...))

に置き換えてください:

//--- エキスパートの初期化
   if(!Ext_Expert.Init(...,...,true,...))
 

2011年の初めに、ウィザードMQL5の最初のバージョンをリリースしました。このステップでは、トレーダーに取引ロボットを自動作成するためのシンプルで明確なツールを提供しました。MetaTrader 5ユーザーであれば誰でも、MQL5でのプログラミング方法を知らなくても、独自のExpert Advisorを作成できるようになりました。


これは良いことですが、初心者が自分のロボットを書くには十分ではありません。初心者が独自のシグナルでExpert Advisorを書く 必要があるとしたら?そうです。

初心者が自分のExpert Advisorを書けるようにするには、ビジュアライザーを追加する必要があります。これは、例えばトレードナビゲーターに 実装されています。トレードナビゲーターでは、チャートセクションを選択することで、シグナルをライブラリに追加することができます。ビジュアライザーはすべてをプログラミング言語に転送します。そして、ローソク足、インジケーター、チャート上のグラフィックラインなど、すべてを考慮に入れます。つまり、どんなライブラリでも作成できるのです。そして、これらのシグナルから任意のExpert Advisorを構築することができる。これが私たちが目指すべきものです。

ありがとう!

削除済み  
NGN:


これは良いことだが、初心者が自分のロボットを書くには不十分だ。 もちろん、書くことはできるが、自分のライブラリを使うだけだ。初心者が自分のシグナルのエキスパートを書く必要があるとしたら?私たちはここにいる...

初心者が自分のExpert Advisorを書けるようにするには、ビジュアライザーを追加する必要があります。これは例えばトレードナビゲーターに 実装されています。トレードナビゲーターでは、チャートセクションを選択することで、シグナルをライブラリに追加することができます。ビジュアライザーはすべてをプログラミング言語に転送します。そして、ローソク足、インジケーター、チャート上のグラフィックラインなど、すべてを考慮に入れます。つまり、どんなライブラリでも作成できるのです。そして、これらのシグナルから任意のExpert Advisorを構築することができる。これが私たちが目指すべきものです。

ありがとう!

これらの記事をまだご存知ないですか?

1.MQL5ウィザード:オープンポジション維持のための独自のモジュールを書く方法

2.MQL5ウィザード:資本およびリスク管理モジュールの作成方法

3.MQL5ウィザード:取引シグナルモジュールの作成方法

4.MQL5ウィザード:プログラミングなしでエキスパートアドバイザーを作成する方法

5.MQL5ウィザード:新バージョン

 

ウィザードで未決注文を 発注する方法を教えてください。

もう一つの質問:このコードは正しいですか?

//+------------------------------------------------------------------+
//|| グローバル・エキスパート・オブジェクト|
//+------------------------------------------------------------------+
CExpert ExtExpert;
CExpert ExtExpert1;

//+------------------------------------------------------------------+
//| エキスパート初期化関数
//+------------------------------------------------------------------+
int OnInit()
  {
//--- エキスパートの初期化
   if(!ExtExpert.Init("GBPCHF",Period(),Expert_EveryTick,Expert_MagicNumber) || 
      !ExtExpert1.Init("GBPJPY",Period(),Expert_EveryTick,Expert_MagicNumber))
     {
      //--- 失敗
      printf(__FUNCTION__+": error initializing expert");
      ExtExpert.Deinit();
      ExtExpert1.Deinit(); 
      return(-1);
     }

また、この場合、テスターでどのようなシンボル/期間を設定すればよいのでしょうか?

2011.06.16 10:15:25     Core 1  2011.06.01 00:00:00   CExpert::Init: wrong symbol or timeframe (must be GBPCHF:PERIOD_H1)
 
beginner:

ウィザードで未決済注文を 発注する方法を教えてください。

生成された Expert Advisor には Inp_Signal_PricrLivel というパラメータがあります。

値 0 - 市場参入。

0より大きい値 - エントリーは市場より優れています(指値注文による)。

0より小さい値 - エントリーはマーケットより悪い(ストップオーダーによる)。

2つ目の質問については、すぐには答えられません。
 

以下はそのパラメータである。

//+------------------------------------------------------------------+
//| 入力|
//+------------------------------------------------------------------+
//--- 専門家のための入力
input string Expert_Title         ="2";   // 文書名
int          Expert_MagicNumber   =13179; // 
bool         Expert_EveryTick     =false; // 
//--- メイン信号用入力
input int    Signal_ThresholdOpen =10;    // オープンする信号のしきい値 [0...100]
input int    Signal_ThresholdClose=10;    // クローズするシグナルのしきい値 [0...100]
input double Signal_PriceLevel    =0.0;   // 取引を実行する価格水準
input double Signal_StopLevel     =50.0;  // ストップロス・レベル(ポイント)
input double Signal_TakeLevel     =50.0;  // 利益確定レベル(ポイント)
input int    Signal_Expiration    =4;     // 未決注文の有効期限(バー単位)
input double Signal__Weight       =1.0;   // インナーバー・ウェイト [0...1.0]
//--- お金のためのインプット
input double Money_FixLot_Percent =10.0;  // パーセント。
input double Money_FixLot_Lots    =0.1;   // 固定ボリューム
どのオプションでエントリー するには、どのように実行すればよいですか?
 
beginner:

以下はそのパラメータである。

どちらのオプションでもエントリー できるようにするには、どのようにフォーマットすればよいか。

市場よりも良いポジションを取る(反発時):

input double Signal_PriceLevel    =50.0;   // 取引を実行する価格水準

ブレイクアウト時に)市場より悪い方向にエントリーする:

input double Signal_PriceLevel    =-50.0;   // 取引を実行する価格水準

しかし、-50.0から50.0まで1.0(5.0)刻みでパラメータを最適化することで、テスターで拾うことができます。

 
uncleVic:
2つ目の質問に一度に答える準備はできていません。

あるいは、2つの商品で取引する方法を教えてください。