int reserved=0;// размер распределённой памяти//+------------------------------------------------------------------+//| изменение размера массива |//+------------------------------------------------------------------+int Resize(int size)
{
int step=4;// резервирование с шагом 2^4=16int new_reserv=0;
if((size>>step<<step)>=reserved)
{
reserved=((size>>step)+1)<<step;
new_reserv=reserved-size;// сколько памяти нужно дорезервировать ArrayResize(arr,size,new_reserv);
}
elseArrayResize(arr,size);
Print("ArrayResize(arr,"+size+","+new_reserv+"); reserved="+reserved);
return(size);
}
В последнее время возрос интерес к кластерному анализу рынка FOREX. MQL5 открывает новые возможности исследования закономерностей движения валютных пар. Важным преимуществом MQL5, по сравнению с MQL4, является возможность использования неограниченного количества индикаторных буферов. В данной статье описан пример построения мультивалютного индикатора.
当時はこの疑問を明確にしなかったので、今は疑問を持っています。
正しいメモリ確保の方法とは?
このように
または次のようになります。そして、ヘルプを修正する、非常に曖昧なんです。
ZS 予約を考慮した割り当てメモリサイズが2016であることを示唆するものである。
現時点では、次のように動作します。
これにより、2010年分のエレメントのバッファが確保され、10個のエレメントが使用可能になります。
これはおそらく 近い将来、変わるかもしれません。
現時点では、次のように動作します。
これにより、2010項目のバッファが割り当てられ、そのうち10項目が利用可能になります。
もうすぐ変わるかも しれません。
10個あるバッファのうち、2000個ではだめなのですか?
この方が理にかなっていると私は思います。
現時点では、次のように動作します。
これにより、2010項目のバッファが割り当てられ、そのうち10項目が利用可能になります。
...
なるほど、こういうところか。
...
これはおそらく 近い将来、変わる可能性があります。
現在の退職金制度の何が問題なのでしょうか?
バグかどうかわかりませんが、CCFp(Cluster Indicator)のような重い指標に基づいてExpert Advisorを最適化すると、パスの最後にローカルエージェントに次のウィンドウがポップアップします: Strategy Tester Agent has stopped working.
このウィンドウを閉じても、プログラムはポップアップせず、数秒で最適化を継続し、パスの結果はレポートに記録されます。
EAコードには、以下の情報が含まれています。
void OnDeinit(const int reason)
{
IndicatorRelease(CCp_Handle)。
}
IndicatorRelease(CCp_Handle);の行をコメントアウトすると、最適化がエラーなく行われる。
プログラミングは苦手なのですが、質問なのですが、インジケーターやExpert Advisorでこの機能を使うのはどのような場合でしょうか?私のCCFpインジケータのコードでは、ヒープオブミュービングのハンドルを解放しての非初期化も使用しています。
バグかどうかわかりませんが、CCFp(Cluster Indicator)のような重い指標に基づいてExpert Advisorを最適化すると、パスの最後にローカルエージェントに次のウィンドウがポップアップします: Strategy Tester Agent has stopped working.
このウィンドウを閉じても、プログラムはポップアップせず、数秒で最適化を継続し、パスの結果はレポートに記録されます。
接続が途切れることが多くなった/長くなった。
20110224
...
GI 1 ネットワーク 15:02:34 '728041': MetaQuotes-Demoへの接続が失われました。
HJ 0 ネットワーク 13:19:25 '728041': 83%の品質でアクセスポイントに接続中(前回:83%)。
...
20110302
...
KJ 0 ネットワーク 08:53:17 '728041': アクセスポイントのためにネットワークをスキャンしています。
IL 0 ネットワーク 08:54:14 '728041': ネットワークのスキャンが終了しました。
ME 0 ネットワーク 08:54:14 '728041': 93 % の品質でより良いアクセスポイントに自動接続します(前回: 61 %)。
LK 1 ネットワーク 08:54:14 '728041': MetaQuotes-Demoへの接続が失われました。
ES 0 ネットワーク 12:05:25 '728041': 92 % の品質でアクセスポイントに接続中 (前回: 0 %)
KN 0 ネットワーク 12:05:26 '728041': Access Point 1 Europe 経由で MetaQuotes-Demo で認可されました。
MF 0 ネットワーク 12:05:26 '728041': MetaQuotes Software Corp.と端末が同期されました。
OR 0 ネットワーク 15:08:22 '728041': アクセスポイントのためにネットワークをスキャンしています。
QD 0 ネットワーク 15:09:18 '728041': ネットワークのスキャンが終了しました。
...
20110303
...
FI 1 ネットワーク 21:26:45 '728041': MetaQuotes-Demoへの接続が失われました。
PL 0 ネットワーク 10:10:49 '728041': 83 % の品質でアクセスポイントに接続中(前回: 83 %)です。
...
スクリプトの中で外部変数を使用し、必要な値を設定してから実行したい。MT4では#property show_iputsを使って実装されていましたが、MT5ではできません(#property script_show_inputs はありますが、何も表示されません)。この問題に遭遇された方がいらっしゃいましたら、どのようにすればよいかアドバイスをお願いします。
入力 変数は有効でしょうか?
スクリプトの中で外部変数を使用し、必要な値を設定してから実行したい。MT4では#property show_iputsを使って実装されていましたが、MT5ではできません(#property script_show_inputs はありますが、何も表示されません)。この問題に遭遇された方がいらっしゃいましたら、どのようにすればよいかアドバイスをお願いします。