1. Тики (а также буки, текущие цены из маркет вотча) обновляются/собираются независимо от работы индикаторов/экспертов. Также независимо от экспертов строятся бары.
2. А вот расчет индикаторов происходит в потоке построения баров. То есть после каждого применения тика к бару - вызывается расчет индикатора! При этом ни один тик не пропускается.
3. Отсюда получается, что вызывая из индикатора CopyTicks вы можете получать более свежие тиковые данные (а также буки, значения из маркет вотча), чем те, что уже применены к барам.
Это нужно учитывать в расчетах: либо вы анализируете тики, либо бары, либо если нужно и то и другое, то кому то нужно отдать приоритет (для случая последнего бара).
4. Особенно это начинается сильно проявляется если расчет индикатора делается долго.
2. А вот расчет индикаторов происходит в потоке построения баров. То есть после каждого применения тика к бару - вызывается расчет индикатора! При этом ни один тик не пропускается.
2017.01.2610:00:00.000 Time_sync_forts (URKA-3.17,H1) Local time sync is done. Symbol = RTS-3.17 Sync hour = 10 Sync min = 0 Sync sec = 0 Sync ms = 0 2017.01.2614:05:00.005 Time_sync_forts (URKA-3.17,H1) Local time sync is done. Symbol = RTS-3.17 Sync hour = 14 Sync min = 5 Sync sec = 0 Sync ms = 5
BCSのみんな、本物のアカウントを持って いる。
実際のアカウントでコードを実行し、その結果をここに投稿してください。
#property link "https://www.mql5.com"
#property version "1.00"
//+------------------------------------------------------------------+
//| Expert initialization function |
//+------------------------------------------------------------------+
int OnInit()
{
MqlTick post_ticks[];
string symbol = "Si-3.17";
ulong from = ulong(D'2017.01.20 23:49:00') * 1000;
int result=CopyTicks(symbol, post_ticks, COPY_TICKS_ALL, from, 2000);
if(result > 0)
{
string str="";
int f_handle=FileOpen("Si-3.17_ticks.txt",FILE_WRITE|FILE_ANSI|FILE_TXT);
if (f_handle != INVALID_HANDLE)
{
FileWrite(f_handle, "Symbol\tTime\tLast\tFlags");
for(int i = 0; i< result;i++)
{
if(post_ticks[i].flags == 88)
{
str=symbol + "\t" + string(post_ticks[i].time) + "." +
string(post_ticks[i].time_msc%1000) + "\t" + string(post_ticks[i].last) +
"\tПродажа";
}
else
if(post_ticks[i].flags == 56)
{
str=symbol + "\t" + string(post_ticks[i].time) + "." +
string(post_ticks[i].time_msc%1000) + "\t" + string(post_ticks[i].last) +
"\tПокупка";
}
else
{
str=symbol + "\t" + string(post_ticks[i].time) + "." +
string(post_ticks[i].time_msc%1000) + "\t" + string(post_ticks[i].last) +
"\t" + string(post_ticks[i].flags);
}
FileWrite(f_handle, str);
}
FileClose(f_handle);
}
}
//---
return(INIT_SUCCEEDED);
}
そんなに早く解決することはないでしょう :(
追加
なぜこうなるのか、理由がわかった気がします
取引所からのディールとクォート(注文)が異なる流れでやってくることです。
と、サーバー上ではそれぞれ別の機能で処理されます。ディールを担当するもの
が正しく動作し、履歴に保存されます。
(496,357回の取引で一度も飛ばしていないことからもわかるように)、その責任者は
受注生産はあまりよくないですね...。
以下は、BODとのやり取りの抜粋です。
1. Тики (а также буки, текущие цены из маркет вотча) обновляются/собираются независимо от работы индикаторов/экспертов. Также независимо от экспертов строятся бары.
2. А вот расчет индикаторов происходит в потоке построения баров. То есть после каждого применения тика к бару - вызывается расчет индикатора! При этом ни один тик не пропускается.
3. Отсюда получается, что вызывая из индикатора CopyTicks вы можете получать более свежие тиковые данные (а также буки, значения из маркет вотча), чем те, что уже применены к барам.
Это нужно учитывать в расчетах: либо вы анализируете тики, либо бары, либо если нужно и то и другое, то кому то нужно отдать приоритет (для случая последнего бара).
4. Особенно это начинается сильно проявляется если расчет индикатора делается долго.
参考までに、SRとのやりとりの抜粋をここに記しておく。
最初のトランザクションで同期が行われる(現時点では、明確化されるまで保留される)
10:00と14:05の両方で正確に動作しました。
2017.01.26 14:05:00.005 Time_sync_forts (URKA-3.17,H1) Local time sync is done. Symbol = RTS-3.17 Sync hour = 14 Sync min = 5 Sync sec = 0 Sync ms = 5
追加
3ヶ月間、すべてが自動的に行われるようにBRを削除しようと思います :)
新ビルド1525の項目11の発表より
でも、SDは全然書いてないんですよ。
先ほどは「穴」があったのですか?
新ビルド1525の項目11の発表より
でも、SDは全然書いてないんですよ。
先ほどは「穴」があったのですか?
さっき......確かにそうでした。TRADEティックという点では......確かに。ビルド1495では、より良くなっています。
約50万件の取引に漏れは見つかりませんでした。
どうやらINFO(命令)以外は直していないようだ...。
でも、やっぱりプログレッシブがあるのはいいことです。
追加
この重要な問題に対して、フォーラム参加者(FORTS)が弱いのは残念なことです。
BCSからは誰もテストを投稿していない。
データが多ければ多いほど、早く修正することができるのです。
約50万件の取引に漏れは見つかりませんでした。
どうやらINFO(命令)以外は直していないようだ...。
でも、やっぱりプログレックスがあるのはいいことです。
約50万件の取引に漏れは見つかりませんでした。
どうやらINFO(命令)以外は直していないようだ...。
でも、やっぱりプログレッシブがあるのはいいことです。
追加
この重要な問題に対して、フォーラム参加者(FORTS)が弱いのは残念なことです。
BCSからは誰もテストを投稿していない。
データが多ければ多いほど、早く修正することができるのです。