Если Вы хотите заказать советник или индикатор, то публикуйте в эту группу тех. задание. Если Ваш заказ не очень сложный, то велика вероятность, что Вам его смогут сделать даже бесплатно
Программистам MQL: подпишитесь на группу, чтобы получать уведомления о заказах.
[21:02]Erikson: Подскажите пожалуйста! Возможно ли по готовому файлу эксперта (файл ex4) восстановить исходник?
[09:07]Erikson: Не знаю кому написать, поэтому пишу сюда. Пришло сообщение в личку, но при переходе на страницу «Личные сообщения» на странице указано что нет доступа. Кто подскажет с чем это связано?
[16:48]optinskijj: Всех с наступающим Новым годом. вопрос -счёт можно добавить на свою страничку или уже отменили? пробовал и демо и реальный МТ4 -не зашло )
[12:49]Dmitriyya: Подскажите, смотрю советников в файлах, не понимаю что значит трал? Это трейлинг-стоп, но ведь вроде он не работает? Его значение должно быть меньше стопа, верно? Но при этом все советники просто выставляют стоп сразу и фиксируют его. Или я чего-то не понимаю?
Комментарии (7)
34 AM2 Сообщений: 15888 - Андрей
//| Proboy_High_Low.mq4|
//| Copyright 2021 |
//| www.forexsystems.biz |
//+------------------------------------------------------------------+
#property copyright «Copyright 2021»
#property link «www.forexsystems.biz»
#property version «1.00»
#property strict
//--- Inputs
extern double Lots = 0.1; // лот
extern double Risk = 0; // риск
extern int Slip = 30; // реквот
extern int Magic = 123; // магик
extern string Comm = ""; // коммент
//+------------------------------------------------------------------+
//| Expert initialization function |
//+------------------------------------------------------------------+
int OnInit()
{
//---
Comment("");
//---
return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
//| Expert deinitialization function |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
{
Comment("");
}
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
void PutOrder(int type,double price)
{
int r=0;
color clr=Green;
double sl=0,tp=0;
if(type==1 || type==3 || type==5)
{
clr=Red;
sl=NormalizeDouble(High[1]+(Ask-Bid),Digits);
tp=NormalizeDouble(Bid-(High[0]-Low[1]),Digits);
}
if(type==0 || type==2 || type==4)
{
clr=Blue;
sl=NormalizeDouble(Low[1]-(Ask-Bid),Digits);
tp=NormalizeDouble(Ask+(High[1]-Low[0]),Digits);
}
for(int k=1; k<=10; k++)
{
r=OrderSend(NULL,type,Lot(),NormalizeDouble(price,Digits),Slip,sl,tp,Comm,Magic,0,clr);
if(r>0)
{
Print(«Order is placed successfully: „+“ OOP: »,price," LOT: ",Lot());
break;
}
Sleep(3000);
}
return;
}
//+------------------------------------------------------------------+
//| расчет лота |
//+------------------------------------------------------------------+
double Lot()
{
double lot=Lots;
if(Lots==0) lot=AccountBalance()*Risk/100000;
return(lot);
}
//+------------------------------------------------------------------+
//| Подсчет ордеров по типу |
//+------------------------------------------------------------------+
int CountOrders(int type)
{
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)
count++;
}
}
}
return(count);
}
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
bool FindLastTimeOrder()
{
for(int i=0; i<OrdersHistoryTotal(); i++)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY))
{
if(OrderSymbol()==Symbol() && OrderType()<2 && OrderMagicNumber()==Magic)
{
if(OrderOpenTime()>=Time[0])
{
return(false);
}
}
}
}
return(true);
}
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
double signal()
{
double sig=3;
if(Close[1]>Open[1] && Bid>=High[1])
{
sig=0;
}
if(Close[1]<Open[1] && Ask<=Low[1])
{
sig=1;
}
return(sig);
}
//+------------------------------------------------------------------+
//| Expert tick function |
//+------------------------------------------------------------------+
void OnTick()
{
if(FindLastTimeOrder())
{
if(CountOrders(0)<1 && signal()==0)
{
PutOrder(0,Ask);
}
if(CountOrders(1)<1 && signal()==1)
{
PutOrder(1,Bid);
}
}
}
//+------------------------------------------------------------------+
7 droba Автор Сообщений: 217 - Droba
34 AM2 Сообщений: 15888 - Андрей
Для наглядности подправил немного код, ТР и SL сделал по 300 пипсов.
После SL риск не увеличился.
7 droba Автор Сообщений: 217 - Droba
13 verta81 Сообщений: 356
7 droba Автор Сообщений: 217 - Droba
7 droba Автор Сообщений: 217 - Droba
Зарегистрируйтесь или авторизуйтесь, чтобы оставить комментарий