CopyTicks」のテスト - ページ 3

 

テストではなく、開発者に注意喚起しているのです。実践してみると、決して余分なものではないことがわかります))。

トレードの方向性については、フォートでは常に取引所から指示されます。

現在、端末で使われているアルゴリズムはこれに適していません。取引所から情報を取得する必要があります。

 
Dmitriy Skub:

テストではなく、開発者に注意喚起しているのです。実践してみると、決して余分なものではないことがわかります))。

ディール演出について- 砦では必ず交換所から指示されます。

現在、端末で使われているアルゴリズムはこれに適しておらず、必ず取引所から情報を取得しなければなりません。

コピーチック(とmqltickinfo)については、「waiting」で終わるトピックがいくつかあるだけです。

例えばこんな感じです。

https://www.mql5.com/ru/forum/61607


だから本当に「待っている」。:-)

CopyTicks на медленном рынке
CopyTicks на медленном рынке
  • www.mql5.com
На нём видно, что после получения первых 10 тиков после запуска терминала, CopyTicks перестаёт работать:. - - Категория: автоматические торговые системы
 
1210ビルドのCopyTicks()は今どうなっているのでしょうか?
 
Михаил:
そして今、1210ビルドでは、CopyTicks()はどうなっているのでしょうか?
Everything is fine:Tick story
 
Михаил:
そして、1210ビルドでは、CopyTicks()でどうでしょうか?

ほとんど動作します。重複はありません。ボリュームは失われない。

しかし、フラッグのトレードの方向が抜けている。Bid/Askの計算では、適切な忠実度が得られない。

実際の構成は古く、ヘルプに記載されている内容とは異なります。だから、中級者向けのビルドだと理解しています。ということで、いつも通り、次回作をお待ちしております))

 
Dmitriy Skub:

ほぼ成功です。重複はありません。ボリュームの欠落はない。

しかし、フラッグのトレードの方向が抜けている。Bid/Askの計算では、適切な忠実度が得られない。

実際の構造は古く、ヘルプに記載されているものとは異なります。だから、中級者向けのビルドだと理解しています。ということで、いつも通り、次回作をお待ちしております))

感謝
 

トレーディング、自動売買システム、トレーディング戦略のテストに関するフォーラム

MqlTick

ジンバブエ15 さん 2016.02.03 06:15

ブローカー「オープニング」ツール ED-3.16 左テーブル - ティックデータは、SymbolInfoTickリクエストを介してOnCalculateプロシージャでインジケータによって書き込まれ、右テーブル - CopyTicksを介しています。両者の構造:時間、bid、ask、flipper、volume、time_msec、flag。

同じティックでもボリュームやフラグが異なるのはなぜですか?

ブローカーからSymbolInfoTickを通してフラグゼロの生データを受け取ると、端末は受信したティックを処理し、前のティックとの比較に基づいてフラグを割り当てるようですね?ボリュームをどうするか?その差は大きい。


トレーディング、自動売買システム、ストラテジーテストに関するフォーラム

MqlTick

ジンバブエ15 さん 2016.02.03 06:39

FiboFroupブローカーは、左側のティックテーブルをSymbolInfoTickで、右側のテーブルをCopyTicksで 表示します。両者の構成:時刻、買値、売値、行使値、出来高、time_msec、フラグ。

フラグが違うのは、同じティックでのbid/askの値が、異なる書き方をしているからです。


 
zimbabve15:


コードもないのに「シート」を掲載するのは流行りなのでしょうか?
 

コピーチケット

MqlTick tick_array[]。

int OnInit()
{
int copied=CopyTicks(_Symbol,tick_array,COPY_TICKS_ALL,0,countHistoryTicks);
if(Save_File!=NOT_SAVE)とする。
{
SaveTicksToFile(tick_array)。
}
return(INIT_SUCCEED);

}


void SaveTicksToFile(MqlTick &massiveTicks[])

{

文字列ファイル名,file_buffer;

StringConcatenate(filename,Symbol(),".txt");

int file_handle=FileOpen(filename,FILE_READ|FILE_WRITE|FILE_ANSI|FILE_SHARE_READ);

FileSeek(file_handle,0,SEEK_END)。

int sizeMassiveTicks=ArraySize(massiveTicks)とする。

int i=0;

while(i<sizeMassiveTicks)

{

StringConcatenate(file_buffer,TimeToString(massiveTicks[i].time,TIME_DATE|TIME_SECONDS)," ",DoubleToString(massiveTicks[i].bid,_Digits)," ",DoubleToString(massiveTicks[i].bid)," ",_Digits".ask,_Digits)," ",DoubleToString(massiveTicks[i].last,_Digits)," ",IntegerToString(massiveTicks[i].volume,_Digits)," ",IntegerToString(massiveTicks[i].time_msc)," ",IntegerToString(massiveTicks[i].flags,_Digits));

FileWrite(file_handle,file_buffer)。

i++;

}

FileClose(file_handle)。

}

シンボルインフォティック

int OnCalculate(const int rates_total,

const int prev_calculated,

const datetime &time[],

const double &open[],

const double &high[],

const double &low[],

const double &close[],

const long &tick_volume[],

const long &volume[],

const int &spread[])

{

MqlTick last_tick。

SymbolInfoTick(Symbol(),last_tick)。


TickStruct tick={0,0,0,0,0,0,0};

tick.time=TimeCurrent()。

tick.bid=last_tick.bidとする。

tick.ask=last_tick.ask。

tick.flag=last_tick.flags。

tick.last=last_tick.last。

tick.time_msc=last_tick.time_mscです。

tick.volume=last_tick.volume。

int total=ArraySize(g_ticks);

if(ArrayResize(g_ticks,total+1,1000)<0)とする。

{

Alert(": インジケータに次のティックデータを保存するための十分なメモリがありません;)

}

さもなくば

{

g_ticks[total]=tick;

UpTick[rates_total-1]=total;

}

if(total>999)

{

SaveTempTicks()。

ArrayFree(g_ticks)。

}

return(rates_total);

}

void SaveTempTicks()

{

//刻み目履歴 ファイルの作成

int hTicksFile=FileOpen(Symbol()+"fullTicks.tks",FILE_BIN|FILE_READ|FILE_WRITE|FILE_SHARE_READ|FILE_SHARE_WRITE);

if(hTicksFile<1)

を返します。

FileSeek(hTicksFile,0,SEEK_END)を実行。

// ファイルレコード

int total=ArraySize(g_ticks),i=0;

while(i<total)

{

if(FileWriteStruct(hTicksFile,g_ticks[i])==0)とする。

{

Print("一時ファイルへのデータ保存に失敗しました...");

を返します。

}

i++;

}

FileClose(hTicksFile)を実行します。

}

 
投稿を訂正してください(フォーラムに正しくコードを挿入 してください)。メッセージにコードだけでなく、ファイルそのもの(*.mq5)を添付していただけると幸いです。
理由: