'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 가능한 한 짧고 문제를 명확하게 보여주는 예를 만드십시오. 이상적으로는 모든 처리가 하나의 파일에서 이루어집니다. zimbabve15 2016.02.08 14:37 #33 zimbabve15 2016.02.08 14:42 #34 디버거에서 값을 봅니다. SymbolInfoTick (Symbol(),last_tick)을 통해 받은 last_tick, CopyTicks(_Symbol,tick_array,COPY_TICKS_ALL,0,1)를 통한 tick_array; 모든 것이 실시간이고 틱은 동일하며 차이점은 플래그에 있습니다. 이러한 방식으로 볼륨의 차이를 포착하는 것은 불가능했으며 플래그의 차이만큼 일반적이지 않습니다. 적어도 그들을 정의합시다. Vladimir Karputov 2016.02.08 14:45 #35 zimbabve15 : 디버거에서 값을 봅니다. SymbolInfoTick(Symbol(),last_tick)을 통해 받은 last_tick, CopyTicks(_Symbol,tick_array,COPY_TICKS_ALL,0,1)를 통한 tick_array; 모든 것이 실시간이고 틱은 동일하며 차이점은 플래그에 있습니다. 이러한 방식으로 볼륨의 차이를 포착하는 것은 불가능했으며 플래그의 차이만큼 일반적이지 않습니다. 적어도 그들을 정의합시다. 결정하려면 파일이 필요합니다. 예. zimbabve15 2016.02.08 15:05 #36 ED-3.16.txt - CopyTicks를 통한 브로커 열기 두 번째 파일은 SymbolInfoTick (Symbol(),last_tick)을 통해 동일한 브로커, 파일: ED-3.16.txt 707 kb zimbabve15 2016.02.08 15:06 #37 두 번째 파일은 SymbolInfoTick (Symbol(),last_tick) 을 통한 동일한 브로커 이며, 파일: ED-3.16fullTicks.txt 680 kb Vladimir Karputov 2016.02.08 15:14 #38 *.txt 파일을 MetaEditor로 어떻게 구동할 수 있습니까? 문제가 있는 경우 가장 간단한 예를 하나의 파일로 만드십시오. [삭제] 2016.02.08 15:33 #39 Karputov Vladimir : *.txt 파일을 MetaEditor로 어떻게 구동할 수 있습니까? 문제가 있는 경우 가장 간단한 예를 하나의 파일로 만드십시오. 예, 전혀 문제가 되지 않습니다. 확장자를 변경하면 MetaEditor가 이를 먹습니다. 이 로그를 생성한 프로그램의 소스 코드 파일을 요청하는 것이 좋습니다. Vladimir Karputov 2016.02.08 15:40 #40 Alexey Kozitsyn : 예, 전혀 문제가 되지 않습니다. 확장자를 변경하면 MetaEditor가 이를 먹습니다. 이 로그를 생성한 프로그램의 소스 코드 파일을 요청하는 것이 좋습니다. 그래서 저는 이미 두 페이지를 요청하고 있습니다. 가능한 한 가장 짧은 예제를 제공하십시오("예제"가 *.mq5 파일인 경우를 대비하여 지정합니다. 한 조각, 즉 한 개 ) 문제. 1234567891011...47 새 코멘트 트레이딩 기회를 놓치고 있어요: 무료 트레이딩 앱 복사용 8,000 이상의 시그널 금융 시장 개척을 위한 경제 뉴스 등록 로그인 공백없는 라틴 문자 비밀번호가 이 이메일로 전송될 것입니다 오류 발생됨 Google으로 로그인 웹사이트 정책 및 이용약관에 동의합니다. 계정이 없으시면, 가입하십시오 MQL5.com 웹사이트에 로그인을 하기 위해 쿠키를 허용하십시오. 브라우저에서 필요한 설정을 활성화하시지 않으면, 로그인할 수 없습니다. 사용자명/비밀번호를 잊으셨습니까? Google으로 로그인
디버거에서 값을 봅니다.
SymbolInfoTick (Symbol(),last_tick)을 통해 받은 last_tick,
CopyTicks(_Symbol,tick_array,COPY_TICKS_ALL,0,1)를 통한 tick_array;
모든 것이 실시간이고 틱은 동일하며 차이점은 플래그에 있습니다. 이러한 방식으로 볼륨의 차이를 포착하는 것은 불가능했으며 플래그의 차이만큼 일반적이지 않습니다.
적어도 그들을 정의합시다.
디버거에서 값을 봅니다.
SymbolInfoTick(Symbol(),last_tick)을 통해 받은 last_tick,
CopyTicks(_Symbol,tick_array,COPY_TICKS_ALL,0,1)를 통한 tick_array;
모든 것이 실시간이고 틱은 동일하며 차이점은 플래그에 있습니다. 이러한 방식으로 볼륨의 차이를 포착하는 것은 불가능했으며 플래그의 차이만큼 일반적이지 않습니다.
적어도 그들을 정의합시다.
ED-3.16.txt - CopyTicks를 통한 브로커 열기
두 번째 파일은 SymbolInfoTick (Symbol(),last_tick)을 통해 동일한 브로커,
*.txt 파일을 MetaEditor로 어떻게 구동할 수 있습니까? 문제가 있는 경우 가장 간단한 예를 하나의 파일로 만드십시오.
예, 전혀 문제가 되지 않습니다. 확장자를 변경하면 MetaEditor가 이를 먹습니다. 이 로그를 생성한 프로그램의 소스 코드 파일을 요청하는 것이 좋습니다.