if(!trend)
{
(if ((Close[i] - Open[i]) >= i_sizeOfSequentialCorrectionBar * pt) // Если бар соответствует требуемым признакам..
cnt++; // .. прибавим 1 к счётчикуif (Close[i] < Open[i]) // Если бар, не соответствует основному признаку..
cnt = 0;
}
else
{
...
}
#property show_inputs#import "SharedMemoryMT4.dll"int MemoryOpen(int nArea, string sPrefixArea, int nIndex, string sName);
int MemoryReadInt(int nArea, string sPrefixArea, int nIndex, string sName, int nStartByte);
#importexternint x;//сколько секунд назад с данного момента прикрепления смотрим значения TOLHCVint init()
{
MemoryOpen(1, "", -1, "ind");
return(0);
}
int start()
{
//MemoryReadInt(1, "", -1, "ind", i) это ind[i], GlobalVariableGet("final") это последний элемент в массиве, а ф-ла выглядит так: n=ind[final]-ind[final-x]+1int n=MemoryReadInt(1, "", -1, "ind", GlobalVariableGet("final"))-MemoryReadInt(1, "", -1, "ind", GlobalVariableGet("final")-x)+1;
Alert(TimeToStr(TimeCurrent(),TIME_SECONDS), ": Time=", TimeToStr(Time[n], TIME_SECONDS), ", Open=", Open[n], ", High=", High[n], ", Low=", Low[n], ", Close=", Close[n], ", Volume=", Volume[n]);
return(0);
}
秒の時間軸を走らせる。初期化時に、ウィンドウが表示されます
Ошибка в методе "Utils::Memory::Mapping::Create()".
В файловом отображении ""
не выделена память при отсутствии дескриптора пользовательского файла.
ログには58.572回の記録があります
10:45:42 SandyEw7-2.4 EURUSD,M1: function 'MemoryWriteInt' call from dll 'SharedMemoryMT4.dll' critical error c0000005 at 02CA05A3.
...
10:48:43 SandyEw7-2.4 EURUSD,M1: function 'MemoryWriteInt' call from dll 'SharedMemoryMT4.dll' critical error c0000005 at 02CA05A3.
というウィンドウが表示され、初期化時に
В методе "MT4::Memory::SearchIndexOrHandle()" не установлен параметр для поиска в области памяти терминала.
プログラミングの達人こんにちは
左上 隅に背景色で塗りつぶされた長方形を、チャートの上とエキスパートが表示するテキストの下に(美観のために)小さくインデントして描く方法を教えていただけませんか?
ありがとうございました。
同じだ...それも、シチュエーションが違うだけで表現するために。
そうでしょう?
アルテムさん、コードを書くのは 気にしないでくださいね。それとも手に持っているものを渡せば、この惨めな状況を終わらせることができる......。
テスターの操作についての質問:テストに 合格した後、パラメータ(日付、通貨ペア、タイムフレーム)を変更してテストを再実行すると、実行されますが、終了しても「チャート」や「レポート」などのタブの情報は全く変化せず、全て前回のテストのまま です。保存されたレポートも古いものであることが判明。その理由と解決方法を教えてください。もしかして、結果をリセットする機能があるのでは?
マニュアルや記事を読んだり、フォーラムを検索しても、そのような問題についての言及はありませんでしたが...。
最適化 "にチェックが入っているのでしょうか?
このようなことはないはずです。もしかしたら、「最適化」にチェックを入れているのかもしれません。
ああ、そのようですね。新しいテストを実行するとき、最適化がオンになっていることに気づかず、重要ではないと思っていました。ちょっと不思議なインターフェイスの解決法...
でも、今は動いています!ありがとうございました。
ロジックを深く掘り下げたわけではありませんが、何か、無駄な計算があるような気がしています。1年半前、私は同じ問題を、引用符の収集と、天文分始の明確なカットによるM1ローソクの形成で解決していた。もし興味があれば、あなたのコード(ファイル)の純粋な最適化のいくつかの瞬間を見てみることができるかもしれません。本当に、本気で最適化を語るなら、コードのランタイムを計測する必要があります。;)
今は、まったくゼロから別の方法に挑戦しています。
マッピングについてVadimに質問です。それで...ゼロからのスタート。オリジナルのティッキングTFを採用しています。
原理的には、BidaskをキャッチしてRateInfoを形成するが、VolumeにTimeを付けてTimeをシミュレートするという単純なロジックである。ここで、Timeのシミュレーションの仕方にこだわらず、シミュレーションを完全に削除して、標準のTOLHCVで行い、その前に「最後にstart()を呼び出してから0秒以上経過していたら」と書いています。同じ条件の別の枝で少なくなっていた場合は、High-Lowを編集してVolumeをインクリメントします。つまり、"ギャップあり "の秒TFを得ることができるのです。
また、強気・弱気の採点は完全に外しておきました。賭けに出る価値はあるか?このバリアントとオーナーからの初期値に縮小してGetTickCount() を 置き、一つのチャートで同時に実行し、ログを見てみましょう。
予想通りダニ - オリジナル、隙間のある秒 - モディファイ。ここで、time=TimeCurrent()の前に補助配列を形成する。
秒tfのコードにあります。secondtfにホバーリングするEAでは、x秒前のTOLHCVの値は、ind[GlobalVariableGet("final")]-ind[GlobalVariableGet("final")-x]+1として得られる(もちろんこの配列を何らかの形で渡すとする)。そこで、マッピングを使ってみよう。
秒にカーソルを合わせて、x秒前のTOLHCVの 値(ローソク足ではありません)を読み取るテストスクリプトを書きます。
秒の時間軸を走らせる。初期化時に、ウィンドウが表示されます
ログには58.572回の記録があります
というウィンドウが表示され、初期化時に
В методе "MT4::Memory::SearchIndexOrHandle()" не установлен параметр для поиска в области памяти терминала.
まあdeinitializatsiiそれを後で、私はスクリプトを置く - 一度だけ警告。MemoryCreate と MemoryCloseHandle をオーバーライドしても、何も表示されず(スクリプトはアラートを維持)、ログは
- ということで、終了です。つまり、論理的に言えば、呼び出しの順番を間違えているか、宣言の 仕方を間違えているのです。私のOSはWinXPです。ヴァディム、せめて方向だけでも教えてくれ。