コーディングの方法は? - ページ 307

 

...

はい、正しく理解できました。

fasleへの設定ですが、mqlはC/C++ライクな言語なので、false==0、true==1ということになります。ということで、そのように使うことができます。グローバル変数の型はdoubleしかないので宣言できませんが、上の方法を使えばbooleanのように使うことができます。

crsnape@btinternet.com:
あ~、なるほどね。Global Variableはメモリに値を保存するからですね。ということは、バックテストが終了して5000になったとき、バックテストを再実行してもメモリに保存されているので、BarsGVが5000以下にならないからと言ってfalseを返すことはないのですね。いやはや、奥が深いです。

また、エラーが発生した場合は、HasOrderedGVをfalseにして、残りのコードを続行できるようにするのですね?

私はあなたを正しく理解していますか?

ところで、これは許されるのでしょうか?

GlobalVariableSet(HasOrderedGV, false)です。

なぜなら、MQL4 Bookにはこう書いてあるからです。

datetime GlobalVariableSet([/TD] [TD]string name,double value)とあります。
私のインスタンスの2番目の値は、doubleではなくboolですか?
 

また使えるようになった。すごい。

ありがとう。

 

あるいは、そうだったのか...。

いつものように2011年1月4日から2012年7月20日の期間でテストしてみました。昨日の夕方、init()でBarsGVを挿入したときはうまくいったのですが、今朝、何も変更せずにテストしたところ、2011年1月17日に1つだけ注文が入りました。その後、5分後に何の変更も加えずに再度バックテストを 行ったところ、2011年1月19日から2011年4月21日までの約30件の注文が返ってきました!

基本的には正常に動作するのですが、指定した終了日よりも短い時間で終了してしまいます。ジャーナルにエラーはなく、print()も正常に実行されています。私のエントリー基準は、2012年7月20日までのトレードを展開するはずです。

これは本当に気まぐれなようで、私はそれが私のGlobalVariableに関係していると仮定することしかできません。どう思われますか?

 

これは私の日記です。

2012.07.23 09:08:16 2011.03.21 16:18 テスター:利食い #2 at 1.42100 (1.42100 / 1.42125)

2012.07.23 09:08:15 2011.03.04 14:39 テスター:1.40040で利食い#1 (1.40043 / 1.40068)

2012.07.23 09:08:14 2011.02.04 13:39 テスター:1.35700 (1.35699 / 1.35724) でストップロス#3

2012.07.23 09:08:14 2011.02.01 04:00 H4期間限定 EA EURUSD,H4: チケット番号 3 シンボル EURUSD 価格 1.3718 SL 1.357 TP 0

2012.07.23 09:08:14 2011.02.01 04:00 H4期間限定 EA EURUSD,H4: EA attempting to placetake profit level...成功。

2012.07.23 09:08:14 2011.02.01 04:00 H4 Period EA EURUSD,H4: modify #3 buy 0.01 EURUSD at 1.37175 sl: 1.35700 tp: 1.41600 ok

2012.07.23 09:08:14 2011.02.01 04:00 H4期間限定EA EURUSD,H4:利食いポジション計算成功

2012.07.23 09:08:14 2011.02.01 04:00 H4期間限定EA EURUSD,H4:オーダープレイス成功

2012.07.23 09:08:14 2011.02.01 04:00 H4期間限定 EA EURUSD,H4: EAが買い注文を出そうとしてる...

2012.07.23 09:08:14 2011.02.01 04:00 H4 Period EA EURUSD,H4: open #3 buy 0.01 EURUSD at 1.37175 sl: 1.35700 ok

2012.07.23 09:08:14 2011.02.01 04:00 H4期間限定 EA EURUSD,H4: ポジションサイズ算出成功、派生リスク率使用。

2012.07.23 09:08:14 2011.02.01 04:00 H4 Period EA EURUSD,H4: ロット計算で使用するリスク割合の準備が整いました。

2012.07.23 09:08:14 2011.02.01 04:00 H4期間 EA EURUSD,H4: 前回の注文で利益確定。リスク3%割り当て

2012.07.23 09:08:14 2011.02.01 04:00 H4期間 EA EURUSD,H4: 直前にオープンした注文のチケット番号2を取得。

2012.07.23 09:08:14 2011.02.01 04:00 H4期間 EA EURUSD,H4:チケット番号2が最後のオープンオーダーで取得された。

2012.07.23 09:08:14 2011.02.01 04:00 H4期間 EA EURUSD,H4: 買い条件確認中...成功です。発注準備完了

2012.07.23 09:08:13 2011.01.21 20:00 H4期間 EA EURUSD,H4: チケット番号2 シンボルEURUSD 価格1.36 SL 1.3396 TP 0

2012.07.23 09:08:13 2011.01.21 20:00 H4期間限定 EA EURUSD,H4: EA attempting to place take profit level...成功しました。

2012.07.23 09:08:13 2011.01.21 20:00 H4 Period EA EURUSD,H4: modify #2 buy 0.01 EURUSD at 1.35995 sl: 1.33960 tp: 1.42100 ok

2012.07.23 09:08:13 2011.01.21 20:00 H4期間限定EA EURUSD,H4:利食いポジション計算正常終了

2012.07.23 09:08:13 2011.01.21 20:00 H4期間限定EA EURUSD,H4:オーダープレイス成功

2012.07.23 09:08:13 2011.01.21 20:00 H4期間限定 EA EURUSD,H4: EAが買い注文を出そうとしてる...

2012.07.23 09:08:13 2011.01.21 20:00 H4 Period EA EURUSD,H4: open #2 buy 0.01 EURUSD at 1.35995 sl: 1.33960 ok

2012.07.23 09:08:13 2011.01.21 20:00 H4期間限定 EA EURUSD,H4: ポジションサイズは派生リスク率を使用して正常に計算されました。

2012.07.23 09:08:13 2011.01.21 20:00 H4 Period EA EURUSD,H4: ロット計算で使用するリスク割合の準備が整いました。

2012.07.23 09:08:13 2011.01.21 20:00 H4期間 EA EURUSD,H4: 前回の注文で利益確定。3%のリスクを割り当て

2012.07.23 09:08:13 2011.01.21 20:00 H4期間 EA EURUSD,H4: 前回オープンした注文でチケット番号1取得。

2012.07.23 09:08:13 2011.01.21 20:00 H4期間 EA EURUSD,H4:前回オープンしたオーダーでチケット番号1を取得。

2012.07.23 09:08:13 2011.01.21 20:00 H4期間 EA EURUSD,H4: 買い条件確認中...成功です。発注準備完了

2012.07.23 09:08:13 2011.01.19 04:00 H4期間 EA EURUSD,H4: チケット番号 1 シンボル EURUSD 価格 1.3442 SL 1.3254 TP 0

2012.07.23 09:08:13 2011.01.19 04:00 H4期間限定 EA EURUSD,H4: EA attempting to place take profit level...successful

2012.07.23 09:08:13 2011.01.19 04:00 H4期間限定 EA EURUSD,H4: modify #1 buy 0.01 EURUSD at 1.34415 sl: 1.32540 tp: 1.40040 ok

2012.07.23 09:08:13 2011.01.19 04:00 H4期間限定EA EURUSD,H4:利食いポジション計算正常終了

2012.07.23 09:08:13 2011.01.19 04:00 H4期間限定EA EURUSD,H4:オーダープレイス成功

2012.07.23 09:08:13 2011.01.19 04:00 H4期間限定 EA EURUSD,H4: EAが買い注文を出そうとしてる...

2012.07.23 09:08:13 2011.01.19 04:00 H4期間限定 EA EURUSD,H4: open #1 buy 0.01 EURUSD at 1.34415 sl: 1.32540 ok

2012.07.23 09:08:13 2011.01.19 04:00 H4期間限定 EA EURUSD,H4: ポジションサイズは派生リスク率を使用して正常に計算されました。

2012.07.23 09:08:13 2011.01.19 04:00 H4 Period EA EURUSD,H4: ロット計算で使用するリスク割合の準備が整いました。

2012.07.23 09:08:13 2011.01.19 04:00 H4期間 EA EURUSD,H4: 過去の注文を確認できず。リスク1%割り当て済み

2012.07.23 09:08:13 2011.01.19 04:00 H4期間 EA EURUSD,H4: チケット番号-1が最後のオープンオーダーで取得されました。

2012.07.23 09:08:13 2011.01.19 04:00 H4期間 EA EURUSD,H4: 買い条件確認中...成功です。発注準備完了

2012.07.23 09:08:12 H4期間限定EA入力。MagicNumber=42; RiskRewardRatio=3; D1SlowMAPeriod=200; D1FastMAPeriod=50; FastMACDPeriod=12; SlowMACDPeriod=26; SignalPeriod=9; DNCPeriod=120; SL_Period=10;

時計仕掛けのように動くのですが、なぜか一定期間が過ぎると注文を出すのをやめてしまいます...。

 

...

すみません。

でも、このデータだけでは、あなたのEAに何が起こっているのかを知るには十分ではありません。何度か言ったように、コードがなければ、私にできることは推測することだけで、添付されたデータから推測することさえできません。

crsnape@btinternet.com:
これは私の日記です。

2012.07.23 09:08:16 2011.03.21 16:18 Tester: Take profit #2 at 1.42100 (1.42100 / 1.42125)

2012.07.23 09:08:15 2011.03.04 14:39 テスター:1.40040で利食い#1 (1.40043 / 1.40068)

2012.07.23 09:08:14 2011.02.04 13:39 テスター:1.35700 (1.35699 / 1.35724) でストップロス#3

2012.07.23 09:08:14 2011.02.01 04:00 H4期間限定 EA EURUSD,H4: チケット番号 3 シンボル EURUSD 価格 1.3718 SL 1.357 TP 0

2012.07.23 09:08:14 2011.02.01 04:00 H4期間限定 EA EURUSD,H4: EA attempting to place take profit level...成功。

2012.07.23 09:08:14 2011.02.01 04:00 H4 Period EA EURUSD,H4: modify #3 buy 0.01 EURUSD at 1.37175 sl: 1.35700 tp: 1.41600 ok

2012.07.23 09:08:14 2011.02.01 04:00 H4期間限定EA EURUSD,H4:利食いポジション計算成功

2012.07.23 09:08:14 2011.02.01 04:00 H4期間限定EA EURUSD,H4:オーダープレイス成功

2012.07.23 09:08:14 2011.02.01 04:00 H4期間限定 EA EURUSD,H4: EAが買い注文を出そうとしてる...

2012.07.23 09:08:14 2011.02.01 04:00 H4 Period EA EURUSD,H4: open #3 buy 0.01 EURUSD at 1.37175 sl: 1.35700 ok

2012.07.23 09:08:14 2011.02.01 04:00 H4期間限定 EA EURUSD,H4: ポジションサイズ算出成功、派生リスク率使用。

2012.07.23 09:08:14 2011.02.01 04:00 H4 Period EA EURUSD,H4: ロット計算で使用するリスク割合の準備が整いました。

2012.07.23 09:08:14 2011.02.01 04:00 H4期間 EA EURUSD,H4: 前回の注文で利益確定。リスク3%割り当て

2012.07.23 09:08:14 2011.02.01 04:00 H4期間 EA EURUSD,H4: 直前にオープンした注文のチケット番号2を取得。

2012.07.23 09:08:14 2011.02.01 04:00 H4期間 EA EURUSD,H4:チケット番号2が最後のオープンオーダーで取得された。

2012.07.23 09:08:14 2011.02.01 04:00 H4期間 EA EURUSD,H4: 買い条件確認中...成功です。発注準備完了

2012.07.23 09:08:13 2011.01.21 20:00 H4期間 EA EURUSD,H4: チケット番号2 シンボルEURUSD 価格1.36 SL 1.3396 TP 0

2012.07.23 09:08:13 2011.01.21 20:00 H4期間限定 EA EURUSD,H4: EA attempting to place take profit level...成功しました。

2012.07.23 09:08:13 2011.01.21 20:00 H4 Period EA EURUSD,H4: modify #2 buy 0.01 EURUSD at 1.35995 sl: 1.33960 tp: 1.42100 ok

2012.07.23 09:08:13 2011.01.21 20:00 H4期間限定EA EURUSD,H4:利食いポジション計算正常終了

2012.07.23 09:08:13 2011.01.21 20:00 H4期間限定EA EURUSD,H4:オーダープレイス成功

2012.07.23 09:08:13 2011.01.21 20:00 H4期間限定 EA EURUSD,H4: EAが買い注文を出そうとしてる...

2012.07.23 09:08:13 2011.01.21 20:00 H4 Period EA EURUSD,H4: open #2 buy 0.01 EURUSD at 1.35995 sl: 1.33960 ok

2012.07.23 09:08:13 2011.01.21 20:00 H4期間限定 EA EURUSD,H4: ポジションサイズは派生リスク率を使用して正常に計算されました。

2012.07.23 09:08:13 2011.01.21 20:00 H4 Period EA EURUSD,H4: ロット計算で使用するリスク割合の準備が整いました。

2012.07.23 09:08:13 2011.01.21 20:00 H4期間 EA EURUSD,H4: 前回の注文で利益確定。3%のリスクを割り当て

2012.07.23 09:08:13 2011.01.21 20:00 H4期間 EA EURUSD,H4: 前回オープンした注文でチケット番号1取得。

2012.07.23 09:08:13 2011.01.21 20:00 H4期間 EA EURUSD,H4:前回オープンしたオーダーでチケット番号1を取得。

2012.07.23 09:08:13 2011.01.21 20:00 H4期間 EA EURUSD,H4: 買い条件確認中...成功です。発注準備完了

2012.07.23 09:08:13 2011.01.19 04:00 H4期間 EA EURUSD,H4: チケット番号 1 シンボル EURUSD 価格 1.3442 SL 1.3254 TP 0

2012.07.23 09:08:13 2011.01.19 04:00 H4期間限定 EA EURUSD,H4: EA attempting to place take profit level...successful

2012.07.23 09:08:13 2011.01.19 04:00 H4期間限定 EA EURUSD,H4: modify #1 buy 0.01 EURUSD at 1.34415 sl: 1.32540 tp: 1.40040 ok

2012.07.23 09:08:13 2011.01.19 04:00 H4期間限定EA EURUSD,H4:利食いポジション計算正常終了

2012.07.23 09:08:13 2011.01.19 04:00 H4期間限定EA EURUSD,H4:オーダープレイス成功

2012.07.23 09:08:13 2011.01.19 04:00 H4期間限定 EA EURUSD,H4: EAが買い注文を出そうとしてる...

2012.07.23 09:08:13 2011.01.19 04:00 H4期間限定 EA EURUSD,H4: open #1 buy 0.01 EURUSD at 1.34415 sl: 1.32540 ok

2012.07.23 09:08:13 2011.01.19 04:00 H4期間限定 EA EURUSD,H4: ポジションサイズは派生リスク率を使用して正常に計算されました。

2012.07.23 09:08:13 2011.01.19 04:00 H4 Period EA EURUSD,H4: ロット計算で使用するリスク割合の準備が整いました。

2012.07.23 09:08:13 2011.01.19 04:00 H4期間 EA EURUSD,H4: 過去の注文を確認できず。リスク1%割り当て済み

2012.07.23 09:08:13 2011.01.19 04:00 H4期間 EA EURUSD,H4: チケット番号-1が最後のオープンオーダーで取得されました。

2012.07.23 09:08:13 2011.01.19 04:00 H4期間 EA EURUSD,H4: 買い条件確認中...成功です。発注準備完了

2012.07.23 09:08:12 H4期間限定EA入力。MagicNumber=42; RiskRewardRatio=3; D1SlowMAPeriod=200; D1FastMAPeriod=50; FastMACDPeriod=12; SlowMACDPeriod=26; SignalPeriod=9; DNCPeriod=120; SL_Period=10.H4 Period EAの入力。

時計のように正確に動くのですが、なぜかある期間を過ぎると発注が止まってしまいます...。
 

mladenさん、こんにちは!ファイルを添付します。うまく書ければいいのですが。

ファイル:
 

...

私がコードから見ることができるもの:カウントバー(IndicatorCounted()関数)はEAsで動作しません。

インジケータのみでしか動作しません。

crsnape@btinternet.com:
こんにちは、mladenさん、ファイルを添付します。うまく書ければいいのですが。
 

すみませんmladenさん、CountedBars関数という のは私のコードでは使ったことがないので意味がわかりませんでした。変ですか?

確かに正しいものを添付したのですが、私のコンピュータのファイルの横に南京錠のマークがあるからでしょうか?

そのコードを開いたとき、ほとんど何も入っていないので、一体何だろうと思ったに違いありません。

 

...

私は、コードのこの部分を参照していました

if (Bars > CountedBars)

CountedBars = Bars

else

return (-888);

そして、私はCountedBarsが宣言されている場所を全く見ません(私はそのコードをコンパイルすることさえ失敗します - その変数のための宣言の欠如のためだけではありません)。

crsnape@btinternet.com:
mladenさん、すみません。CountedBars関数というのは、私のコードでは使ったことがないので、どういう意味かわかりませんでした。変ですか?

正しいものを添付したのですが、私のコンピュータのファイルの横に南京錠の印があるからでしょうか?

というのも、そのコードを開いたとき、ほとんど何も書かれていなかったからです。
 

申し訳ありませんが、添付したファイルを通してご覧になったコードは完全に間違っています。正しいファイルを添付したにもかかわらず、私の現在のコードとは全く似ていません(ファイル名をダブルチェックしました)。

私が考えられるのは、私が作業しているファイルの横に南京錠がついていることだけです。それが何なのか、何をするものなのかはわかりません。何かアイデアはありますか?

PS- これは私自身のEAで、EA作成 ウィザードを使用し、一番上の著作権の横に私の名前があります。