こんにちは、
アカウントの株式を監視し、株式がアカウントの高値から特定の割合を下げると、すべての取引を終了するMT4のEAを知っている人はいますか?しかし、重要なことに、停止が当たった場合、EAはすべての取引を終了し、すべてのEAを無効にして、EA取引が再び有効になるまで取引を入力することはできません。
私はフォーラムで検索ラウンドを持っていたが、私は何も見つけられなかった。
ありがとう。
こんにちは、
アカウントの株式を監視し、株式がアカウントの高値から特定の割合を下げると、すべての取引を終了するMT4のEAを知っている人はいますか?しかし、重要なことに、停止が当たった場合、EAはすべての取引を終了し、すべてのEAを無効にして、EA取引が再び有効になるまで取引を入力することはできません。
私はフォーラムで検索ラウンドを持っていたが、私は何も見つけられなかった。
ありがとう。
AFAIKでは、EA内から他のEAに影響を与える(無効にする)方法はありません。任意の取引を終了することはできますが、他のEAに新しい取引の開始を知らせるように指示することはできません。 (AFAIKは私が間違っている可能性があることを意味します)解決策は、stoploss-EAによってグローバル変数を設定し、他のすべてのEAを変更してから、取引前にこの変数をチェックすることです。別のより厳密な解決策は、stoploss EAがすべての未処理取引を正常に終了し、すべての保留中の注文を正常に削除した後、Windows-API経由でMetatraderアプリケーションを完全に停止させることです。Originally Posted by ;
こんにちは7bit ..まだ私はまだ調べていないが...それは非常に詳細ではない場合あなたはそのようなstoplossに追加することができますいくつかのコードで説明することができますか?この面は、いつも自分のEAを視覚的に管理できない人にとっては非常に重要です。あらかじめありがとうよよろしくOriginally Posted by ;
ちょっとマシュー....株式後続stoplossは簡単なコードです....典型的な後続の停止よりわずかに難しい.....それは7bitが言及したように、グローバル変数の使用のように聞こえる、何が最適だろうあなたの必要性.....それはほんの数行のコードを必要とするでしょう....../-----それ以外は、はい、一つのEAが他のEAを制御することができます。貿易産地からの貿易を禁じるような簡単なこと..... .....それは、ロットの大きさ、利益目標、ストップロス、貿易のペア、および貿易のペアなど、他のeaの.....またはすべての作業パラメータを変更する可能性があります。 .....単一のeaは、貿易生産eaのものと同じコンピュータ上にある必要はありません......これは、eaが他の場所のコンピュータで稼働している場合などに役立ちます。あなたの仕事では、あなたは自宅や他の場所で自宅を制御することができます.....またはその逆... ....この種のeaは、ネット上で見つかりません...... h
グローバルはどうですか?申し訳ありませんが、私は脳にグローバルを持っていると思います。しかし、あなたはそれぞれのEAを修正すれば可能だと思います。Originally Posted by ;
まあ、気にしない、私たちは同じことを言っているようです。しかし、ええ、これは私がやることです。Originally Posted by ;
こんにちは、ありがとうございました。私は、私のコーディングの知識が事実上無駄であることを認めなければならない。利用可能なEAの数があれば、私は誰かがそれが簡単なことであり、彼らがそれを知っていると言っていることを期待していました。 99.9%の時間がバックグラウンドで静かに(トレーディングEAの使用が止まるように)座っていたが、諺の「黒い白鳥」の場合にはそこにあるだろうと思っていたが、 。マシュー
アンテストされたコード:挿入されたコード#define SW_SHOWNORMAL 1 #import shell32.dll int ShellExecuteA(int hWnd、文字列動詞、文字列ファイル、文字列パラメータ、文字列Path、int ShowCommand); #import** *外部プログラムを起動しますが、終了するのを待ってはいけません*void shell(文字列ファイル、文字列パラメータ=){ShellExecuteA(0、open、file、parameters、NULL、SW_SHOWNORMAL); }** *直ちにmetatraderをシャットダウンする*void shutdown(){shell(taskkill、/im terminal.exe); }
私はあなたがオフにすることができない商用クローズドソースEAを扱っている場合、上記のコードを最後の手段としてのみ使用します。それにはいくつかの欠陥があります。たとえば、すべての未決済注文の締め切りとMT4のシャットダウンの間に、EAの1つが新しい取引を開くのに十分な時間を見つけたことを100%保証することはできません。最もエレガントで簡単な解決策は、特定のグローバル変数が設定されている場合、関数の先頭にあるstart()関数をすぐに終了させることによってEAを無効にすることです。すべてのEAは、開始関数の冒頭でこれを含むように変更する必要があります。挿入されたコードint start(){if(GlobalVariableGet(trading_disbled)!= 0){return(0); }/ここで元の開始関数の残りの部分に従ってください}あなたのstoploss EAは、まず以下を実行しなければなりません:Inserted Code GlobalVariableSet(trading_disabled、1); ...開いている取引と注文をすべて閉じます。その後、変数が削除されるか、再び0に設定されるまで、開始関数が常に他の処理を行う前に直ちに戻るため、変更されたEAのどれも*何も*実行できなくなります。また、metatraderメニューからグローバル変数にアクセスしたり、グローバル変数を変更したりすることができます。そのため、トリガされたマウスを数回クリックするだけでリセットできます。Originally Posted by ;