なぜコードベースには完全なEAがないのですか? - ページ 4

 

EAのオプションとして追加すべきものがいくつかある。

- ユニークなマジックナンバーの計算、ブローカーがシンボル名を変更しても同じ結果が得られるよう、多分フールプルーフになっている(例えば、"EURUSD" から "EURUSD.m" に変更)。

- 注文管理オプション(トレーリングストップ、ブレークイーブン(pipsまたはpsar、xバーハイ/ロー、maなどの他の値)、オーダークローズ)。

- オーダーチケットによる 広範なオーダー情報の処理(テキスト(またはcsv)ファイルが最もシンプルで適切な方法と思われます)。GVは制限され、OrderComment()はブローカーによって変更される可能性があります。

 
IsNYOnDstをベースにした
datetime TimeSrvToNY(datetime timeSrv=EMPTY){      // Server time to NY time
   if(timeSrv == EMPTY) timeSrv = timeCur_srv;
      #define NY_TZ_STD -5                   // NY is UTC-5 (STD) or UTC-4 (DST)
   int utcToNY = NY_TZ_STD + IsNYonDST(timeSrv);
   return(TimeSrvToUTC(timeSrv) + utcToNY * 3600);  // Previous called TimeGMT
}
datetime TimeNyToSrv(datetime timeNY){
   int utcToNY = NY_TZ_STD + IsNYonDST(timeNY);
   return( TimeUtcToSrv(timeNY - utcToNY * 3600) ); // Previous called TimeServer
}
 
WHRoeder、ダウンロードリンクを更新していますか、それともこのスレッドで提供されるすべてのアップデートを手動でWHReaソースに「パッチ」する必要がありますか?
 
2~3日経過した記事は更新できません。
 
なるほど...。では、もう一度ここに最新版を掲載していただけませんか?
 
mbirrell:

私のカスタムインディケータやEAを共有することに少し不安を感じています。他に同意する人はいますか?

私はこれが少し利己的に聞こえることを知っている...しかし、私が500万になるとき、私は共有します;-)

実際、もしみんながあなたのEaを使ったら、市場価格はゼロか無限になるでしょうね。みんなが同時に買いたい、売りたいと思うようになるのです。
 

こんにちは、MQL4チュートリアルの例は、シンプルで一般的なソリューションで十分でしょうか?

私のEAは、ティックごとではなく、バーごとに計算します。


int Fun_Error(int Error) // エラーを処理する関数です。
{
switch(Error)
{// 重要でないエラー
case 4: Alert("Trade server is busy. Trying once again...");
Sleep(3000);// 簡単な解決方法
return(1);// 関数を終了する
case 135:Alert("Price changed. Trying once again.");
RefreshRates()。// レートを更新する
return(1);// 関数を終了する
case 136:Alert("No prices. Waiting for a new tick...");
while(RefreshRates()==false) // 新しいティックを待ちます。
Sleep(1);// ループ内で一時停止
return(1);// 関数を終了する
case 137:Alert("Broker is busy. Trying once again...");
Sleep(3000);// 簡単な解決策
return(1);// 関数を終了する
case 146:Alert("Trading subsystem is busy. Trying once again.");
Sleep(500);// 簡単な解決策
return(1);// 関数を終了
// 重大なエラー
case 2: Alert("Common error.");
return(0);// 関数を終了する
case 5: Alert("Old terminal version.");
Work=false。// 操作を終了する
return(0);// 関数を終了する
ケース64Alert("Account blocked.");
Work=false。// 操作を終了する
return(0);// 関数を終了します。
case 133:Alert("Trading forbidden.");
return(0);// 関数を終了する
case 134:Alert("操作の実行に十分な資金が ありません。");
return(0);// 関数を終了する
デフォルトではAlert("Error occurred: ",Error); // その他のバリエーション
return(0);// 関数を終了する
}


 

これは本当に良いEA Shell / Templateの基礎になるかもしれません。WHRは経験豊富なMTコーダーです。

これはもともと有用なEAコードのソースとして意図されたもので、「プラグ・アンド・プレイ」シェルではありません。

私はこのEAをいくつかの方法で更新しました。

1.1.MQL4の現行バージョンでコンパイルできるように、構文と変数名を修正しました。
また、"Big Be "とコメントした非常に小さな変更も追加しました。

2.2. WHRがスレッドに書いた追加コードセクションをすべて取り込みました。
私はそのまま残しましたが、置き換えられたセクションはコメントアウトしています。
これらのセクションを追加する際にエラーが発生する可能性がありますが、可能な限り注意しました。
また、EAの他の部分と完全に統合されていない可能性もあります。

3.また、読みやすくするためにテキスト形式をクリーンアップするプログラムを通して実行しました。

ストラテジーテスターで 実行を開始します。
エントリールールの設定はあなたに任されているので、取引を行うことはありません。
私は自分の時間に他の要求があるため、それ以上はしていません。

必要な作業
全体的にコメントがありますが、多くは明確にする必要があります。存在しない場合は書く。各セクションや機能は何をするのでしょうか?
一例。CallAgain()は「無駄なティックをスキップする」とありますが、どのような方法、ロジックなのでしょうか?おそらくトレーリングストップの場合、十分に離れたティック、またはトレードの方向にあるティックだけを取っているのでしょうが、検証するには少し勉強が必要でしょう。

そうすることで、アイデアの源としての役割を果たし、EAシェル/テンプレートとしての作業性をさらに高めることができます。

さらにテスト
エントリールールを追加し、各セクションの動作を確認する。これはStrategy Testerでかなり勉強する必要があります。そして、おそらく、それが想定されることを行うために、いくつかのコーディングがあちこちにあります。そこで動作するようになったら、デモ口座で何度もテストすることになります。

警告。
少なくとも一つの機能は不完全であり、このコードには誤りがあるかもしれませんし、このコードが書かれた後にメタトレーダーが変更された場合、それは許されないことです。

EAを理解せずにコード化し使用することは、すべてのコントロールとその使用方法を理解せずにジェット機を操縦しようとするようなものです。
しかし、あなたのお金ですから、お好きなようにお使いください。

リクエスト
必要な幅広い知識と少しの時間をお持ちの方、ご協力お願いします。


ビッグ・ベー(BigBe)

ファイル:
whrea_v1.2.mq4  188 kb
 
William Roeder:

pips2dblとは何なのか、説明していただけませんか?

 
Pooya Khamooshi: pips2dblとは何か説明してください。

PIPをティックに変換するには。

PIPはPointでもTickでもありません。
TICKとは何 ですか?-MQL4プログラミングフォーラム

Pointを 使用すると、4桁のブローカー、エキゾチック(例:スプレッドが500ポイント以上のUSDZAR、)、金属でのコードブレイクを意味します。ポイントではなく、PIPが何であるかを計算し、それを使用してください。
パラメータでJPYペアを管理する方法は?-MQL4プログラミングフォーラム
インデックスポイントで定義されたスリッページ - 通貨ペア - Expert Advisors and Automated Trading - MQL5 プログラミング フォーラム

理由: