[ARCHIVE]フォーラムを乱立させないために、どんなルーキーの質問でも。プロフェッショナルの皆さん、通り過ぎないでください。あなたなしではどこにも行けない - 5. - ページ 30

 
ディムカにまた会えたよ!車にリボンをつけてくれた。そして今、彼はガスを出し、ガスを出し、ランプは点滅しているが、スピードメーターには何も表示されていない!明日、車で出勤できるかどうか心配なのだそうですいかがでしょうか?
 
villy:
ディムカにまた会えたよ!車にリボンをつけてくれた。そして今、彼はガスを出し、ガスを出し、ランプは点滅しているが、スピードメーターには何も表示されていない!明日、車で出勤できるかどうか心配なのだそうですいかがでしょうか?

治療は試されましたか?
 
もしかしたら、誰がそれを解決したのか、そのような解決策はmt4で可能なのか。他のEAの取引を監視するEAまたはスクリプトが必要(EAは同じMagikで異なるペアで取引)。 そして各注文の終了後、Magik利益(事前にEA設定で入力)に達することを確認する。 利益がより高いか等しい場合、次のEAはEAによって取引を停止する必要があります。 このトレーディングアドバイザーに加えて、アカウント上で取引されている他のものがあります。 EA EquityLimits(___)は、アカウントバランスと資金の間の現在の差を監視し、指定された限界に達した場合、それはすべての注文を閉じ、(ツールバーの「Advisors」ボタンを押すことによって)すべての顧問を無効にします。 この点が満たされていません。
 
granit77:

42
laveosa 2012年12月22日 14:46|禁止削除
ここで、とても不思議なケースがあるんです。2004年から2012年までの履歴でアドバイザーをテストしているのですが、結果は1つでプラス、次に2009年から2012年までの期間でテストをすると全く違っています。もしかしたら、それが何であるか知っていますか? ありがとうございました。)


まあ、あなたのEAは最適化されすぎていると言えるでしょうけど...。しかし、2004年から2012年、2009年から2012年となると、2004年から2008年までの間に、何らかの注文がハングアップし、それがテスト終了時にうまく(あるいは失敗して)クローズした可能性が高いと思われます。
 
evgenGX:
もしかしたら、誰がそれを解決したのか、そのような解決策はmt4で可能なのか。他のEAの取引を監視するEAまたはスクリプトが必要です(EAは同じMagikで異なるペアで取引します)。 そして各オーダーを閉じた後、Magik(事前にEA設定に入力)で利益に達することを確認します。 利益が高いか同じで、次のEAがEAによって取引を停止しなければなりません。 この取引EAに加え、口座には他の取引もあります。EA EquityLimits(___)は、口座残高と資金の現在の差を監視し、指定した限界に達した場合、すべての注文を閉じ、すべてのアドバイザー(ツールバーの「アドバイザー」ボタンをクリックします。 この点が満たされていません。

まず、マジックで利益に到達すること...。それは新しいものです))Expert Advisorがたくさんある場合、それぞれのExpert Advisorにグローバル 変数を使用するのはどうでしょう。
 

助けてえええええええええええええええええええええええええええええええ

過去10件の決済済み注文から、負け注文(履歴で決済されたもの)の数を求めるには?

機能がありますが、特定の1つの注文しか検索できません。

をご覧ください。

double WW1(int stop,int mn=-1, string sy="", int op=-1 ) {
datetime t;
double ocp, osl;
int dg, i, j=-1, k=OrdersHistoryTotal() -1 ;<-- ここで、最後から順番に通し番号を変更することができます(-1が最後尾、-1を削除すると最後尾、など)。etc)

if (sy=="0") sy=Symbol();
for (i=0; i<k; i++) {
if(OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)){
if (OrderSymbol()==sy || sy=="") {
if (OrderType()==OP_BUY || OrderType()==OP_SELL) {
if (op<)0 || OrderType()==op) {
if (mn<0 || OrderMagicNumber()==mn) {
if (t<OrderCloseTime()){
t=OrderCloseTime();
j=i;
}
}
}
}
}
}
}
if (OrderSelect(j, SELECT_BY_POS, MODE_HISTORY)){

double rr=OrderProfit();


}
return(rr);
}.


もちろん、この機能を使って、損失や利益の種類を定義しています。

どなたか、過去10回の注文を読み込んで、そのうちの負け注文の数を出す関数をお持ちの方はいらっしゃいませんか?

 

もちろん、この関数をbool関数型にして、trueかfalseの答えを得るという提案もある。

が、このような関数が10個必要で、異なる数字(1から-9まで)を使って、偽と真の数を得ることになります。

では、誰がどのように虚偽と虚偽の数を受信するように助言することができますか?

しかし、これは多くの演算や公式を必要とするため、私は曲解だと考えています。

 
evgenGX:
もしかしたら、誰がそれを解決したのか、そのような解決策はmt4で可能なのか。他のEAの取引を監視するEAまたはスクリプトが必要(EAは同じMagikで異なるペアで取引)。 そして各注文の終了後、Magik利益(事前にEA設定で入力)に達することを確認する。 利益がより高いか等しい場合、次のEAはEAによって取引を停止する必要があります。 このEA以外にも、口座には他の取引があります。 EA EquityLimits(___)は、口座残高と資金の現在の差を監視し、指定した限界に達した場合、すべての注文を閉じ、すべてのEAを無効にします(ツールバーの「EAs」ボタンを押して)。 この点が満たされていません。
2つのExpert Advisorは、端末のグローバル変数を通じて相互に「通信」することができます。以下のEAでは、指定したイベント(全注文の決済)後にSymbol_STOPなどのGV変数を作成し、その変数に1をセットします。 そして取引EAはこの変数を監視し、この変数を見つけてその値が1であればEAは終了(リターンします)します。
 
gheka:

助けてえええええええええええええええええええええええええええええええ

過去10回の決済注文のうち、負け注文(履歴で決済)の件数を取得するには?

この関数は、損失または利得のタイプを定義するために使用します。

もしかして、直近10件のオーダーを即座に読み込んで、そのうちの負けオーダー数を出す機能とかあるんでしょうか?


それで解決
int num_losed,tt,check=10。
for(tt=OrdersHistoryTotal()-1;tt>=0;tt--) if(OrderSelect(tt,SELECT_BY_POS,MODE_HISTORY) && OrderSymbol()==Symbol() && OrderMagicNumber()==magic) {。
if(OrderProfit()<0) num_losed++;
チェック--。
if(check<=0) break;

}

 
keep87:


コードが1000行を超えると、コンパクトに書き始める )

また、MT4では、特にテストを実行するときにパフォーマンスが低下します。饒舌な方がパフォーマンスが速い。


聞くところによると、コンパイラはコードをコンパイルするときに、すべての「隙間」を取り除くのだそうです。論理的には、パフォーマンスのためにどのようなオプションを書くかは気にする必要はありません。なぜなら、コンパイルされたファイルの出力は、同じ「ボイドなし」だからです。

そうでしょう?