bool fatalError=false; // atention: declare this as global
....
if (fatalError==false) {
if (m_Trade.PositionOpen(Symbol(), ORDER_TYPE_BUY, LotSize, Price, 0, 0)) {
Print("Position opened in ", Symbol());
int maxTimeout=0;
while (!PositionSelect(Symbol())) {
Sleep(100);
maxTimeout++;
if (maxTimeout>100) {
Print("### PositionSelect fatal error!");
fatalError=true;
break;
}
}
Print("--> PositionSelect delay=",maxTimeout*100);
break;
}
}
サービスデスクからの最新情報は?
まだです。
こんにちは。
サービスデスクから何か連絡はありましたか?
こんにちは。
サービスデスクからのお知らせはまだですか?
取引、自動売買システム、取引戦略のテストに関するフォーラム
私のEAがダブルエントリーをする
angevoyageur, 2013.12.27 16:49
まだです。私は1つを取得した場合、私はここに応答を投稿することを確認することができます。
個人的には、私は まだ 問題を再現 するために来ていないです。
私のEAは非常にゆっくりとシグナルを発生させますが、今日、取引を行いました。
新しいコードを使用した後、ロットサイズに問題はありませんが、新しいコードが機能していることを確認することができません。
私のEAは非常にゆっくりとシグナルを発生させますが、今日、取引を行いました。
新しいコードを使用した後、ロットサイズに問題はありませんが、新しいコードが動作していることを確認することはできません。
こんにちは、doshurさん。
ServiceDeskからはまだ返事がありません。しかし、あなたの問題は私を「邪魔」している あなたはデモではなく、実際の口座でダブルトレードのこの問題を得ることを確認することができますか?(私は私のデモ口座でこの問題を再現することはできません)。
また、あなたの投稿をもう一度確認することで、私は今、このログに注目しています。
取引、自動売買システム、取引戦略のテストに関するフォーラム
私のEAが二重入力をしてしまう
(based on order#40018327)DEAL2 - Entry 3
2013.12.20 08:35:01 Trades '800****': exchange buy 0.01 EURUSD at market placed for execution in 331 msDEAL2 - Entry 2
2013.12.20 08:35:01 取引 '800****': 取引 #27731691 買 0.01 EURUSD at 1.36353 完了 (based on order #40018326)DEAL 1 - Entry 3
2013.12.20 08:35:00 取引 '800****': 取引所 買0.01 EURUSD at marketDEAL2 - Entry 1
2013.12.20 08:35:00 Trades '800****': 為替の買い0.01 EURUSD at market placed for execution in 313 msDEAL1 - Entry 2
2013.12.20 08:35:00 Trades '800****': 為替の買い0.01 EURUSD at marketDEAL1 - Entry 1
私の理解が正しければ、新しいポジションが開設されている間、PositionSelect()がまだ偽であることが問題であることが確認されます。確かに、1つの取引で3つのエントリーがあり、取引1の3つ目のエントリーが到着する前に2つ目の取引が開始されることがわかります(新しい取引/ポジションの確認)。
Sleep()関数を使った回避策についてですが、どの遅延を使うか知る方法がないので、私はこれに満足していません。もちろん、この遅延が大きければ大きいほど、"二重取引 "になる可能性は低くなりますが、それでも可能性はあります。だから、私はまだより良い解決策を模索しています。
Sleep()関数を使った回避策についてですが、どの遅延を使うか分からないので、私は納得していません。もちろん、この遅延が大きければ大きいほど、「二重売買」をする可能性は低くなりますが、それでも可能性はあります。しかし、それでも可能性はあります。ですから、私はまだより良い解決策を探しています。
このトピックにたどり着いたばかりなので、間違っていたらすみません。しかし、このコードはSleep()よりも良い回避策になりそうで、問題と本当に必要な遅延値を特定するのに役立ちそうです。
こんにちは、doshur。
ServiceDeskからはまだ返事がありません。しかし、あなたの問題は私を "邪魔 "している あなたはデモではなく、実際の口座でダブルトレードのこの問題を取得することを確認できますか?(私は私のデモ口座でこの問題を再現することはできません)。
また、あなたの投稿をもう一度確認することで、私は今、このログに注目しています。
もし私が正しく理解しているならば、問題は新しいポジションが開設されている間、PositionSelect()がまだ偽であることであることが確認されます。確かに、1つの取引で3つのエントリーがあり、取引1の3つ目のエントリーが到着する前に2つ目の取引が開始されていることがわかります(新しい取引/ポジションの確認)。
Sleep()関数を使った回避策についてですが、どの遅延を使うのかが分からないので、私は納得していません。もちろん、この遅延が大きければ大きいほど、"二重取引 "をする可能性は低くなりますが、それでも可能性はあります。だから、私はまだより良い解決策を捜しています。
このトピックにたどり着いたばかりなので、間違っていたらすみません。しかし、このコードは単にSleep()よりも良い回避策になりそうで、問題と本当に必要な遅延値を特定するのに役立ちそうです。
面白いアイデアですね。私は問題を特定するためにそれを使用しますが、私はSleep()関数が 好きではありません それぞれが彼の解決策を選択する自由があるけれど。
ありがとうございました。
面白いアイデアですね。私は問題を特定するためにそれを使用しますが、私はSleep()関数が 好きではありません それぞれが彼の解決策を選択する自由がありますが。
ありがとうございます。
この解決策は単なる回避策で、ティックを失うことになるので、私はSleepも好きではありません。おそらく、セマフォやフラグ、あるいはステートマシンがより安全で効率的でエレガントなものになると思います。