LIP/Arch/RU/LIP_v01.005/Include/LIP_Fun1_5_v1.005.mqh

590 lines
54 KiB
MQL5
Raw Permalink Normal View History

2025-05-30 15:03:51 +02:00
<EFBFBD><EFBFBD>//============================================================================================= MQL5 ===
// LibreInfoPDO Function1_5 v1.005 MQL5
// A=>2=K5 DC=:F88 0;3>@8B<0
// 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.005.mqh"
//============================================================================================= MQL5 ===
// MAIN FUNCTIONS
//------------------------------------------------------------------------------------------------------
//
//============================================================================================= MQL5 ===
// CalcPositionsTotal() - ?>4AG5B :>;8G5AB20 ?>78F89 A >B1>@>< ?> 8=AB@C<5=BC <038:C B8:5BC
// E>4:
// iSymbol - 8=AB@C<5=B
// iSelSym - @568< >B1>@0 ?> 8=AB@C<5=BC
// iMagic - magic
// iSelMag - @568< >B1>@0 ?> magic
// iTicket - B8:5B
// iSelTick - @568< >B1>@0 ?> B8:5BC
//------------------------------------------------------------------------------------------------------
int CalcPositionsTotal( string &iSymSelect[],
string &iSymEliminat[],
enSelSymMode iSelSym,
ulong &iMagSelect[],
ulong &iMagEliminat[],
enSelMagMode iSelMag,
long &iTickSelect[],
long &iTickEliminat[],
enSelTickMode iSelTick){
//-----
int
nPosition=0;
//-----
int iPositionsTotal=PositionsTotal();
{if(iPositionsTotal>0)
{
{for(int i=PositionsTotal()-1;i>=0;i--)
{
ulong Pos_Tick=PositionGetTicket(i); //K18@05< ?>78F8N ?> =><5@C 2 A?8A:5
{if(Pos_Tick<=0){continue;}} //5C40G=> - A;54CNI89
string PosSymbol=PositionGetString(POSITION_SYMBOL);
{if(!CheckSym(PosSymbol,iSymSelect,iSymEliminat,iSelSym)){continue;}}//@>25@:0 A>>B25BAB28O A8<2>;0 <>45;8 ?> :@8B5@8N 2K1>@0
ulong PosMagic=PositionGetInteger(POSITION_MAGIC);
{if(!CheckMag(PosMagic,iMagSelect,iMagEliminat,iSelMag)){continue;}}//@>25@:0 A>>B25BAB28O <038:0 <>45;8 ?> :@8B5@8N 2K1>@0
long PosTicket=PositionGetInteger(POSITION_TICKET);
{if(!CheckTick(PosTicket,inSelectTick,inEliminatTick,iSelTick)){continue;}}//@>25@:0 A>>B25BAB28O B8:5B0 <>45;8 ?> :@8B5@8N 2K1>@0
nPosition++;
}}//for(int i=PositionsTotal()-1;i>=0;i--)
}}//if(PositionsTotal()>0)
return(nPosition);
}//CalcPositionsTotal()
//
//============================================================================================= MQL5 ===
// CalcOrdersTotal() - ?>4AG5B :>;8G5AB20 >@45@>2 A >B1>@>< ?> 8=AB@C<5=BC <038:C B8:5BC
// E>4:
// iSymbol - 8=AB@C<5=B
// iSelSym - @568< >B1>@0 ?> 8=AB@C<5=BC
// iMagic - magic
// iSelMag - @568< >B1>@0 ?> magic
// iTicket - B8:5B
// iSelTick - @568< >B1>@0 ?> B8:5BC
//------------------------------------------------------------------------------------------------------
int CalcOrdersTotal( string &iSymSelect[],
string &iSymEliminat[],
enSelSymMode iSelSym,
ulong &iMagSelect[],
ulong &iMagEliminat[],
enSelMagMode iSelMag,
long &iTickSelect[],
long &iTickEliminat[],
enSelTickMode iSelTick){
int
nOrder=0;
//-----
{if(OrdersTotal()>0)
{
{for(int i=OrdersTotal()-1;i>=0;i--)
{
ulong Ord_Tick=OrderGetTicket(i); //K18@05< >@45@ ?> =><5@C 2 A?8A:5
{if(Ord_Tick<=0){continue;}} //5C40G=> - A;54CNI89
{if(!CheckSym(OrderGetString(ORDER_SYMBOL),iSymSelect,iSymEliminat,iSelSym)){continue;}}//@>25@:0 A>>B25BAB28O A8<2>;0 <>45;8 ?> :@8B5@8N 2K1>@0
{if(!CheckMag(OrderGetInteger(ORDER_MAGIC),iMagSelect,iMagEliminat,iSelMag)){continue;}}//@>25@:0 A>>B25BAB28O <038:0 <>45;8 ?> :@8B5@8N 2K1>@0
{if(!CheckTick(OrderGetInteger(ORDER_TICKET),inSelectTick,inEliminatTick,iSelTick)){continue;}}//@>25@:0 A>>B25BAB28O B8:5B0 <>45;8 ?> :@8B5@8N 2K1>@0
nOrder++;
}}//for(int i=OrdersTotal()-1;i>=0;i--)
}}//if(OrdersTotal()>0)
return(nOrder);
}//CalcOrdersTotal()
//
//============================================================================================= MQL5 ===
// CalcHistoryOrdersTotal() - ?>4AG5B :>;8G5AB20 >@45@>2 2 8AB>@88 A >B1>@>< ?> 8=AB@C<5=BC <038:C B8:5BC
// E>4:
// iSymbol - 8=AB@C<5=B
// iSelSym - @568< >B1>@0 ?> 8=AB@C<5=BC
// iMagic - magic
// iSelMag - @568< >B1>@0 ?> magic
// iTicket - B8:5B
// iSelTick - @568< >B1>@0 ?> B8:5BC
//------------------------------------------------------------------------------------------------------
int CalcHistoryOrdersTotal(string &iSymSelect[],
string &iSymEliminat[],
enSelSymMode iSelSym,
ulong &iMagSelect[],
ulong &iMagEliminat[],
enSelMagMode iSelMag,
long &iTickSelect[],
long &iTickEliminat[],
enSelTickMode iSelTick){
int
nOrder=0;
//-----
{if(HistoryOrdersTotal()>0)
{
{for(int i=HistoryOrdersTotal()-1;i>=0;i--)
{
ulong Ord_Tick=HistoryOrderGetTicket(i); //K18@05< >@45@ 2 8AB>@88 ?> =><5@C 2 A?8A:5
{if(Ord_Tick<=0){continue;}} //5C40G=> - A;54CNI89
{if(!CheckSym(HistoryOrderGetString(Ord_Tick,ORDER_SYMBOL),iSymSelect,iSymEliminat,iSelSym)){continue;}}//@>25@:0 A>>B25BAB28O A8<2>;0 <>45;8 ?> :@8B5@8N 2K1>@0
{if(!CheckMag(HistoryOrderGetInteger(Ord_Tick,ORDER_MAGIC),iMagSelect,iMagEliminat,iSelMag)){continue;}}//@>25@:0 A>>B25BAB28O <038:0 <>45;8 ?> :@8B5@8N 2K1>@0
{if(!CheckTick(HistoryOrderGetInteger(Ord_Tick,ORDER_TICKET),inSelectTick,inEliminatTick,iSelTick)){continue;}}//@>25@:0 A>>B25BAB28O B8:5B0 <>45;8 ?> :@8B5@8N 2K1>@0
nOrder++;
}}//for(int i=HistoryOrdersTotal()-1;i>=0;i--)
}}//if(HistoryOrdersTotal()>0)
return(nOrder);
}//CalcHistoryOrdersTotal()
//
//============================================================================================= MQL5 ===
// CalcHistoryDealsTotal() - ?>4AG5B :>;8G5AB20 A45;>: A >B1>@>< ?> 8=AB@C<5=BC <038:C B8:5BC
// E>4:
// iSymbol - 8=AB@C<5=B
// iSelSym - @568< >B1>@0 ?> 8=AB@C<5=BC
// iMagic - magic
// iSelMag - @568< >B1>@0 ?> magic
// iTicket - B8:5B
// iSelTick - @568< >B1>@0 ?> B8:5BC
//------------------------------------------------------------------------------------------------------
int CalcHistoryDealsTotal( string &iSymSelect[],
string &iSymEliminat[],
enSelSymMode iSelSym,
ulong &iMagSelect[],
ulong &iMagEliminat[],
enSelMagMode iSelMag,
long &iTickSelect[],
long &iTickEliminat[],
enSelTickMode iSelTick){
int
nDeal=0;
//-----
{if(HistoryDealsTotal()>0)
{
{for(int i=HistoryDealsTotal()-1;i>=0;i--)
{
ulong Deal_Tick=HistoryDealGetTicket(i); //K18@05< A45;:C ?> =><5@C 2 A?8A:5
{if(Deal_Tick<=0){continue;}} //5C40G=> - A;54CNI89
{if(!CheckSym(HistoryDealGetString(Deal_Tick,DEAL_SYMBOL),iSymSelect,iSymEliminat,iSelSym)){continue;}}//@>25@:0 A>>B25BAB28O A8<2>;0 <>45;8 ?> :@8B5@8N 2K1>@0
{if(!CheckMag(HistoryDealGetInteger(Deal_Tick,DEAL_MAGIC),iMagSelect,iMagEliminat,iSelMag)){continue;}}//@>25@:0 A>>B25BAB28O <038:0 <>45;8 ?> :@8B5@8N 2K1>@0
{if(!CheckTick(HistoryDealGetInteger(Deal_Tick,DEAL_TICKET),inSelectTick,inEliminatTick,iSelTick)){continue;}}//@>25@:0 A>>B25BAB28O B8:5B0 <>45;8 ?> :@8B5@8N 2K1>@0
nDeal++;
}}//for(int i=HistoryDealsTotal()-1;i>=0;i--)
}}//if(HistoryOrdersTotal()>0)
return(nDeal);
}//CalcHistoryDealsTotal()
//
//============================================================================================= MQL5 ===
// CheckSym() - @>25@:0 A>>B25BAB28O A8<2>;0 <>45;8 ?> :@8B5@8N 2K1>@0
// E>4:
// aSymbol - ?@>25@O5<K9 8=AB@C<5=B
// iSymSelect - <0AA82 >B1>@0 >1@07F>2
// iSymEliminat- <0AA82 >BA520 >1@07F>2
// iSelSym - :@8B5@89 2K1>@0
//------------------------------------------------------------------------------------------------------
bool CheckSym(string aSymbol,
string &iSymSelect[],
string &iSymEliminat[],
enSelSymMode iSelSym){
//-----
bool Result=false;
//-----
{switch(iSelSym)
{
case SelSym_all:
{
Result=true;
break;
}
case SelSym_curr:
{
{if((aSymbol!=iSymSelect[0])&&(iSymSelect[0]!="")){break;}}//B1>@ ?> A8<2>;C
Result=true;
break;
}
case SelSym_user:
{
{if((aSymbol!=iSymSelect[0])&&(iSymSelect[0]!="")){break;}}//B1>@ ?> A8<2>;C
Result=true;
break;
}
case SelSym_but:
{
{if((aSymbol==iSymEliminat[0])&&(iSymEliminat[0]!="")){break;}}//B1>@ ?> A8<2>;C
Result=true;
break;
}
case SelSym_list://?> A?8A:C >B1>@0
{
//@>25@:0 =0;8G8O A8<2>;0 2 A?8A:5 >B1>@0
Result=false;
{for(int i=0;i<=nSymSelectList-1;i++)
{
{if((aSymbol==iSymSelect[i])&&(iSymSelect[i]!=""))//B1>@ ?> A8<2>;C
{
Result=true;
break;
}}//if((aSymbol==iSymSelect[i])&&(iSymSelect[i]!=""))
}}//for(int i=0;i<=nSymSelectList-1;i++)
break;
}
case SelSym_butlist://?> A?8A:C >BA520
{
//@>25@:0 =0;8G8O A8<2>;0 2 A?8A:5 >BA520
Result=true;
{for(int i=0;i<=nSymEliminatList-1;i++)
{
{if((aSymbol==iSymEliminat[i])&&(iSymEliminat[i]!=""))//BA52 ?> A8<2>;C
{
Result=false;
break;
}}//if((aSymbol==iSymEliminat[i])&&(iSymEliminat[i]!=""))
}}//for(int i=0;i<=nSymSelectList-1;i++)
break;
}
case SelSym_listbutlist://?> A?8A:0< >B1>@0 8 >BA520
{
//@>25@:0 =0;8G8O A8<2>;0 2 A?8A:5 >B1>@0
Result=false;
{for(int i=0;i<=nSymSelectList-1;i++)
{
{if((aSymbol==iSymSelect[i])&&(iSymSelect[i]!=""))//B1>@ ?> A8<2>;C
{
//@>25@:0 =0;8G8O A8<2>;0 2 A?8A:5 >BA520
Result=true;
{for(int j=0;j<=nSymEliminatList-1;j++)
{
{if((aSymbol==iSymEliminat[j])&&(iSymEliminat[j]!=""))//BA52 ?> A8<2>;C
{
Result=false;
break;
}}//if((aSymbol==iSymEliminat[j])&&(iSymEliminat[j]!=""))
}}//for(int j=0;j<=nSymEliminatList-1;j++)
break;
}}//if((aSymbol==iSymSelect[i])&&(iSymSelect[i]!=""))
}}//for(int i=0;i<=nSymSelectList-1;i++)
break;
}
default:
{
break;
}
}}//switch(iSelSym)
return(Result);
}//CheckSym()
//
//============================================================================================= MQL5 ===
// CheckMag() - @>25@:0 A>>B25BAB28O <038:0 ?> :@8B5@8N 2K1>@0
// E>4:
// aMagic - ?@>25@O5<K9 <038:
// iMagSelect - <0AA82 >B1>@0 >1@07F>2
// iMagEliminat - <0AA82 >BA520 >1@07F>2
// iSelMag - :@8B5@89 2K1>@0
//------------------------------------------------------------------------------------------------------
bool CheckMag(ulong aMagic,
ulong &iMagSelect[],
ulong &iMagEliminat[],
enSelMagMode iSelMag){
//-----
bool Result=false;
//-----
{switch(iSelMag)
{
case SelMag_all:
{
Result=true;
break;
}
case SelMag_user:
{
{if(aMagic!=iMagSelect[0]){break;}}//B1>@ ?> <038:C
Result=true;
break;
}
case SelMag_but:
{
{if(aMagic==iMagEliminat[0]){break;}}//B1>@ ?> <038:C
Result=true;
break;
}
case SelMag_list://?> A?8A:C >B1>@0
{
//@>25@:0 =0;8G8O <038:0 2 A?8A:5 >B1>@0
Result=false;
{for(int i=0;i<=nMagSelectList-1;i++)
{
{if(aMagic==iMagSelect[i])//B1>@ ?> <038:C
{
Result=true;
break;
}}//if((aMagic==iMagSelect[i])&&(iMagSelect[i]!=0))
}}//for(int i=0;i<=nMagSelectList-1;i++)
break;
}
case SelMag_butlist://?> A?8A:C >BA520
{
//@>25@:0 =0;8G8O <038:0 2 A?8A:5 >BA520
Result=true;
{for(int i=0;i<=nMagEliminatList-1;i++)
{
{if(aMagic==iMagEliminat[i])//BA52 ?> <038:C
{
Result=false;
break;
}}//if((aMagic==iMagEliminat[i])&&(iMagEliminat[i]!=0))
}}//for(int i=0;i<=nMagSelectList-1;i++)
break;
}
case SelMag_listbutlist://?> A?8A:0< >B1>@0 8 >BA520
{
//@>25@:0 =0;8G8O <038:0 2 A?8A:5 >B1>@0
Result=false;
{for(int i=0;i<=nMagSelectList-1;i++)
{
{if(aMagic==iMagSelect[i])//B1>@ ?> <038:C
{
//@>25@:0 =0;8G8O <038:0 2 A?8A:5 >BA520
Result=true;
{for(int j=0;j<=nMagEliminatList-1;j++)
{
{if(aMagic==iMagEliminat[j])//BA52 ?> <038:C
{
Result=false;
break;
}}//if((aMagic==iMagEliminat[j])&&(iMagEliminat[j]!=0))
}}//for(int j=0;j<=nMagEliminatList-1;j++)
break;
}}//if((aMagic==iMagSelect[i])&&(iMagSelect[i]!=0))
}}//for(int i=0;i<=nMagSelectList-1;i++)
break;
}
default:
{
break;
}
}}//switch(iSelSym)
return(Result);
}//CheckMag()
//
//============================================================================================= MQL5 ===
// CheckTick() - @>25@:0 A>>B25BAB28O B8:5B0 ?> :@8B5@8N 2K1>@0
// E>4:
// aTicket - ?@>25@O5<K9 B8:5B
// iTickSelect - <0AA82 >B1>@0 >1@07F>2
// iTickEliminat - <0AA82 >BA520 >1@07F>2
// iSelTick - :@8B5@89 2K1>@0
//------------------------------------------------------------------------------------------------------
bool CheckTick( long aTicket,
long &iTickSelect[],
long &iTickEliminat[],
enSelTickMode iSelTick){
//-----
bool Result=false;
//-----
{switch(iSelTick)
{
case SelTick_all:
{
Result=true;
break;
}
case SelTick_user:
{
{if((aTicket!=iTickSelect[0])&&(iTickSelect[0]!=0)){break;}}//B1>@ ?> B8:5BC
Result=true;
break;
}
case SelTick_but:
{
{if((aTicket==iTickEliminat[0])&&(iTickEliminat[0]!=0)){break;}}//B1>@ ?> B8:5BC
Result=true;
break;
}
case SelTick_list://?> A?8A:C >B1>@0
{
//@>25@:0 =0;8G8O B8:5B0 2 A?8A:5 >B1>@0
Result=false;
{for(int i=0;i<=nTickSelectList-1;i++)
{
{if((aTicket==iTickSelect[i])&&(iTickSelect[i]!=0))//B1>@ ?> B8:5BC
{
Result=true;
break;
}}//if((aTicket==iTickSelect[i])&&(iTickSelect[i]!=0))
}}//for(int i=0;i<=nTickSelectList-1;i++)
break;
}
case SelTick_butlist://?> A?8A:C >BA520
{
//@>25@:0 =0;8G8O B8:5B0 2 A?8A:5 >BA520
Result=true;
{for(int i=0;i<=nTickEliminatList-1;i++)
{
{if((aTicket==iTickEliminat[i])&&(iTickEliminat[i]!=0))//BA52 ?> B8:5BC
{
Result=false;
break;
}}//if((aTicket==iTickSelect[i])&&(iTickSelect[i]!=0))
}}//for(int i=0;i<=nTickSelectList-1;i++)
break;
}
case SelTick_listbutlist://?> A?8A:0< >B1>@0 8 >BA520
{
//@>25@:0 =0;8G8O B8:5B0 2 A?8A:5 >B1>@0
Result=false;
{for(int i=0;i<=nTickSelectList-1;i++)
{
{if((aTicket==iTickSelect[i])&&(iTickSelect[i]!=0))//B1>@ ?> B8:5BC
{
//@>25@:0 =0;8G8O B8:5B0 2 A?8A:5 >BA520
Result=true;
{for(int j=0;j<=nTickEliminatList-1;j++)
{
{if((aTicket==iTickEliminat[j])&&(iTickEliminat[j]!=0))//BA52 ?> B8:5BC
{
Result=false;
break;
}}//if((aTicket==iTickEliminat[j])&&(iTickEliminat[j]!=0))
}}//for(int j=0;j<=nTickEliminatList-1;j++)
break;
}}//if((aTicket==iTickSelect[i])&&(iTickSelect[i]!=0))
}}//for(int i=0;i<=nTickSelectList-1;i++)
break;
}
default:
{
break;
}
}}//switch(iSelSym)
return(Result);
}//CheckTick()
//
//============================================================================================= MQL5 ===
// CalcPositionsSumm() - ?>4AG5B AC<<K ?>78F89 A >B1>@>< ?> 8=AB@C<5=BC <038:C B8:5BC
// E>4:
// iSymbol - 8=AB@C<5=B
// iSelSym - @568< >B1>@0 ?> 8=AB@C<5=BC
// iMagic - magic
// iSelMag - @568< >B1>@0 ?> magic
// iTicket - B8:5B
// iSelTick - @568< >B1>@0 ?> B8:5BC
//------------------------------------------------------------------------------------------------------
double CalcPositionsSumm( string &iSymSelect[],
string &iSymEliminat[],
enSelSymMode iSelSym,
ulong &iMagSelect[],
ulong &iMagEliminat[],
enSelMagMode iSelMag,
long &iTickSelect[],
long &iTickEliminat[],
enSelTickMode iSelTick){
//-----
double
PosSumm=0.0;
//-----
int iPositionsTotal=PositionsTotal();
{if(iPositionsTotal>0)
{
{for(int i=PositionsTotal()-1;i>=0;i--)
{
ulong Pos_Tick=PositionGetTicket(i); //K18@05< ?>78F8N ?> =><5@C 2 A?8A:5
{if(Pos_Tick<=0){continue;}} //5C40G=> - A;54CNI89
string PosSymbol=PositionGetString(POSITION_SYMBOL);
{if(!CheckSym(PosSymbol,iSymSelect,iSymEliminat,iSelSym)){continue;}}//@>25@:0 A>>B25BAB28O A8<2>;0 <>45;8 ?> :@8B5@8N 2K1>@0
ulong PosMagic=PositionGetInteger(POSITION_MAGIC);
{if(!CheckMag(PosMagic,iMagSelect,iMagEliminat,iSelMag)){continue;}}//@>25@:0 A>>B25BAB28O <038:0 <>45;8 ?> :@8B5@8N 2K1>@0
long PosTicket=PositionGetInteger(POSITION_TICKET);
{if(!CheckTick(PosTicket,inSelectTick,inEliminatTick,iSelTick)){continue;}}//@>25@:0 A>>B25BAB28O B8:5B0 <>45;8 ?> :@8B5@8N 2K1>@0
PosSumm+=PositionGetDouble(POSITION_PROFIT)+PositionGetDouble(POSITION_SWAP);
}}//for(int i=PositionsTotal()-1;i>=0;i--)
}}//if(PositionsTotal()>0)
return(PosSumm);
}//CalcPositionsSumm()
//
//============================================================================================= MQL5 ===
// CalcHistoryDealsSumm() - ?>4AG5B AC<<K A45;>: A >B1>@>< ?> 8=AB@C<5=BC <038:C B8:5BC
// E>4:
// iSymbol - 8=AB@C<5=B
// iSelSym - @568< >B1>@0 ?> 8=AB@C<5=BC
// iMagic - magic
// iSelMag - @568< >B1>@0 ?> magic
// iTicket - B8:5B
// iSelTick - @568< >B1>@0 ?> B8:5BC
//------------------------------------------------------------------------------------------------------
double CalcHistoryDealsSumm( string &iSymSelect[],
string &iSymEliminat[],
enSelSymMode iSelSym,
ulong &iMagSelect[],
ulong &iMagEliminat[],
enSelMagMode iSelMag,
long &iTickSelect[],
long &iTickEliminat[],
enSelTickMode iSelTick){
double
DealSumm=0.0;
//-----
{if(HistoryDealsTotal()>0)
{
{for(int i=HistoryDealsTotal()-1;i>=0;i--)
{
ulong Deal_Tick=HistoryDealGetTicket(i); //K18@05< A45;:C ?> =><5@C 2 A?8A:5
{if(Deal_Tick<=0){continue;}} //5C40G=> - A;54CNI89
{if(!CheckSym(HistoryDealGetString(Deal_Tick,DEAL_SYMBOL),iSymSelect,iSymEliminat,iSelSym)){continue;}}//@>25@:0 A>>B25BAB28O A8<2>;0 <>45;8 ?> :@8B5@8N 2K1>@0
{if(!CheckMag(HistoryDealGetInteger(Deal_Tick,DEAL_MAGIC),iMagSelect,iMagEliminat,iSelMag)){continue;}}//@>25@:0 A>>B25BAB28O <038:0 <>45;8 ?> :@8B5@8N 2K1>@0
{if(!CheckTick(HistoryDealGetInteger(Deal_Tick,DEAL_TICKET),inSelectTick,inEliminatTick,iSelTick)){continue;}}//@>25@:0 A>>B25BAB28O B8:5B0 <>45;8 ?> :@8B5@8N 2K1>@0
DealSumm+=HistoryDealGetDouble(Deal_Tick,DEAL_PROFIT)+HistoryDealGetDouble(Deal_Tick,DEAL_SWAP);
}}//for(int i=HistoryDealsTotal()-1;i>=0;i--)
}}//if(HistoryOrdersTotal()>0)
return(DealSumm);
}//CalcHistoryDealsSumm()
//
//======================================================================================================
// Indicator_Delete_Name() - #40;5=85 8=48:0B>@0 A B5:CI53> G0@B0 ?> 8<5=8
// E>4:
// iIndicatorName - 8<O 8=48:0B>@0
//======================================================================================================
bool Indicator_Delete_Name(string iIndicatorName){
//-----
int Chart_Windows_Total=(int)ChartGetInteger(0,CHART_WINDOWS_TOTAL); //>;8G5AB2> >:>= =0 3@0D8:5 (2A5340 5ABL E>BO 1K >4=> 3;02=>5 >:=>)
{for(int nWindow=0;nWindow<Chart_Windows_Total;nWindow++) //@>E>4 ?> >:=0<
{
int Chart_Indicators_Total=ChartIndicatorsTotal(0,nWindow); //!:>;L:> 8=48:0B>@>2 2 40==>< >:=5/?>4>:=5
{for(int nIndicator=0;nIndicator<Chart_Indicators_Total;nIndicator++) //5@515@5< 2A5 8=48:0B>@K 2 >:=5
{
string Chart_Indicator_Name=ChartIndicatorName(0,nWindow,nIndicator); //>;CG8< :>@>B:>5 8<O 8=48:0B>@0
int Indicator_Handle=ChartIndicatorGet(0,nWindow,Chart_Indicator_Name); //>;CG8< EM=4; 8=48:0B>@0
{if(Chart_Indicator_Name==iIndicatorName) //!@02=8205< =0945==>5 8 8A:><>5 8<5=0 8=48:0B>@>2
{
IndicatorRelease(Indicator_Handle); //A2>1>6405< E5=4; 8=48:0B>@0, :0: B>;L:> >= AB0=>28BAO =5=C6=K<
{if(ChartIndicatorDelete(0,nWindow,iIndicatorName)) //>?KB:0 C40;5=8O 8=48:0B>@0
{
return(true);
}}//if(ChartIndicatorDelete(0,nWindow,iIndicatorName))
}}//if(Chart_Indicator_Name==iIndicatorName)
}}//for(int nIndicator=0;nIndicator<Chart_Indicators_Total;nIndicator++)
}}//for(int nWindow=0;nWindow<Chart_Windows_Total;nWindow++)
return(false);
}//Indicator_Delete_Name()
//
//======================================================================================================
// Indicator_Delete_Name() - #40;5=85 8=48:0B>@0 A B5:CI53> G0@B0 ?> E5=4;C
// E>4:
// iIndicatorHandle - E5=4; 8=48:0B>@0
// KE>4:
// Chart_Indicator_Name - 8<O 8=48:0B>@0
//======================================================================================================
bool Indicator_Delete_Handle(int iIndicatorHandle,string &Chart_Indicator_Name){
//-----
int Chart_Windows_Total=(int)ChartGetInteger(0,CHART_WINDOWS_TOTAL); //>;8G5AB2> >:>= =0 3@0D8:5 (2A5340 5ABL E>BO 1K >4=> 3;02=>5 >:=>)
{for(int nWindow=0;nWindow<Chart_Windows_Total;nWindow++) //@>E>4 ?> >:=0<
{
int Chart_Indicators_Total=ChartIndicatorsTotal(0,nWindow); //!:>;L:> 8=48:0B>@>2 2 40==>< >:=5/?>4>:=5
{for(int nIndicator=0;nIndicator<Chart_Indicators_Total;nIndicator++) //5@515@5< 2A5 8=48:0B>@K 2 >:=5
{
Chart_Indicator_Name=ChartIndicatorName(0,nWindow,nIndicator); //>;CG8< :>@>B:>5 8<O 8=48:0B>@0
int Indicator_Handle=ChartIndicatorGet(0,nWindow,Chart_Indicator_Name); //>;CG8< EM=4; 8=48:0B>@0
{if(Indicator_Handle==iIndicatorHandle) //!@02=8205< =0945==>5 8 8A:><>5 7=0G5=8O E5=4;>2
{
IndicatorRelease(Indicator_Handle); //A2>1>6405< E5=4; 8=48:0B>@0, :0: B>;L:> >= AB0=>28BAO =5=C6=K<
{if(ChartIndicatorDelete(0,nWindow,Chart_Indicator_Name)) //>?KB:0 C40;5=8O 8=48:0B>@0
{
return(true);
}}//if(ChartIndicatorDelete(0,nWindow,iIndicatorName))
}}//if(Chart_Indicator_Name==iIndicatorName)
}}//for(int nIndicator=0;nIndicator<Chart_Indicators_Total;nIndicator++)
}}//for(int nWindow=0;nWindow<Chart_Windows_Total;nWindow++)
return(false);
}//Indicator_Delete_Handle()