LIP/Arch/RU/LIP_v01.001/Include/LIP_Man_5_v1.001.mqh

446 lines
46 KiB
MQL5
Raw Permalink Normal View History

2025-05-30 15:03:51 +02:00
<EFBFBD><EFBFBD>//============================================================================================= MQL5 ===
// LibreInfoPDO Main_5 v1.001 MQL5
// >4C;L >1@01>B:8 A>1KB89
// LibreCoin (c)2014-2017
//======================================================================================================
#property strict
//============================================================================================= MQL5 ===
// INCLUDE - ?>4:;NG05<K5 <>4C;8
//------------------------------------------------------------------------------------------------------
//----- 1@0B=K5 AAK;:8 =0 >A=>2=>9 D09; ?@>5:B0
#include "LIP_Ref_5_v1.001.mqh"
//============================================================================================= MQL5 ===
// EVENT PROCESSING MODULE
//------------------------------------------------------------------------------------------------------
//
//============================================================================================= MQL5 ===
// On_Init() - 8=8F80;870F8O A>25B=8:0
//------------------------------------------------------------------------------------------------------
ENUM_INIT_RETCODE On_Init(){
//----- !G5BG8:8 8 =0AB@>9:8 AG5BG8:>2
gnTick=0;
gInTimer=false;
//----- ?@545;O5< 8<O ?@>3@0<<K
ProgramName=MQLInfoString(MQL_PROGRAM_NAME);
//----- 0AAG8BK205< :>@>B:>5 8<O 8=48:0B>@0
ChartID_Str=IntegerToString(ChartID());
IndicatorShortName=vers+" "+StringSubstr(ChartID_Str,StringLen(ChartID_Str)-3);
IndicatorSetString(INDICATOR_SHORTNAME,IndicatorShortName);
//----- ;>10;L=K5 ?0@0<5B@K
TheSymbol=Symbol();
//----- 0AB@>9:8 4;O >B1>@0 ?> 8=AB@C<5=BC
{switch(SymSel)
{
case SymSel_curr:
{
inSymbolSelector=TheSymbol;
break;
}
case SymSel_user:
{
inSymbolSelector=SymbolSelector;
break;
}
case SymSel_all:
{
inSymbolSelector="";
break;
}
default:
{
inSymbolSelector="";
}
}}//switch(SymSel)
//----- 0AB@>9:8 B09<5@0
{if(!MQLInfoInteger(MQL_TESTER))//5 B5AB8@>20=85
{
int err=-1;
int count=50;
{while((err!=0)&&(count>0))
{
ResetLastError();
EventSetMillisecondTimer(MSTimerSet); //#AB0=>2:0 B09<5@0 XXX <8;;8A5:C=4
err=GetLastError();
{if(err!=0)
{
Sleep(50);
Print("EventSetMillisecondTimer n=",count," err >>",err);
}}//if(err!=0)
count--;
}}//while((err!=0)&&(count>0))
}}//if(!MQLInfoInteger(MQL_TESTER))
//----- #AB0=>2:0 8 @0AG5B ?0@0<5B@>2 >:=0 8=48:0B>@0
IndicatorSetInteger(INDICATOR_DIGITS,0);
IndHeigh=ChartGetInteger(0,CHART_HEIGHT_IN_PIXELS,1);
IndicatorSetDouble(INDICATOR_MINIMUM,0.0);
IndicatorSetDouble(INDICATOR_MAXIMUM,IndHeigh);
nFirstBar=(int)ChartGetInteger(0,CHART_FIRST_VISIBLE_BAR,1);
kScale=(double)ChartGetInteger(0,CHART_WIDTH_IN_BARS)/ChartGetInteger(0,CHART_WIDTH_IN_PIXELS);// 0AG5B <0AHB010 3@0D8:0 (10@>2 =0 ?8:A5;)
nSubWindow=ChartWindowFind(0,IndicatorShortName);//'B> AB@0==>, >6840;>AL GB> 1C45B @01>B0BL ProgramName
//----- 0?@0H8205< 8AB>@8N A45;>: 8 >@45@>2 70 C:070==K9 ?5@8>4 A5@25@=>3> 2@5<5=8.
{if(!HistorySelect(0,TimeCurrent()))
{
Print("HistorySelect Error!");
return(INIT_FAILED);
}}//A;8 =5C40G=> - 2KE>48<
//----- ?@545;5=85 :>;8G5AB20 >@45@>2, A45;>:, ?>78F89
//----- 1I55
Positions_Total=PositionsTotal(); //"5:CI85 ?>78F88
Orders_Total=OrdersTotal(); //"5:CI85 ;8<8B=K5 >@45@0
History_Orders_Total=HistoryOrdersTotal(); //0:@KBK5 @K=>G=K5 >@45@0
History_Deals_Total=HistoryDealsTotal(); //!>25@H5==K5 A45;:8 (2K?>;=5==K5 >@45@0)
//----- B>1@0==>5
Positions_Total_Sel=PositionsTotalSel(inSymbolSelector); //"5:CI85 ?>78F88
Orders_Total_Sel=OrdersTotalSel(inSymbolSelector); //"5:CI85 ;8<8B=K5 >@45@0
History_Orders_Total_Sel=HistoryOrdersTotalSel(inSymbolSelector);//0:@KBK5 @K=>G=K5 >@45@0
History_Deals_Total_Sel=HistoryDealsTotalSel(inSymbolSelector);//!>25@H5==K5 A45;:8 (2K?>;=5==K5 >@45@0)
//----- B:@KBK5 ?>78F88
ColoLabelCreate("LIP",0,"Position="+IntegerToString(Positions_Total_Sel)+"/"+IntegerToString(Positions_Total));
ColoCreate("LIP",0,Positions_Total);
//----- B:@KBK5 >B;>65==K5 >@45@0
ColoLabelCreate("LIO",ColoStep,"Order="+IntegerToString(Orders_Total_Sel)+"/"+IntegerToString(Orders_Total));
ColoCreate("LIO",ColoStep,Orders_Total);
//----- K?>;=5==K5 >@45@0 2 8AB>@88
ColoLabelCreate("LHO",ColoStep*2,"History_Order="+IntegerToString(History_Orders_Total_Sel)+"/"+IntegerToString(History_Orders_Total));
ColoCreate("LHO",ColoStep*2,History_Orders_Total);
//----- !45;:8 2 8AB>@88
ColoLabelCreate("LHD",ColoStep*3,"History_Deal="+IntegerToString(History_Deals_Total_Sel)+"/"+IntegerToString(History_Deals_Total));
ColoCreate("LHD",ColoStep*3,History_Deals_Total);
//----- 0?><=8< B5:CI85 :>;8G5AB20
Orders_Total_Old=Orders_Total; //"5:CI85 ;8<8B=K5 >@45@0
History_Orders_Total_Old=History_Orders_Total; //0:@KBK5 @K=>G=K5 >@45@0
History_Deals_Total_Old=History_Deals_Total; //!>25@H5==K5 A45;:8 (2K?>;=5==K5 >@45@0)
Positions_Total_Old=Positions_Total; //"5:CI85 ?>78F88
Positions_Total_Sel_Old=Positions_Total_Sel; //"5:CI85 ?>78F88 >B>1@0==K5
Orders_Total_Sel_Old=Orders_Total_Sel; //"5:CI85 ;8<8B=K5 >@45@0 >B>1@0==K5
History_Orders_Total_Sel_Old=History_Orders_Total_Sel; //0:@KBK5 @K=>G=K5 >@45@0 >B>1@0==K5
History_Deals_Total_Sel_Old=History_Deals_Total_Sel; //!>25@H5==K5 A45;:8 (2K?>;=5==K5 >@45@0) >B>1@0==K5
//-----
return(INIT_SUCCEEDED);
}//On_Init()
//
//============================================================================================= MQL5 ===
// On_Tick() - A=>2=>9 >1@01>BG8: B8:>2
//------------------------------------------------------------------------------------------------------
void On_Tick(){
//----- @5@K205< 703@C7:C, 5A;8 8=48:0B>@ C65 5ABL
{if((ChartWindowFind(0,IndicatorShortName)>=0)&&(ChartWindowFind(0,ProgramName)>=0))
{
Print("Abort loading indicator: ",ProgramName);
ChartIndicatorDelete(0,ChartWindowFind(0,ProgramName),ProgramName);
}}//if(ChartWindowFind(0,IndicatorShortName)>=0)
//-----
//{if(!gInTimer)
//{
gnTick++;
// gInTimer=false;
//}}//if(!InTimer)
{if(gnTick>4294967000)
{
gnTick=100;
}}//if(gnTick>4294967000)
//----- #AB0=>2:0 8 @0AG5B ?0@0<5B@>2 >:=0 8=48:0B>@0
IndHeigh=ChartGetInteger(0,CHART_HEIGHT_IN_PIXELS,1);
IndicatorSetDouble(INDICATOR_MINIMUM,0.0);
IndicatorSetDouble(INDICATOR_MAXIMUM,IndHeigh);
nFirstBar=(int)ChartGetInteger(0,CHART_FIRST_VISIBLE_BAR,1);
kScale=(double)ChartGetInteger(0,CHART_WIDTH_IN_BARS)/ChartGetInteger(0,CHART_WIDTH_IN_PIXELS);
nSubWindow=ChartWindowFind(0,IndicatorShortName);
//----- 0?@0H8205< 8AB>@8N A45;>: 8 >@45@>2 70 C:070==K9 ?5@8>4 A5@25@=>3> 2@5<5=8.
{if(!HistorySelect(0,TimeCurrent()))
{
Print("HistorySelect Error!");
return;
}}//A;8 =5C40G=> - 2KE>48<
//----- ?@545;5=85 :>;8G5AB20 >@45@>2, A45;>:, ?>78F89
//----- 1I55
Positions_Total=PositionsTotal(); //"5:CI85 ?>78F88
Orders_Total=OrdersTotal(); //"5:CI85 ;8<8B=K5 >@45@0
History_Orders_Total=HistoryOrdersTotal(); //0:@KBK5 @K=>G=K5 >@45@0
History_Deals_Total=HistoryDealsTotal(); //!>25@H5==K5 A45;:8 (2K?>;=5==K5 >@45@0)
//----- B>1@0==>5
Positions_Total_Sel=PositionsTotalSel(inSymbolSelector); //"5:CI85 ?>78F88 >B>1@0==K5
Orders_Total_Sel=OrdersTotalSel(inSymbolSelector); //"5:CI85 ;8<8B=K5 >@45@0 >B>1@0==K5
History_Orders_Total_Sel=HistoryOrdersTotalSel(inSymbolSelector);//0:@KBK5 @K=>G=K5 >@45@0 >B>1@0==K5
History_Deals_Total_Sel=HistoryDealsTotalSel(inSymbolSelector);//!>25@H5==K5 A45;:8 (2K?>;=5==K5 >@45@0) >B>1@0==K5
//-----
//CommentLine[0]=""+
// "PositionsTotal="+IntegerToString(Positions_Total)+" "+
// "OrdersTotal="+IntegerToString(Orders_Total)+" "+
// "";
//CommentLine[1]=""+
// "HistoryOrdersTotal="+IntegerToString(History_Orders_Total)+" "+
// "HistoryDealsTotal="+IntegerToString(History_Deals_Total)+" "+
// "";
//----- 5@5AG5BK - ?5@5@8A>2:8 ?@8 87<5=5=88 :>;8G5AB20
//----- !?8A>: >B:@KBKE ?>78F89
{if(Positions_Total_Sel!=Positions_Total_Sel_Old)
{
ColoDelete("LIP",Positions_Total_Old); //>;>=:0 ?>78F89
ColoCreate("LIP",0,Positions_Total);
}}//if(Positions_Total_Sel!=Positions_Total_Sel_Old)
//----- !?8A>: >B:@KBKE >B;>65==KE >@45@>2
{if(Orders_Total_Sel!=Orders_Total_Sel_Old)
{
ColoDelete("LIO",Orders_Total_Old); //>;>=:0 >@45@>2
ColoCreate("LIO",ColoStep,Orders_Total);
}}//if(Orders_Total_Sel!=Orders_Total_Sel_Old)
//----- !?8A>: >@45@>2 2 8AB>@88
{if(History_Orders_Total_Sel!=History_Orders_Total_Sel_Old)
{
ColoDelete("LHO",History_Orders_Total_Old); //>;>=:0 8AB>@88 >@45@>2
ColoCreate("LHO",ColoStep*2,History_Orders_Total);
}}//if(History_Orders_Total_Sel!=History_Orders_Total_Sel_Old)
//----- !?8A>: A45;>: 2 8AB>@88
{if(History_Deals_Total_Sel!=History_Deals_Total_Sel_Old)
{
ColoDelete("LHD",History_Deals_Total_Old); //>;>=:0 8AB>@88 ?>78F89
ColoCreate("LHD",ColoStep*3,History_Deals_Total);
}}//if(History_Deals_Total_Sel!=History_Deals_Total_Sel_Old)
//----- 03>;>2:8 :>;>=>:
ColoLabelMove("LIP",0,"Position="+IntegerToString(Positions_Total_Sel)+"/"+IntegerToString(Positions_Total));
ColoLabelMove("LIO",ColoStep,"Order="+IntegerToString(Orders_Total_Sel)+"/"+IntegerToString(Orders_Total));
ColoLabelMove("LHO",ColoStep*2,"History Order="+IntegerToString(History_Orders_Total_Sel)+"/"+IntegerToString(History_Orders_Total));
ColoLabelMove("LHD",ColoStep*3,"History Dial="+IntegerToString(History_Deals_Total_Sel)+"/"+IntegerToString(History_Deals_Total));
//----- $>@<8@>20=85 A?8A:>2 >@45@>2, A45;>:, ?>78F89
//----- !?8A>: >B:@KBKE ?>78F89
{if(Positions_Total>=0)
{
nRow=0;
CopyTime(TheSymbol,PERIOD_CURRENT,(nFirstBar-(int)(3*kScale)),1,gTime);
{for(int i=Positions_Total-1;i>=0;i--)
{
sTXW="LIP_"+IntegerToString(i); //#AB0=02;8205< 8<O 4;O B5:cB>2>3> >1J5:B0
ObjectSetString(0,sTXW,OBJPROP_TEXT," "); //1=C;5=85 AB@>:8 2K2>40
ulong Pos_Tick=PositionGetTicket(i); //K18@05< ?>78F8N ?> =><5@C 2 A?8A:5
{if(Pos_Tick<=0){continue;}} //5C40G=> - A;54CNI89
{if((SymSel!=SymSel_all)&&(inSymbolSelector!=PositionGetString(POSITION_SYMBOL))){continue;}}//5 B>B A8<2>; - A;54CNI89
ENUM_POSITION_TYPE OrdType=(ENUM_POSITION_TYPE)PositionGetInteger(POSITION_TYPE);
PosTypeString=EnumToString(OrdType);
StringReplace(PosTypeString,"POSITION_TYPE_","");
PositionDataString= " "+
IntegerToString(i)+"."+
PositionGetString(POSITION_SYMBOL)+" "+
PosTypeString+" ["+
IntegerToString(Pos_Tick)+"-"+
IntegerToString(PositionGetInteger(POSITION_MAGIC))+"-"+
DoubleToString(PositionGetDouble(POSITION_VOLUME),2)+"-"+
DoubleToString(PositionGetDouble(POSITION_PRICE_OPEN),
(int)SymbolInfoInteger(PositionGetString(POSITION_SYMBOL),SYMBOL_DIGITS))+"]="+
DoubleToString(PositionGetDouble(POSITION_PROFIT),2)+" "+
"";
ResetLastError();
{if(!ObjectSetInteger(
0, //45=B8D8:0B>@ G0@B0
sTXW, //<O >1J5:B0
OBJPROP_TIME, //7<5=O5< :>>@48=0BC 2@5<5=8 >1J5:B0
gTime[0]
))
{
Print("ObjectSetInteger0 Error=",GetLastError());
continue;
}}//if(!ObjectSetInteger(...
ResetLastError();
{if(!ObjectSetDouble(
0, //45=B8D8:0B>@ G0@B0
sTXW, //<O >1J5:B0
OBJPROP_PRICE, //7<5=O5< :>>@48=0BC F5=K >1J5:B0
IndHeigh-11*(nRow+1)
))
{
Print("ObjectSetDouble0 Error=",GetLastError());
continue;
}else{
nRow++;
}}//if(!ObjectSetDouble(...
ObjectSetString(0,sTXW,OBJPROP_TEXT,PositionDataString+"");
}}//for(int i=Positions_Total-1;i>=0;i--)
}}//if(Positions_Total>=0)
//----- !?8A>: >B:@KBKE >B;>65==KE >@45@>2
{if(Orders_Total>=0)
{
nRow=0;
CopyTime(TheSymbol,PERIOD_CURRENT,(nFirstBar-(int)(ColoStep*kScale)),1,gTime);
{for(int i=Orders_Total-1;i>=0;i--)
{
sTXW="LIO_"+IntegerToString(i); //#AB0=02;8205< 8<O 4;O B5:cB>2>3> >1J5:B0
ObjectSetString(0,sTXW,OBJPROP_TEXT," "); //1=C;5=85 AB@>:8 2K2>40
ulong Ord_Tick=OrderGetTicket(i); //K18@05< >@45@ ?> =><5@C 2 A?8A:5
{if(Ord_Tick<=0){continue;}} //5C40G=> - A;54CNI89
{if((SymSel!=SymSel_all)&&(inSymbolSelector!=OrderGetString(ORDER_SYMBOL))){continue;}}//5 B>B A8<2>; - A;54CNI89
ENUM_ORDER_TYPE OrdType=(ENUM_ORDER_TYPE)OrderGetInteger(ORDER_TYPE);
OrdTypeString=EnumToString(OrdType);
StringReplace(OrdTypeString,"ORDER_TYPE_","");
OrderDataString= " "+
IntegerToString(i)+"."+
OrderGetString(ORDER_SYMBOL)+" "+
OrdTypeString+" ["+
IntegerToString(Ord_Tick)+"-"+
IntegerToString(OrderGetInteger(ORDER_MAGIC))+"-"+
DoubleToString(OrderGetDouble(ORDER_VOLUME_CURRENT),2)+"-"+
DoubleToString(OrderGetDouble(ORDER_PRICE_OPEN),(int)SymbolInfoInteger(OrderGetString(ORDER_SYMBOL),SYMBOL_DIGITS))+"]"+
"";
ResetLastError();
{if(!ObjectSetInteger(
0, //45=B8D8:0B>@ G0@B0
sTXW, //<O >1J5:B0
OBJPROP_TIME, //7<5=O5< :>>@48=0BC 2@5<5=8 >1J5:B0
gTime[0]
))
{
Print("ObjectSetInteger1 Error=",GetLastError());
continue;
}}//if(!ObjectSetInteger(...
ResetLastError();
{if(!ObjectSetDouble(
0, //45=B8D8:0B>@ G0@B0
sTXW, //<O >1J5:B0
OBJPROP_PRICE, //7<5=O5< :>>@48=0BC F5=K >1J5:B0
IndHeigh-11*(nRow+1)
))
{
Print("ObjectSetDouble1 Error=",GetLastError());
continue;
}else{
nRow++;
}}//if(!ObjectSetDouble(...
ObjectSetString(0,sTXW,OBJPROP_TEXT,OrderDataString+"");
}}//for(int i=Orders_Total-1;i>=0;i--)
}}//if(Orders_Total>=0)
//----- !?8A>: >@45@>2 2 8AB>@88
{if(History_Orders_Total>=0)
{
nRow=0;
CopyTime(TheSymbol,PERIOD_CURRENT,(nFirstBar-(int)(ColoStep*2*kScale)),1,gTime);
{for(int i=History_Orders_Total-1;i>=0;i--)
{
sTXW="LHO_"+IntegerToString(i); //#AB0=02;8205< 8<O 4;O B5:cB>2>3> >1J5:B0
ObjectSetString(0,sTXW,OBJPROP_TEXT," "); //1=C;5=85 AB@>:8 2K2>40
ulong Ord_Tick=HistoryOrderGetTicket(i); //K18@05< >@45@ ?> =><5@C 2 A?8A:5
{if(Ord_Tick<=0){continue;}} //5C40G=> - A;54CNI89
{if((SymSel!=SymSel_all)&&(inSymbolSelector!=HistoryOrderGetString(Ord_Tick,ORDER_SYMBOL))){continue;}}//5 B>B A8<2>; - A;54CNI89
ENUM_ORDER_TYPE OrdType=(ENUM_ORDER_TYPE)HistoryOrderGetInteger(Ord_Tick,ORDER_TYPE);
OrdTypeString=EnumToString(OrdType);
StringReplace(OrdTypeString,"ORDER_TYPE_","");
OrderDataString= " "+
IntegerToString(i)+"."+
HistoryOrderGetString(Ord_Tick,ORDER_SYMBOL)+" "+
OrdTypeString+" ["+
IntegerToString(Ord_Tick)+"-"+
IntegerToString(HistoryOrderGetInteger(Ord_Tick,ORDER_MAGIC))+"-"+
DoubleToString(HistoryOrderGetDouble(Ord_Tick,ORDER_VOLUME_INITIAL),2)+"-"+
DoubleToString(HistoryOrderGetDouble(Ord_Tick,ORDER_PRICE_OPEN),
(int)SymbolInfoInteger(HistoryOrderGetString(Ord_Tick,ORDER_SYMBOL),SYMBOL_DIGITS))+"]"+
"";
ResetLastError();
{if(!ObjectSetInteger(
0, //45=B8D8:0B>@ G0@B0
sTXW, //<O >1J5:B0
OBJPROP_TIME, //7<5=O5< :>>@48=0BC 2@5<5=8 >1J5:B0
gTime[0]
))
{
Print("ObjectSetInteger2 Error=",GetLastError());
continue;
}}//if(!ObjectSetInteger(...
ResetLastError();
{if(!ObjectSetDouble(
0, //45=B8D8:0B>@ G0@B0
sTXW, //<O >1J5:B0
OBJPROP_PRICE, //7<5=O5< :>>@48=0BC F5=K >1J5:B0
IndHeigh-11*(nRow+1)
))
{
Print("ObjectSetDouble2 Error=",GetLastError());
continue;
}else{
nRow++;
}}//if(!ObjectSetDouble(...
ObjectSetString(0,sTXW,OBJPROP_TEXT,OrderDataString+"");
}}//for(int i=History_Orders_Total-1;i>=0;i--)
}}//if(History_Orders_Total>=0)
//----- !?8A>: A45;>: 2 8AB>@88
{if(History_Deals_Total>=0)
{
nRow=0;
CopyTime(TheSymbol,PERIOD_CURRENT,(nFirstBar-(int)(ColoStep*3*kScale)),1,gTime);
{for(int i=History_Deals_Total-1;i>=0;i--)
{
sTXW="LHD_"+IntegerToString(i); //#AB0=02;8205< 8<O 4;O B5:cB>2>3> >1J5:B0
ObjectSetString(0,sTXW,OBJPROP_TEXT," "); //1=C;5=85 AB@>:8 2K2>40
ulong Deal_Tick=HistoryDealGetTicket(i); //K18@05< >@45@ ?> =><5@C 2 A?8A:5
{if(Deal_Tick<=0){continue;}} //5C40G=> - A;54CNI89
{if((SymSel!=SymSel_all)&&(inSymbolSelector!=HistoryDealGetString(Deal_Tick,DEAL_SYMBOL))){continue;}}//5 B>B A8<2>; - A;54CNI89
ENUM_DEAL_TYPE DealType=(ENUM_DEAL_TYPE)HistoryDealGetInteger(Deal_Tick,DEAL_TYPE);
DealTypeString=EnumToString(DealType);
StringReplace(DealTypeString,"DEAL_TYPE_","");
DealDataString= " "+
IntegerToString(i)+"."+
HistoryDealGetString(Deal_Tick,DEAL_SYMBOL)+" "+
DealTypeString+" ["+
IntegerToString(Deal_Tick)+"-"+
IntegerToString(HistoryDealGetInteger(Deal_Tick,DEAL_MAGIC))+"-"+
DoubleToString(HistoryDealGetDouble(Deal_Tick,DEAL_VOLUME),2)+"-"+
DoubleToString(HistoryDealGetDouble(Deal_Tick,DEAL_PRICE),
(int)SymbolInfoInteger(HistoryDealGetString(Deal_Tick,DEAL_SYMBOL),SYMBOL_DIGITS))+"]="+
DoubleToString(HistoryDealGetDouble(Deal_Tick,DEAL_PROFIT),2)+" "+
"";
ResetLastError();
{if(!ObjectSetInteger(
0, //45=B8D8:0B>@ G0@B0
sTXW, //<O >1J5:B0
OBJPROP_TIME, //7<5=O5< :>>@48=0BC 2@5<5=8 >1J5:B0
gTime[0]
))
{
Print("ObjectSetInteger3 Error=",GetLastError());
continue;
}}//if(!ObjectSetInteger(...
ResetLastError();
{if(!ObjectSetDouble(
0, //45=B8D8:0B>@ G0@B0
sTXW, //<O >1J5:B0
OBJPROP_PRICE, //7<5=O5< :>>@48=0BC F5=K >1J5:B0
IndHeigh-11*(nRow+1)
))
{
Print("ObjectSetDouble3 Error=",GetLastError());
continue;
}else{
nRow++;
}}//if(!ObjectSetDouble(...
ObjectSetString(0,sTXW,OBJPROP_TEXT,DealDataString+"");
}}//for(int i=History_Deals_Total-1;i>=0;i--)
}}//if(History_Deals_Total>=0)
//-----
ChartRedraw();
//Comment( CommentLine[0]+" "+CommentLine[1]+" "+
// (string)(datetime)(TimeCurrent()-ChartGetInteger(0,CHART_FIRST_VISIBLE_BAR,0)*PeriodSeconds(PERIOD_CURRENT))+" "+
// _n+"Ticks>>"+IntegerToString(gnTick)+" Tims>>"+IntegerToString(gnTimer));
//----- 0?><=8< B5:CI85 AG5BG8:8
Orders_Total_Old=Orders_Total; //"5:CI85 ;8<8B=K5 >@45@0
History_Orders_Total_Old=History_Orders_Total; //0:@KBK5 @K=>G=K5 >@45@0
History_Deals_Total_Old=History_Deals_Total; //!>25@H5==K5 A45;:8 (2K?>;=5==K5 >@45@0)
Positions_Total_Old=Positions_Total; //"5:CI85 ?>78F88
Orders_Total_Sel_Old=Orders_Total_Sel; //"5:CI85 ;8<8B=K5 >@45@0 >B>1@0==K5
History_Orders_Total_Sel_Old=History_Orders_Total_Sel;//0:@KBK5 @K=>G=K5 >@45@0 >B>1@0==K5
History_Deals_Total_Sel_Old=History_Deals_Total_Sel; //!>25@H5==K5 A45;:8 (2K?>;=5==K5 >@45@0) >B>1@0==K5
Positions_Total_Sel_Old=Positions_Total_Sel; //"5:CI85 ?>78F88 >B>1@0==K5
//-----
return;
}//On_Tick()
//
//============================================================================================= MQL5 ===
// On_Timer - 1@01>B:0 A>1KB89 ?> B09<5@C
//------------------------------------------------------------------------------------------------------
void On_Timer(){
//-----
gnTimer++;
{if(gnTimer>4294967000)
{
gnTimer=100;
}}//if(gnTimer>4294967000)
gInTimer=true;
On_Tick();
}//On_Timer()