Жадь конечно что нет функции депо и прибыли просто у меня
double pro= AccountInfoDouble ( ACCOUNT_BALANCE )/ 10000 .;
дает 1 . #INF.
Сервисдеск уже написал...
int hF; //+------------------------------------------------------------------+ //| Expert initialization function | //+------------------------------------------------------------------+ int OnInit() { //--------------Set default vaules for all new order requests mReq.action=TRADE_ACTION_DEAL; mReq.magic=777; mReq.symbol=Symbol(); // Trade symbol mReq.deviation=3; // Maximal possible deviation from the requested price mReq.type_filling=ORDER_FILLING_AON; // Order execution type mReq.type_time=ORDER_TIME_GTC; // Order execution time mReq.comment="MAMASKHA_"+IntegerToString(PeriodSeconds()/60,2); //----------------------- Set Volume pi Print ("----- Start init ---");
oldTT=TimeCurrent()+51;TimeToStruct(oldTT,oldT); oldTT-=oldT.hour; oldTT-=oldT.min; printf("%02d.%02d.%4d %2d:%2d %3d",oldT.day,oldT.mon, oldT.year,oldT.hour,oldT.min, SymbolInfoInteger(Symbol(),SYMBOL_TRADE_STOPS_LEVEL)); StringConcatenate(FName,mReq.comment,"_",oldT.year,"x",oldT.mon,"x", oldT.day,"_",oldT.hour,"_",oldT.min,".csv"); if (File) {hF=FileOpen(FName, FILE_WRITE|FILE_CSV|FILE_COMMON); if (hF<-1) Print ("Ошибка открытия файла ",FName," ", GetLastError()); if (File) FileWrite(hF,oldT.day,oldT.mon, oldT.year,oldT.hour,oldT.min,"I" ); Print ("Start on ",FName); } Print ("Start ",mReq.comment); return(0); } //+------------------------------------------------------------------+ //| Expert deinitialization function | //+------------------------------------------------------------------+ void OnDeinit(const int reason) { if (File) FileClose(hF); } //+------------------------------------------------------------------+ //| Expert tick function | //+------------------------------------------------------------------+ void OnTick() {
bool poz=true;
int i,per=PeriodSeconds();
MqlTick tick; //------------------ if(!SymbolInfoTick(Symbol(),tick)) { Print("Failed to get Symbol info!",per); return; }
물론 디포 기능이 없고 수익만 있는게 아쉽네요
1.#INF를 제공합니다.
서비스 데스크가 쓴...
그리고 점 뒤의 0은 이렇게 쓰는 것이 운명이 아닙니다.
예, 모두 동일한 1.#INF를 작성합니다.
10. 10.0 차이가 없는듯
예, 모두 동일한 1.#INF를 작성합니다.
10. 10.0 차이가 없는듯
방금 표현을 확인했습니다
오류 없음, 모든 것이 잘 작동합니다.
방금 표현을 확인했습니다
오류 없음, 모든 것이 잘 작동합니다.
물론 모든 것이 잘되고 모든 것이 잘 될 것입니다!
두 개의 라이브러리를 사용합니다.... 전체 상황을 설명하지는 않겠습니다.
물론 모든 것이 잘되고 모든 것이 잘 될 것입니다!
두 개의 라이브러리를 사용합니다.... 전체 상황을 설명하지는 않겠습니다.
그럼 왜 오류가 나는지 물어보세요. 예를 들어 말씀하신 표현에는 오류가 없고, 오류는 다른 것이 있다는 뜻입니다.
나는 묻지 않았다.)
당신은 당신의 게시물을 어떻게 이해합니까?
당신은 당신의 게시물을 어떻게 이해합니까?
질문을 어디에서 보았습니까? (이제 질문))))
나는 하나의 전략을 테스트하기로 결정했다. 그런데 테스터의 전문가가 어쩐지 이상하게 행동하기 시작했다.
오랫동안 생각합니다. 알고리즘은 거의 스캘퍼이지만. ;)
그래서 확인하기로 했고 어떤 데이터가 입력으로 수신되나요?
소박한 전문가 고문 출시 -
input bool File=true;
MqlTradeRequest mReq;
MqlTradeResult mRez;
int handle1,handle2;
double iBuffer1[],iBu1[];
double iBuffer2[],iBu2[];
double vol[22],OTS;
MqlDateTime newT,oldT;
datetime newTT,oldTT;
string FName;
int hF;//+------------------------------------------------------------------+
//| Expert initialization function |
//+------------------------------------------------------------------+
int OnInit()
{
//--------------Set default vaules for all new order requests
mReq.action=TRADE_ACTION_DEAL;
mReq.magic=777;
mReq.symbol=Symbol(); // Trade symbol
mReq.deviation=3; // Maximal possible deviation from the requested price
mReq.type_filling=ORDER_FILLING_AON; // Order execution type
mReq.type_time=ORDER_TIME_GTC; // Order execution time
mReq.comment="MAMASKHA_"+IntegerToString(PeriodSeconds()/60,2);
//----------------------- Set Volume pi
Print ("----- Start init ---");
oldTT=TimeCurrent()+51;TimeToStruct(oldTT,oldT);
oldTT-=oldT.hour; oldTT-=oldT.min;
printf("%02d.%02d.%4d %2d:%2d %3d",oldT.day,oldT.mon,
oldT.year,oldT.hour,oldT.min,
SymbolInfoInteger(Symbol(),SYMBOL_TRADE_STOPS_LEVEL));
StringConcatenate(FName,mReq.comment,"_",oldT.year,"x",oldT.mon,"x",
oldT.day,"_",oldT.hour,"_",oldT.min,".csv");
if (File) {hF=FileOpen(FName, FILE_WRITE|FILE_CSV|FILE_COMMON);
if (hF<-1) Print ("Ошибка открытия файла ",FName," ",
GetLastError());
if (File) FileWrite(hF,oldT.day,oldT.mon,
oldT.year,oldT.hour,oldT.min,"I"
);
Print ("Start on ",FName);
}
Print ("Start ",mReq.comment);
return(0);
}
//+------------------------------------------------------------------+
//| Expert deinitialization function |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
{
if (File) FileClose(hF);
}
//+------------------------------------------------------------------+
//| Expert tick function |
//+------------------------------------------------------------------+
void OnTick()
{
bool poz=true;
int i,per=PeriodSeconds();
MqlTick tick;//------------------
if(!SymbolInfoTick(Symbol(),tick))
{
Print("Failed to get Symbol info!",per);
return;
}
newTT=tick.time;
if(newTT<=oldTT+per+1)
{if (diskret)return;}
else
{
MqlRates rates[];
int copied=CopyRates(Symbol(),0,0,1,rates);
if(copied<=0)
Print("Ошибка копирования ценовых данных ",GetLastError());
else oldTT=rates[0].time;
TimeToStruct(oldTT,oldT);
printf("%02d.%02d.%4d %2d:%2d",oldT.day,oldT.mon,
oldT.year,oldT.hour,oldT.min);
TimeToStruct(newTT,newT);
printf(" New %02d.%02d.%4d %2d:%2d",newT.day,newT.mon,
newT.year,newT.hour,newT.min);
if (File) FileWrite(hF,oldT.day,oldT.mon,
oldT.year,oldT.hour,oldT.min,"I",
tick.ask,tick.bid,tick.last,tick.volume);
}
return;
}
이상한 로그를 얻었습니다. 데이터 기간의 차이에 대한 이유를 누가 알려줄까요?
그리고 한 가지 더 - 생성해야 할 파일(xp2sp)이 디렉토리에 없습니다.
나를 깨우쳐 줘. 그렇지 않으면 오랫동안 MT5를 들여다 보지 않았고 지금은 완전히 길을 잃었습니다 ...
:(