Прежде чем ценовые данные будут доступны в терминале MetaTrader 5, их необходимо получить и обработать. Для получения данных требуется подключение к торговому серверу MetaTrader 5. Данные поступают с сервера по запросу терминала в виде экономно упакованных блоков минутных баров. Механизм обращения к серверу за данными не зависит от того, каким...
Идея автоматической торговли привлекательна тем, что торговый робот может без устали работать 24 часа в сутки и семь дней в неделю. Робот не знает усталости, сомнений и страха, ему не ведомы психологические проблемы. Достаточно четко формализовать торговые правила и реализовать их в виде алгоритмов, и робот готов неустанно трудиться. Но прежде...
インジケーターハンドルは どこで、どのタイミングで削除 するのですか?
不要になり次第そしてOnDeinitの前。
不要になったらすぐに。そしてOnDeinitの前。
それこそ、不要になったらすぐに削除しています。OnDeinitが機能しない場合、プログラムに削除されることを伝えるにはどうしたらよいですか?
それこそ、不要になったらすぐに削除しています。OnDeinitが機能しない場合、プログラムはどのようにして削除されたことを知ることができるのでしょうか?
実際のタスクを教えてください。
本当の問題は、私に教えてほしいのです。
本当の問題は、自分のハンドルネームは必要ないので、取得しないようにするだけで、簡単に解決しました。
自分のハンドルネームが必要だとしたら...と考えているところです。
そんな問題もあったのですが、記憶にありません。
ただ、もし自分のハンドルネームが必要だとしたら...。
そんな仕事もあったのですが、覚えていません。
Init_Syncにはそのようなニーズがあります。
ポスト25786
ランダム化手法により、mqlの文字列、const wchar_t*型の文字列に普通にコピーすることを定義しています。
memcpy関数にこのパラメータを指定すると、mqlは文字列を漏れなく受信するようになった。
つまり、2バイトのsizeof(wchar_t)の代わりに、3バイトを使用していたのです。
しかし、興味深いことに、自称リテラル文字列はsizeof(wchar_t)で正しく渡される。mql の文字列が正しく const wchar_t * 文字列へのポインタを取るようになった。
大丈夫でしょうか?
適当に、mqlの文字列への通常のコピーを、const wchar_t* 型の文字列と定義しました。
memcpy関数にこのようなパラメータをつけると、mqlは文字列でも、漏れなく受信 するようになりました。
つまり、2バイトのsizeof(wchar_t)の代わりに、3バイトを使用していたのです。
しかし、面白いことに、自分で書いたリテラル文字列はsizeof(wchar_t)で正しく渡されるのです。mqlの文字列が正しくconst wchar_t* stringへのポインタを取るようになりました
正常でしょうか?
なぜ、通常のwcscpyの代わりにmemcpyが 使われるのですか?
なぜ、通常のwcscpyの代わりにmemcpyを使うのですか?
memcpyはRenateの 例文にあるように使用されました。
他のコピー機能を使っても同じ問題が発生します。
これらの関数による動作は、この投稿と、この
可能な限りのコピー機能を試した。
void OnInit()
{
datetime first_date;
SeriesInfoInteger(_Symbol,_Period,SERIES_FIRSTDATE,first_date);
int bars=Bars(_Symbol,_Period);
Print("First date ",first_date," - ",bars," bars");
datetime time[];
CopyTime(_Symbol,PERIOD_M15,D'2015.01.01',100000,time);
Print("rows=",100000," =? ",ArraySize(time));
Print("Load data from ",D'2015.01.01'," =? ",time[0]," to ",time[ArraySize(time)-1],", rows=",100000," =? ",ArraySize(time));
//---
}
void OnTick(){
}
は約37,000バーを読み取ります。ターミナルで実行すると、100000本のバーをすべて読み取ります。
サーバーからページングコードを追加してみた https://www.mql5.com/ru/docs/series/timeseries_access#synchronized
しかし、何も変わりません。
この100000本のバーをテスターで読み取るにはどうしたらいいのでしょうか?
この10万本の棒はどのように計算するのですか?
まずは記事を読むことから始めましょうhttps://www.mql5.com/ru/articles/239