extern double MaxDD = 30;
extern double MM = 30;
extern string PipeName = "SA_600";
extern string ServerPairName = "";
extern double BidCorrection = 0;
extern double AskCorrection = 0;
extern int ActionPips = 2;
extern int TargetPips = 5;
extern int StopPips = 15;
extern int VirtualStops = false;
extern int ConfirmMS = 20;
extern int SleepMS = 20;
extern int Slippage = 1;
extern int Magic = 2013;
#define PIPE_BASE_NAME "\\\\.\\pipe\\mt4-" // MUST tally with client code
#define ERROR_MORE_DATA 234
#import "kernel32.dll"
int CallNamedPipeW(string pipeName, uchar& outBuffer[], int outBufferSz, uchar& inBuffer[], int inBufferSz, int& bytesRead[], int timeOut);
#import
datetime StartTime=0;
double MinLots=0.1;
double MaxLots=0.1;
double LotStep=0.1;
double MyPoint=0.0001;
string MasterPair="";
double MaxBalance=0;
double TotalPips=0;
int TotalTrades=0;
double EntrySlippage=0;
int EntryMS=0;
int OpenErrors=0;
int LastTicket=0;
double MasterBid=0;
double MasterAsk=0;
string LastQ="";
int init()
{
// код доступен только после оплаты
}
int deinit()
{
Comment("");
return(0);
}
int start()
{
// код доступен только после оплаты
}
double CurrentPips=0;
string sInfo="";
if(IsStopped() || !IsConnected())
return(0);
if(Digits<=3)
MyPoint=0.01;
MinLots=MarketInfo(Symbol(),MODE_MINLOT);
MaxLots=MarketInfo(Symbol(),MODE_MAXLOT);
LotStep=MarketInfo(Symbol(),MODE_LOTSTEP);
if(StartTime<=0)
{
MaxBalance=AccountBalance();
StartTime=TimeLocal();
TotalPips=0;
EntrySlippage=0;
TotalTrades=0;
EntryMS=0;
LastTicket=0;
OpenErrors=0;
}
while(!IsStopped())
{
RefreshRates();
double dBid=Bid;
double dAsk=Ask;
int OldTicket=LastTicket;
LastTicket=0;
for(int j=OrdersTotal()-1; j>=0; j--)
if(OrderSelect(j, SELECT_BY_POS, MODE_TRADES))
if((OrderSymbol() == Symbol()) && (OrderMagicNumber() == Magic))
{
if(OrderType()==OP_BUY)
CurrentPips=dBid-OrderOpenPrice();
else
CurrentPips=OrderOpenPrice()-dAsk;
CurrentPips=CurrentPips/MyPoint;
LastTicket=OrderTicket();
if((CurrentPips>=TargetPips || CurrentPips<=-StopPips) && IsTradeContextBusy()==false)
{
if(OrderType()==OP_BUY)
OrderClose(OrderTicket(), OrderLots(), NormalizeDouble(dBid,Digits), Slippage*MyPoint/Point, Blue);
else
OrderClose(OrderTicket(), OrderLots(), NormalizeDouble(dAsk,Digits), Slippage*MyPoint/Point, Red);
}
else
if(VirtualStops==false && OrderStopLoss()<Point && IsTradeContextBusy()==false)
{
double MinDistance=MarketInfo(Symbol(),MODE_STOPLEVEL)*Point+MyPoint;
if(OrderType()==OP_BUY)
OrderModify(OrderTicket(),OrderOpenPrice()
,MathMin(OrderOpenPrice()-StopPips*MyPoint,dBid-MinDistance)
,MathMax(OrderOpenPrice()+TargetPips*MyPoint,dAsk+MinDistance),0);
else
OrderModify(OrderTicket(),OrderOpenPrice()
,MathMax(OrderOpenPrice()+StopPips*MyPoint,dAsk+MinDistance)
,MathMin(OrderOpenPrice()-TargetPips*MyPoint,dBid-MinDistance),0);
}
}
if(LastTicket==0 && OldTicket>0)
if(OrderSelect(OldTicket, SELECT_BY_TICKET, MODE_HISTORY))
{
if(OrderType()==OP_BUY)
TotalPips=TotalPips+(OrderClosePrice()-OrderOpenPrice())/MyPoint;
else
TotalPips=TotalPips+(OrderOpenPrice()-OrderClosePrice())/MyPoint;
}
MaxBalance=MathMax(MaxBalance,AccountBalance());
if(AccountBalance()<=0)
break;
sInfo="";
CheckMaster();
if(MaxDD<=100*(MaxBalance-AccountBalance())/MaxBalance)
sInfo=sInfo+"\nMaximum Drawdawn Reached !!!";
else
if(MasterBid>=Point && MasterAsk>=Point)
sInfo=sInfo+"\nBuy/Sell Levels: "+DoubleToStr((MasterBid-dAsk)/MyPoint-ActionPips,1)+" / "+DoubleToStr((dBid-Показано первые 50% кода (символов: 6497)
Введите ваш email и нажмите кнопку, чтобы перейти к оплате.