CopyTicks」のテスト - ページ 4 1234567891011...47 新しいコメント zimbabve15 2016.02.08 13:23 #31 CopyTicks ////////////////////////////////////////////////////////////////////////////////////////////////////////// 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_SUCCEEDED); } void SaveTicksToFile(MqlTick &massiveTicks[]) { string filename,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].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); } SymbolInfoTick //////////////////////////////////////////////////////////////////////// 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(": индикатору не хватает памяти для сохранения данных об очередном тике."); } else { 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) return; FileSeek(hTicksFile,0,SEEK_END); // Запись файла int total=ArraySize(g_ticks),i=0; while(i<total) { if(FileWriteStruct(hTicksFile,g_ticks[i])==0) { Print("Ошибка сохранения данных во временный файл..."); return; } i++; } FileClose(hTicksFile); } ファイル: My_TicksCollector_010216_FullMqlTick.mq5 5 kb BearAndBullsPower_TesterHistory_020216.mq5 9 kb Vladimir Karputov 2016.02.08 13:32 #32 問題を明確に示す、できるだけ短い例を作成する。理想は、すべての処理を1つのファイルにまとめることです。 zimbabve15 2016.02.08 14:37 #33 zimbabve15 2016.02.08 14:42 #34 デバッガでは値を見る。 SymbolInfoTick(Symbol(),last_tick)で取得したlast_tickです。tick_array を CopyTicks(_Symbol,tick_array,COPY_TICKS_ALL,0,1) 経由で取得します。すべてリアルタイムで、ティックは同じ、フラッグは違う。このようにボリュームの違いを捉えることが出来ていません、フラッグの違いほど頻繁ではありませんね。 せめて定義だけでも。 Vladimir Karputov 2016.02.08 14:45 #35 zimbabve15:デバッガでは値を見る。 SymbolInfoTick(Symbol(),last_tick)で取得したlast_tickです。tick_array を CopyTicks(_Symbol,tick_array,COPY_TICKS_ALL,0,1) 経由で取得します。すべてリアルタイムで、ティックは同じ、フラッグは違う。このようにボリュームの違いを捉えることが出来ていません、フラッグの違いほど頻繁ではありませんね。 せめて定義だけでもしておこう。 それを定義するために、サンプルファイルが必要です。 zimbabve15 2016.02.08 15:05 #36 ED-3.16.txt - CopyTicks によるブローカー・オープニング2ファイル目 同じブローカーからSymbolInfoTick(Symbol(),last_tick) を経由して取得。 ファイル: ED-3.16.txt 707 kb zimbabve15 2016.02.08 15:06 #37 同じブローカーからSymbolInfoTick(Symbol(),last_tick)で2ファイル 目。 ファイル: ED-3.16fullTicks.txt 680 kb Vladimir Karputov 2016.02.08 15:14 #38 MetaEditorに*.txtファイルを読み込むにはどうしたらいいのでしょうか?問題があれば、例をできるだけシンプルに、1つのファイルにする。 削除済み 2016.02.08 15:33 #39 Karputov Vladimir: MetaEditorに*.txtファイルを読み込むにはどうしたらいいのでしょうか?問題があれば、例をできるだけシンプルに、1つのファイルにする。 実際には、拡張子を変更すればMetaEditorが食べてくれますので問題ありません。このログが取得されたプログラムのソースコード・ファイルを要求した方がよいでしょう。 Vladimir Karputov 2016.02.08 15:40 #40 Alexey Kozitsyn: 問題ありません。拡張子を変更すれば、MetaEditorがそれを食い止めます。このログを生成したプログラムのソースコード・ファイルを要求した方がよいでしょう。 だから、私はすでに2つのページを要求しています:問題を示す最も短い例(私は念のため、「例」が1個の 数の*.mq5ファイルであることを明確にします- それはちょうど1 です)を与えること。 1234567891011...47 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
デバッガでは値を見る。
SymbolInfoTick(Symbol(),last_tick)で取得したlast_tickです。
tick_array を CopyTicks(_Symbol,tick_array,COPY_TICKS_ALL,0,1) 経由で取得します。
すべてリアルタイムで、ティックは同じ、フラッグは違う。このようにボリュームの違いを捉えることが出来ていません、フラッグの違いほど頻繁ではありませんね。
せめて定義だけでも。
デバッガでは値を見る。
SymbolInfoTick(Symbol(),last_tick)で取得したlast_tickです。
tick_array を CopyTicks(_Symbol,tick_array,COPY_TICKS_ALL,0,1) 経由で取得します。
すべてリアルタイムで、ティックは同じ、フラッグは違う。このようにボリュームの違いを捉えることが出来ていません、フラッグの違いほど頻繁ではありませんね。
せめて定義だけでもしておこう。
ED-3.16.txt - CopyTicks によるブローカー・オープニング
2ファイル目 同じブローカーからSymbolInfoTick(Symbol(),last_tick) を経由して取得。
MetaEditorに*.txtファイルを読み込むにはどうしたらいいのでしょうか?問題があれば、例をできるだけシンプルに、1つのファイルにする。
問題ありません。拡張子を変更すれば、MetaEditorがそれを食い止めます。このログを生成したプログラムのソースコード・ファイルを要求した方がよいでしょう。