#property version "4.12"
#property strict
input string CommonSettings="--- Общие настройки ---";
input double Lots=0.1;
input int Body=15;
input double VolumePercent=20.0;
input double MinVolume=700;
input int TpShift=490;
input double RiskPercent=0;
input int Distance=100;
input int DeltaDistance=190;
input int AfterOrder=5;
input int OrderForBreakeven=20;
input int BreakEven=10;
input int Magic=987;
input bool Setka=True;
input string ClusterDeltaSettings="--- Настройки ClusterDelta ---";
input bool CD_Premium=true;
input int Update_C_D_Standart_sec=12;
input string Help_Url="";
input string Instrument="AUTO";
input string MetaTrader_GMT="AUTO";
input bool TikVolume=false;
string Comment_History="--- Premium Settings";
input int Days_in_History=0;
input datetime Custom_Start_time=D'2017.01.01';
input datetime Custom_End_time=D'2017.01.01';
color Current_Volume=clrRed;
int Font_Size=8;
bool TradeOn=false;
bool sig=false;
double LotStepPercent=0;
int OnInit() {
// код доступен только после оплаты
}//+--------------------------- End OnInit ---------------------------------------+
void OnDeinit(const int reason) {
}//+--------------------------- End OnDeinit ---------------------------------------+
void OnTick() {
// код доступен только после оплаты
}
static datetime t0=0;
bool NewBar= t0!=Time[0] && t0!=0;
t0=Time[0];
if(NewBar) {
if (Setka) LotStepPercent=0;
else LotStepPercent=-1;
if(!TradeOn) {
for(int i=OrdersTotal()-1; i>=0; i--)
if(OrderSelect(i,SELECT_BY_POS) && OrderSymbol()==_Symbol && OrderMagicNumber()==Magic)
bool Res=OrderClose(OrderTicket(),OrderLots(),
OrderType()==OP_BUY ? Bid : Ask,(int)MarketInfo(_Symbol,MODE_SPREAD));
return;
}
double Profit=0;
for(int i=0; i<OrdersTotal(); i++)
if(OrderSelect(i,SELECT_BY_POS) && OrderSymbol()==_Symbol && OrderMagicNumber()==Magic)
Profit+=OrderProfit();
if(RiskPercent>0 && Profit<=-RiskPercent*AccountBalance()/100) {
TradeOn=false;
Alert("Торговля остановлена");
return;
}
static bool CheckBuy=false, CheckSell=false, CheckCloseBuy=false, CheckCloseSell=false;
static bool Check=false;
CheckBuy=CheckSell=false;
Check=true;
int Totals[2]={0};
double Aver[2]={0},Vol[2]={0};
for(int i=0; i<OrdersTotal(); i++)
if(OrderSelect(i,SELECT_BY_POS) && OrderSymbol()==_Symbol && OrderMagicNumber()==Magic &&
OrderType()<=OP_SELL) {
Totals[OrderType()]++;
Vol[OrderType()]+=OrderLots();
Aver[OrderType()]+=OrderOpenPrice()*OrderLots();
}
Aver[OP_BUY]=Vol[OP_BUY]==0 ? 0 : Aver[OP_BUY]/Vol[OP_BUY];
Aver[OP_SELL]=Vol[OP_SELL]==0 ? 0 : Aver[OP_SELL]/Vol[OP_SELL];
if(OrderForBreakeven>0) {
if(Totals[OP_BUY]>=OrderForBreakeven && Bid>=Aver[OP_BUY]+BreakEven*_Point)
CheckCloseBuy=true;
if(Totals[OP_SELL]>=OrderForBreakeven && Ask<=Aver[OP_SELL]-BreakEven*_Point)
CheckCloseSell=true;
}
if(CheckCloseBuy)
CheckCloseBuy=!CloseAll(OP_BUY);
if(CheckCloseSell)
CheckCloseSell=!CloseAll(OP_SELL);
if(Check) {
if(MathAbs(Close[1]-Open[1])>Body*_Point) {
double Vol1,Vol2;
if(TikVolume) {
Vol1=(double)Volume[1];
Vol2=(double)Volume[2];
}
else {
if (CD_Premium)
{
Vol1=iCustom(_Symbol,PERIOD_CURRENT,"ClusterDelta_PremiumVolume_4.1.ex4",
Help_Url,Instrument,MetaTrader_GMT,Comment_History,Days_in_History,
Custom_Start_time,Custom_End_time,Current_Volume,Font_Size,0,1);
Vol2=iCustom(_Symbol,PERIOD_CURRENT,"ClusterDelta_PremiumVolume_4.1.ex4",
Help_Url,Instrument,MetaTrader_GMT,Comment_History,Days_in_History,
Custom_Start_time,Custom_End_time,Current_Volume,Font_Size,0,2);
}
else
{
Vol1=iCustom(_Symbol,PERIOD_CURRENT,"ClusterDelta_Volume_3.5.ex4","--- Futures Ticker or AUTO",Instrument,Update_C_D_Standart_sec,MetaTrader_GMT,0,1);
Vol2=iCustom(_Symbol,PERIOD_CURRENT,"ClusterDelta_Volume_3.5.ex4","--- Futures Ticker or AUTO",Instrument,Update_C_D_Standart_sec,MetaTrader_GMT,0,2);
}
}
if(Vol1>=MinVolume && (Vol2==0 || (Vol1-Vol2)/Vol2*100>VolumePercent))
{
sig=true;
}
Показано первые 50% кода (символов: 7123)
Введите ваш email и нажмите кнопку, чтобы перейти к оплате.