#include <Trade\Trade.mqh>
CTrade trader;
intOnInit()
{
trader.SetExpertMagicNumber(1);
return(INIT_SUCCEEDED);
}
voidOnDeinit(constint reason)
{
//---
}
voidOnTick()
{
for(int i=OrdersTotal()-1;i>=0;i--) // returns the number of current ordersif(OrderGetTicket(i)>0) // selects the pending order by index for further access to its propertiesif(OrderGetInteger(ORDER_MAGIC)==1)
trader.OrderDelete(OrderGetTicket(i));
}
EURUSD,H1: 21470549 ticks, 94233 bars generated. 63097850 total ticks for all symbols
EURUSD: generate 21470549 ticks in0:00:05.375, passed to tester 21470549 ticks
USDCAD: generate 20302871 ticks in0:00:05.062, passed to tester 20302871 ticks
USDJPY: generate 21324430 ticks in0:00:05.641, passed to tester 21324430 ticks
1450 Mb memory used including 18 Mb of history data, 1216 Mb of tick data
ポイントは変わりません。あなたは、すべてのティックでチケット「0」を持つ 保留中の注文を削除 しようとしているのです。
あと、全てのティックに「0」のティックがついた保留注文があるとか言ってる人?保留中の注文がいくつあるか確認しましたか?そして、なぜそれを知っているのか......?
どのティックで "0 "なのか?OrderGetTicket(0) は、チケット 0 の注文が選択されたことを意味するのではなく、インデックス 0 の保留中の注文のリストからチケット注文を返します。
おそらく、もっと具体的なタスクが必要なのでしょう。
例えば、マジックが "1 "の保留中の注文が あれば、それを削除します。
この場合、実装は以下のようになります。
すべての保留中の注文をループで処理
保留中の注文が正常に選択された場合(戻り値は0より大きいチケットです)
選択した保留注文のマジック値が "1 "の場合
削除する
どのチケットで「0」なのか?OrderGetTicket(0) は、チケット 0 の注文が選択されたことを意味するのではなく、インデックス 0 の保留中の注文のリストから、その注文のチケットを返します。
はい、その通りです。
2004年から今日までの30文字分のテスターを動かすのに必要なRAMの容量を教えてください。
テスターでは足りないと言っていますが、どれくらい必要かは書いてありません。
2004年から今日までの30文字分のテスターを動かすのに必要なRAMの容量を教えてください。
テスターでは足りないと言っているが、どの程度かは書いていない。
2キャラクター、5キャラクターを走らせる ...
2キャラクター、5キャラクターを走らせる ...
そんなことより、このようなテストを可能にするためには、どれくらいのメモリを買えばいいのでしょうか?
以下は、あるシンボルについての結果です(始値モードのログより)。
2.はこちら
3:
そして、こちらが4。
飛躍的に 伸びましたね :)刻みがほぼ同じなので、ロジックをたどることができない。
20文字以上という報告はよく見かけますが、テラバイトのRAMを使っている人がいるとは思えません。もしかしたら、秘密があるのかも?
インジケーターのグラフィックバッファの数を設定することは可能ですか?
また、2つ目の質問ですが、RAMを節約するためにExpert Advisorが使用するインディケータを強制的に再初期化することは可能でしょうか?
インジケーターのグラフィックバッファの数を設定することは可能ですか?
また、2つ目の質問ですが、RAMを節約するためにExpert Advisorが使用するインディケータを強制的に再初期化することは可能でしょうか?
プロパティ indicator_plots に記載されている indicator_plot の数を減らすことは可能で、私も実行しました。しかし、それを増やすことはほとんど不可能です。しかし、この減少はメモリの節約にはつながりません。やはり、バッファは残ります。INDICATOR_DATAからINDICATOR_CALCULATIONSに転送されるだけで、それ以上はない。
プロパティindicator_plotsに記載されているのは減らすことができます、私はそうしました。しかし、増やすことはできそうにありません。しかし、この削減ではRAMを節約することはできません。やはり、バッファは残りますね。INDICATOR_DATAからINDICATOR_CALCULATIONSに転送されるだけで、それ以上はない。
ご返信ありがとうございました。バッファの数の化粧直しは、残念ながら関係ありません。
OnInit()ブロックで3つのタイムフレームからMACDインディケータのハンドルを取得したいのですが、チャート上ではうまくいきますが、テスターではうまくいかず、ターミナルが固まります。 存在しないデータを取得したいのですね。対処法をアドバイスしていただけませんか?