//+------------------------------------------------------------------+ //| DT-Elwave.mq4 | //+------------------------------------------------------------------+ int exitBuy,entryBuy,exitSell,entrySell; double exBuy,enBuy,target_b,stop_b,exSell,enSell,target_s,stop_s; //------------------------------------------------------------------------------ //+------------------------------------------------------------------+ //| expert initialization function | //+------------------------------------------------------------------+ int init() { //---- ObjectsDeleteAll(); //------------------------- //------------------------- ObjectCreate("ENTRY_Sell1",OBJ_HLINE,0,0,0); ObjectSet("ENTRY_Sell1",OBJPROP_COLOR,Maroon); ObjectSet("ENTRY_Sell1",OBJPROP_WIDTH,2); ObjectCreate("EXIT_Sell1",OBJ_HLINE,0,0,0); ObjectSet("EXIT_Sell1",OBJPROP_COLOR,Maroon); ObjectSet("EXIT_Sell1",OBJPROP_STYLE,STYLE_DASHDOT); ObjectCreate("STOP_Sell1",OBJ_HLINE,0,0,0); ObjectSet("STOP_Sell1",OBJPROP_STYLE,STYLE_DASH); ObjectSet("STOP_Sell1",OBJPROP_COLOR,Maroon); ObjectCreate("TARGET_Sell1",OBJ_HLINE,0,0,0); ObjectSet("TARGET_Sell1",OBJPROP_COLOR,Maroon); ObjectSet("TARGET_Sell1",OBJPROP_STYLE,STYLE_DOT); //---------------- ObjectCreate("ENTRY_Buy1",OBJ_HLINE,0,0,0); ObjectSet("ENTRY_Buy1",OBJPROP_COLOR,BlueViolet); ObjectSet("ENTRY_Buy1",OBJPROP_WIDTH,2); ObjectCreate("EXIT_Buy1",OBJ_HLINE,0,0,0); ObjectSet("EXIT_Buy1",OBJPROP_STYLE,STYLE_DASHDOT); ObjectSet("EXIT_Buy1",OBJPROP_COLOR,BlueViolet); ObjectCreate("STOP_Buy1",OBJ_HLINE,0,0,0); ObjectSet("STOP_Buy1",OBJPROP_STYLE,STYLE_DASH); ObjectSet("STOP_Buy1",OBJPROP_COLOR,BlueViolet); ObjectCreate("TARGET_Buy1",OBJ_HLINE,0,0,0); ObjectSet("TARGET_Buy1",OBJPROP_STYLE,STYLE_DOT); ObjectSet("TARGET_Buy1",OBJPROP_COLOR,BlueViolet); //------------------- //------------------- ObjectCreate("ENTRY_Sell2",OBJ_HLINE,0,0,0); ObjectSet("ENTRY_Sell2",OBJPROP_COLOR,Red); ObjectSet("ENTRY_Sell2",OBJPROP_WIDTH,2); ObjectCreate("EXIT_Sell2",OBJ_HLINE,0,0,0); ObjectSet("EXIT_Sell2",OBJPROP_COLOR,Red); ObjectSet("EXIT_Sell2",OBJPROP_STYLE,STYLE_DASHDOT); ObjectCreate("STOP_Sell2",OBJ_HLINE,0,0,0); ObjectSet("STOP_Sell2",OBJPROP_STYLE,STYLE_DASH); ObjectSet("STOP_Sell2",OBJPROP_COLOR,Red); ObjectCreate("TARGET_Sell2",OBJ_HLINE,0,0,0); ObjectSet("TARGET_Sell2",OBJPROP_COLOR,Red); ObjectSet("TARGET_Sell2",OBJPROP_STYLE,STYLE_DOT); //---------------- ObjectCreate("ENTRY_Buy2",OBJ_HLINE,0,0,0); ObjectSet("ENTRY_Buy2",OBJPROP_COLOR,Blue); ObjectSet("ENTRY_Buy2",OBJPROP_WIDTH,2); ObjectCreate("EXIT_Buy2",OBJ_HLINE,0,0,0); ObjectSet("EXIT_Buy2",OBJPROP_STYLE,STYLE_DASHDOT); ObjectSet("EXIT_Buy2",OBJPROP_COLOR,Blue); ObjectCreate("STOP_Buy2",OBJ_HLINE,0,0,0); ObjectSet("STOP_Buy2",OBJPROP_STYLE,STYLE_DASH); ObjectSet("STOP_Buy2",OBJPROP_COLOR,Blue); ObjectCreate("TARGET_Buy2",OBJ_HLINE,0,0,0); ObjectSet("TARGET_Buy2",OBJPROP_STYLE,STYLE_DOT); ObjectSet("TARGET_Buy2",OBJPROP_COLOR,Blue); //------------------- //------------------- ObjectCreate("ENTRY_Sell3",OBJ_HLINE,0,0,0); ObjectSet("ENTRY_Sell3",OBJPROP_COLOR,Magenta); ObjectCreate("EXIT_Sell3",OBJ_HLINE,0,0,0); ObjectSet("EXIT_Sell3",OBJPROP_COLOR,Magenta); ObjectSet("EXIT_Sell3",OBJPROP_STYLE,STYLE_DASHDOT); ObjectCreate("STOP_Sell3",OBJ_HLINE,0,0,0); ObjectSet("STOP_Sell3",OBJPROP_STYLE,STYLE_DASH); ObjectSet("STOP_Sell3",OBJPROP_COLOR,Magenta); ObjectCreate("TARGET_Sell3",OBJ_HLINE,0,0,0); ObjectSet("TARGET_Sell3",OBJPROP_COLOR,Magenta); ObjectSet("TARGET_Sell3",OBJPROP_STYLE,STYLE_DOT); //--------------------- ObjectCreate("ENTRY_Buy3",OBJ_HLINE,0,0,0); ObjectSet("ENTRY_Buy3",OBJPROP_COLOR,Aqua); ObjectCreate("EXIT_Buy3",OBJ_HLINE,0,0,0); ObjectSet("EXIT_Buy3",OBJPROP_STYLE,STYLE_DASHDOT); ObjectSet("EXIT_Buy3",OBJPROP_COLOR,Aqua); ObjectCreate("STOP_Buy3",OBJ_HLINE,0,0,0); ObjectSet("STOP_Buy3",OBJPROP_STYLE,STYLE_DASH); ObjectSet("STOP_Buy3",OBJPROP_COLOR,Aqua); ObjectCreate("TARGET_Buy3",OBJ_HLINE,0,0,0); ObjectSet("TARGET_Buy3",OBJPROP_STYLE,STYLE_DOT); ObjectSet("TARGET_Buy3",OBJPROP_COLOR,Aqua); //------------------------- //---- return(0); } //+------------------------------------------------------------------+ //| expert deinitialization function | //+------------------------------------------------------------------+ int deinit() { //---- ObjectsDeleteAll(); //---- return(0); } //+------------------------------------------------------------------+ //| expert start function | //+------------------------------------------------------------------+ int start() { //---- //-------------------------------------------------------------------- //-------------------------------------------------------------------- int handle; string str; int pos; int exitBuy1, exitSell1, entryBuy1, entrySell1; int exitBuy2, exitSell2, entryBuy2, entrySell2; int exitBuy3, exitSell3, entryBuy3, entrySell3; double exBuy1,enBuy1,exSell1,enSell1,target1_s,stop1_s,target1_b,stop1_b; double exBuy2,enBuy2,exSell2,enSell2,target2_s,stop2_s,stop2_b,target2_b; double exBuy3,enBuy3,exSell3,enSell3,target3_s,stop3_s,target3_b,stop3_b; // double std=iStdDevOnArray( handle=FileOpen("123.txt",FILE_CSV|FILE_READ); if(handle<1) { Print("Файл не обнаружен, последняя ошибка ", GetLastError()); return(false); } if(handle>0) { for (int i=0; i<10000; i++) { if(FileIsEnding(handle)) break; FileSeek(handle, pos, SEEK_SET); str=FileReadString(handle); //------------------------------------------------ if (StringFind(str, "Micro", 0)>0) { shreach(str); exitBuy1=exitBuy1+exitBuy; exitSell1=exitSell1+exitSell; entryBuy1=entryBuy1+entryBuy; entrySell1=entrySell1+entrySell; exBuy1=exBuy1+exBuy; enBuy1=enBuy1+enBuy; exSell1=exSell1+exSell; enSell1=enSell1+enSell; target1_s=target1_s+target_s; stop1_s=stop1_s+stop_s; target1_b=target1_b+target_b; stop1_b=stop1_b+stop_b; } //------------------------------------------------ if (StringFind(str, "SubMicro", 0)>0) //Primary { shreach(str); exitBuy2=exitBuy2+exitBuy; exitSell2=exitSell2+exitSell; entryBuy2=entryBuy2+entryBuy; entrySell2=entrySell2+entrySell; exBuy2=exBuy2+exBuy; enBuy2=enBuy2+enBuy; exSell2=exSell2+exSell; enSell2=enSell2+enSell; target2_s=target2_s+target_s; stop2_s=stop2_s+stop_s; target2_b=target2_b+target_b; stop2_b=stop2_b+stop_b; } //------------------------------------------------ if (StringFind(str, "Lvl11", 0)>0) { shreach(str); exitBuy3=exitBuy3+exitBuy; exitSell3=exitSell3+exitSell; entryBuy3=entryBuy3+entryBuy; entrySell3=entrySell3+entrySell; exBuy3=exBuy3+exBuy; enBuy3=enBuy3+enBuy; exSell3=exSell3+exSell; enSell3=enSell3+enSell; target3_s=target3_s+target_s; stop3_s=stop3_s+stop_s; target3_b=target3_b+target_b; stop3_b=stop3_b+stop_b; } //-------------------------------------------------------------------- pos=FileTell(handle); } } //---------------------------------------------------------------------------------------------- //-------------------------------------------------------- //-------------------------------------------------------- if (entrySell1!=0 && entrySell1>entryBuy1) { target1_s=target1_s/entrySell1; stop1_s=stop1_s/entrySell1; enSell1=enSell1/entrySell1; if (exitSell1!=0) exSell1=exSell1/exitSell1; } //-------------------------------------------------------- if (entryBuy1!=0 && entryBuy1>entrySell1) { enBuy1=enBuy1/entryBuy1; target1_b=target1_b/entryBuy1; stop1_b=stop1_b/entryBuy1; if (exitBuy1!=0) exBuy1=exBuy1/exitBuy1; } //-------------------------------------------------------- //-------------------------------------------------------- if (entrySell2!=0 && entrySell2>entryBuy2) { target2_s=target2_s/entrySell2; stop2_s=stop2_s/entrySell2; enSell2=enSell2/entrySell2; if (exitSell2!=0) exSell2=exSell2/exitSell2; } //-------------------------------------------------------- if (entryBuy2!=0 && entryBuy2>entrySell2) { enBuy2=enBuy2/entryBuy2; target2_b=target2_b/entryBuy2; stop2_b=stop2_b/entryBuy2; if (exitBuy2!=0) exBuy2=exBuy2/exitBuy2; } //-------------------------------------------------------- //-------------------------------------------------------- if (entrySell3!=0 && entrySell3>entryBuy3) { target3_s=target3_s/entrySell3; enSell3=enSell3/entrySell3; stop3_s=stop3_s/entrySell3; if (exitSell3!=0) exSell3=exSell3/exitSell3; } //-------------------------------------------------------- if (entryBuy3!=0 && entryBuy3>entrySell3) { enBuy3=enBuy3/entryBuy3; target3_b=target3_b/entryBuy3; stop3_b=stop3_b/entryBuy3; if (exitBuy3!=0) exBuy3=exBuy3/exitBuy3; } //------------------------------------------------------------------------------- //------------------------------------------------------------------------------- Comment("Micro "," entrySell1 = ",entrySell1," exitSell1 = ",exitSell1,"\n", " "," entryBuy1 = ",entryBuy1," exitBuy1 = ",exitBuy1,"\n", "SubMicro "," entrySell2 = ",entrySell2," exitSell2 = ",exitSell2,"\n", " "," entryBuy2 = ",entryBuy2," exitBuy2 = ",exitBuy2,"\n", "Lvl11 "," entrySell3 = ",entrySell3," exitSell3 = ",exitSell3,"\n", " "," entryBuy3 = ",entryBuy3," exitBuy3 = ",exitBuy3); //-------------------------------------------------------- //-------------------------------------------------------- FileClose(handle); ObjectSet("ENTRY_Sell1",OBJPROP_PRICE1,enSell1); ObjectSet("EXIT_Sell1",OBJPROP_PRICE1,exSell1); ObjectSet("STOP_Sell1",OBJPROP_PRICE1,stop1_s); ObjectSet("TARGET_Sell1",OBJPROP_PRICE1,target1_s); ObjectSet("ENTRY_Buy1",OBJPROP_PRICE1,enBuy1); ObjectSet("EXIT_Buy1",OBJPROP_PRICE1,exBuy1); ObjectSet("STOP_Buy1",OBJPROP_PRICE1,stop1_b); ObjectSet("TARGET_Buy1",OBJPROP_PRICE1,target1_b); //-------------------------------------------------- //-------------------------------------------------- ObjectSet("ENTRY_Sell2",OBJPROP_PRICE1,enSell2); ObjectSet("EXIT_Sell2",OBJPROP_PRICE1,exSell2); ObjectSet("STOP_Sell2",OBJPROP_PRICE1,stop2_s); ObjectSet("TARGET_Sell2",OBJPROP_PRICE1,target2_s); ObjectSet("ENTRY_Buy2",OBJPROP_PRICE1,enBuy2); ObjectSet("EXIT_Buy2",OBJPROP_PRICE1,exBuy2); ObjectSet("STOP_Buy2",OBJPROP_PRICE1,stop2_b); ObjectSet("TARGET_Buy2",OBJPROP_PRICE1,target2_b); //-------------------------------------------------- //-------------------------------------------------- ObjectSet("ENTRY_Sell3",OBJPROP_PRICE1,enSell3); ObjectSet("EXIT_Sell3",OBJPROP_PRICE1,exSell3); ObjectSet("STOP_Sell3",OBJPROP_PRICE1,stop3_s); ObjectSet("TARGET_Sell3",OBJPROP_PRICE1,target3_s); ObjectSet("ENTRY_Buy3",OBJPROP_PRICE1,enBuy3); ObjectSet("EXIT_Buy3",OBJPROP_PRICE1,exBuy3); ObjectSet("STOP_Buy3",OBJPROP_PRICE1,stop3_b); ObjectSet("TARGET_Buy3",OBJPROP_PRICE1,target3_b); ObjectsRedraw(); /* Comment("Cycle "," entrySell1 = ",entrySell1," exitSell1 = ",exitSell1," exSell1 = ",exSell1,"\n", " "," enSell1 = ",enSell1," target1_s = ",target1_s," stop1_s = ",stop1_s,"\n", " "," entryBuy1 = ",entryBuy1," exitBuy1 = ",exitBuy1," exBuy1 = ",exBuy1,"\n", " "," enBuy1 = ",enBuy1," target1_b = ",target1_b," stop1_b = ",stop1_b,"\n", "Primary "," entrySell2 = ",entrySell2," exitSell2 = ",exitSell2," exSell2 = ",exSell2,"\n", " "," enSell2 = ",enSell2," target2_s = ",target2_s," stop2_s = ",stop2_s,"\n", " "," entryBuy2 = ",entryBuy2," exitBuy2 = ",exitBuy2," exBuy2 = ",exBuy2,"\n", " "," enBuy2 = ",enBuy2," target2_b = ",target2_b," stop2_b = ",stop2_b,"\n", "Intermed "," entrySell3 = ",entrySell3," exitSell3 = ",exitSell3," exSell3 = ",exSell3,"\n", " "," enSell3 = ",enSell3," target3_s = ",target3_s," stop3_s = ",stop3_s,"\n", " "," entryBuy3 = ",entryBuy3," exitBuy3 = ",exitBuy3," exBuy3 = ",exBuy3,"\n", " "," enBuy3 = ",enBuy3," target3_b = ",target3_b," stop3_b = ",stop3_b );*/ return(0); } //+------------------------------------------------------------------+ //------------------------------------------------------------------------- int shreach(string str) { int p; string value; entrySell=0; exitSell=0; entryBuy=0; exitBuy=0; enSell=0; enBuy=0; target_b=0; stop_b=0; exSell=0; exBuy=0; target_s=0; stop_s=0; p=StringFind(str, "exit: BUY!", 0); if (p>0) { exitBuy=1; value=StringSubstr(str, p+10, 7); exBuy=exBuy+StrToDouble(value); } p=StringFind(str, "entry: BUY!", 0); if (p>0) { entryBuy=1; value=StringSubstr(str, p+11, 7); enBuy=enBuy+StrToDouble(value); p=StringFind(str, ".", p+29); value=StringSubstr(str, p-1, 7); target_b=target_b+StrToDouble(value); p=StringFind(str, ".", p+3); value=StringSubstr(str, p-1, 7); stop_b=stop_b+StrToDouble(value); } p=StringFind(str, "exit: SELL!", 0); if (p>0) { exitSell=1; value=StringSubstr(str, p+11, 7); exSell=exSell+StrToDouble(value); } p=StringFind(str, "entry: SELL!", 0); if (p>0) { entrySell=1; value=StringSubstr(str, p+12, 7); enSell=enSell+StrToDouble(value); p=StringFind(str, ".", p+29); value=StringSubstr(str, p-1, 7); target_s=target_s+StrToDouble(value); p=StringFind(str, ".", p+3); value=StringSubstr(str, p-1, 7); stop_s=stop_s+StrToDouble(value); } return(0); } //------------------------------------------------------------------------------------