2021.05.28 09:41:37.876 Custom Indicator loading of Slow RSI (EURUSD,H1) failed [561]
2021.05.27 22:51:51.468 MQL5 Market failed download product 'Slow RSI' (www.mql5.com:443 send failed [426: ])
Достаточно ведь одного стопа к самому первому ордеру, который рукам открывается.
А я два месяца мучился с этими стопами для отложек
в настройках есть только лоси и язи для четырех отложек.
Но не вижу стопа и тейка для цены «0».
//+------------------------------------------------------------------+
//| BuySell61.mq4 |
//| Copyright 2021, AM2 |
//| http://www.forexsystems.biz |
//+------------------------------------------------------------------+
#property copyright "Copyright 2021, AM2"
#property link "http://www.forexsystems.biz"
#property version "1.00"
#property strict
//--- Inputs
extern double Lots = 0.1; // лот позы
extern double KLot = 2; // умножение лота
extern int Delta1 = 100; // расстояние от цены 1
extern int Delta2 = 200; // расстояние от цены 2
extern int Delta3 = 300; // расстояние от цены 3
extern int Delta4 = 400; // расстояние от цены 4
extern int StopLoss1 = 2000; // лось 1
extern int StopLoss2 = 2000; // лось 2
extern int StopLoss3 = 2000; // лось 3
extern int StopLoss4 = 2000; // лось 4
extern int TakeProfit1 = 200; // язь 1
extern int TakeProfit2 = 200; // язь 2
extern int TakeProfit3 = 200; // язь 3
extern int TakeProfit4 = 200; // язь 4
extern int ClosePro = 30; // процент
extern int Slip = 30; // реквот
extern int Magic = 123; // магик
//+------------------------------------------------------------------+
//| Expert initialization function |
//+------------------------------------------------------------------+
int OnInit()
{
//---
PutButton("B",20,120,"BUY LIMIT");
PutButton("S",20,80,"SELL LIMIT");
PutButton("C",20,40,"CLOSE");
//---
return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
//| Expert deinitialization function |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
{
ObjectDelete(0,"B");
ObjectDelete(0,"S");
ObjectDelete(0,"C");
}
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
void PutButton(string name,int x,int y,string text)
{
ObjectCreate(0,name,OBJ_BUTTON,0,0,0);
//--- установим координаты кнопки
ObjectSetInteger(0,name,OBJPROP_XDISTANCE,x);
ObjectSetInteger(0,name,OBJPROP_YDISTANCE,y);
//--- установим размер кнопки
ObjectSetInteger(0,name,OBJPROP_XSIZE,80);
ObjectSetInteger(0,name,OBJPROP_YSIZE,30);
//--- установим угол графика, относительно которого будут определяться координаты точки
ObjectSetInteger(0,name,OBJPROP_CORNER,2);
//--- установим текст
ObjectSetString(0,name,OBJPROP_TEXT,text);
//--- установим шрифт текста
ObjectSetString(0,name,OBJPROP_FONT,"Arial");
//--- установим размер шрифта
ObjectSetInteger(0,name,OBJPROP_FONTSIZE,9);
//--- установим цвет текста
ObjectSetInteger(0,name,OBJPROP_COLOR,Red);
//--- установим цвет фона
ObjectSetInteger(0,name,OBJPROP_BGCOLOR,White);
//--- установим цвет границы
ObjectSetInteger(0,name,OBJPROP_BORDER_COLOR,Blue);
//--- скроем (true) или отобразим (false) имя графического объекта в списке объектов
ObjectSetInteger(0,name,OBJPROP_HIDDEN,false);
//--- установим приоритет на получение события нажатия мыши на графике
ObjectSetInteger(0,name,OBJPROP_ZORDER,0);
}
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
void CloseAll(int ot=-1)
{
bool cl;
for(int i=OrdersTotal()-1; i>=0; i--)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
{
if(OrderSymbol()==Symbol() && OrderMagicNumber()==Magic)
{
if(OrderType()==0 && (ot==0 || ot==-1))
{
RefreshRates();
cl=OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Bid,_Digits),Slip,White);
}
if(OrderType()==1 && (ot==1 || ot==-1))
{
RefreshRates();
cl=OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Ask,_Digits),Slip,White);
}
}
}
}
}
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
double Pro()
{
double pro=(AccountEquity()-AccountBalance())/AccountBalance()*100;//(1100-1000)/1000
return(pro);
}
//+------------------------------------------------------------------+
//| Подсчет ордеров по типу |
//+------------------------------------------------------------------+
int CountOrders(int type=-1)
{
int count=0;
for(int i=OrdersTotal()-1; i>=0; i--)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
{
if(OrderSymbol()==Symbol() && OrderMagicNumber()==Magic)
{
if(OrderType()==type || (OrderType()>=0 && type==-1))
count++;
}
}
}
return(count);
}
//+------------------------------------------------------------------+
//| Лот |
//+------------------------------------------------------------------+
double Lot(int type)
{
double lots=Lots;
if(KLot>1)
lots=NormalizeDouble(Lots*MathPow(KLot,CountOrders(type)),2);
return(lots);
}
//+------------------------------------------------------------------+
//| Expert tick function |
//+------------------------------------------------------------------+
void OnTick()
{
int r=0;
if(Pro()<-ClosePro && ClosePro>0)
CloseAll();
if(ObjectGetInteger(0,"B",OBJPROP_STATE)==1)
{
r=OrderSend(NULL,2,Lot(2),NormalizeDouble(Ask-Delta1*_Point,_Digits),Slip,NormalizeDouble(Ask-Delta1*_Point-StopLoss1*_Point,_Digits),NormalizeDouble(Ask-Delta1*_Point+TakeProfit1*_Point,_Digits),"",Magic,0,Blue);
r=OrderSend(NULL,2,Lot(2),NormalizeDouble(Ask-Delta2*_Point,_Digits),Slip,NormalizeDouble(Ask-Delta2*_Point-StopLoss2*_Point,_Digits),NormalizeDouble(Ask-Delta2*_Point+TakeProfit2*_Point,_Digits),"",Magic,0,Blue);
r=OrderSend(NULL,2,Lot(2),NormalizeDouble(Ask-Delta3*_Point,_Digits),Slip,NormalizeDouble(Ask-Delta3*_Point-StopLoss3*_Point,_Digits),NormalizeDouble(Ask-Delta3*_Point+TakeProfit3*_Point,_Digits),"",Magic,0,Blue);
r=OrderSend(NULL,2,Lot(2),NormalizeDouble(Ask-Delta4*_Point,_Digits),Slip,NormalizeDouble(Ask-Delta4*_Point-StopLoss4*_Point,_Digits),NormalizeDouble(Ask-Delta1*_Point+TakeProfit4*_Point,_Digits),"",Magic,0,Blue);
ObjectSetInteger(0,"B",OBJPROP_STATE,0);
}
if(ObjectGetInteger(0,"S",OBJPROP_STATE)==1)
{
r=OrderSend(NULL,3,Lot(3),NormalizeDouble(Ask+Delta1*_Point,_Digits),Slip,NormalizeDouble(Ask+Delta1*_Point+StopLoss1*_Point,_Digits),NormalizeDouble(Ask+Delta1*_Point-TakeProfit1*_Point,_Digits),"",Magic,0,Red);
r=OrderSend(NULL,3,Lot(3),NormalizeDouble(Ask+Delta2*_Point,_Digits),Slip,NormalizeDouble(Ask+Delta2*_Point+StopLoss2*_Point,_Digits),NormalizeDouble(Ask+Delta2*_Point-TakeProfit2*_Point,_Digits),"",Magic,0,Red);
r=OrderSend(NULL,3,Lot(3),NormalizeDouble(Ask+Delta3*_Point,_Digits),Slip,NormalizeDouble(Ask+Delta3*_Point+StopLoss3*_Point,_Digits),NormalizeDouble(Ask+Delta3*_Point-TakeProfit3*_Point,_Digits),"",Magic,0,Red);
r=OrderSend(NULL,3,Lot(3),NormalizeDouble(Ask+Delta4*_Point,_Digits),Slip,NormalizeDouble(Ask+Delta4*_Point+StopLoss4*_Point,_Digits),NormalizeDouble(Ask+Delta4*_Point-TakeProfit4*_Point,_Digits),"",Magic,0,Red);
ObjectSetInteger(0,"S",OBJPROP_STATE,0);
}
if(ObjectGetInteger(0,"C",OBJPROP_STATE)==1)
{
CloseAll();
ObjectSetInteger(0,"C",OBJPROP_STATE,0);
}
Comment("\n Equity: ",Pro());
}
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
AM2