Может кто-нибудь выложить самый простой скрипт для расчета лота по классическому мартингейлу: если предыдущая сделка была закрыта с убытком - следующая открывается с двойным лотом. Сам написал так:
extern double Lot = 0.1; extern double MM_koef = 2; extern int magic = 56565; double Lots=Lot;
{ OrderSelect(OrdersHistoryTotal(), SELECT_BY_POS, MODE_HISTORY); //проверяем последнюю сделку из истории if( OrderMagicNumber() == magic && ( (OrderType() == OP_BUY && (OrderOpenPrice()-OrderClosePrice())<0) //для buy это означает убыток || (OrderType() == OP_SELL && (OrderOpenPrice()-OrderClosePrice())>0) //для sell это означает убыток ) ) Lots=OrderLots()*MM_koef;Print(Lots); } if (Lots<=0) Lots=Lot;
....OrderSend(Symbol(), OP_BUY, Lots, .......
авторасчет лота по мартину не работает, а принимается равным 0.1 почему-то? Подскажет может кто-нибудь
AdvoTM: если предыдущая сделка была закрыта с убытком - следующая открывается с двойным лотом.
вот под рукой что то похожее под Ваши задачи есть:
double history(){
int i;
//обьявляем необходимые нам переменные куда мы положим интересующие нас характеристики ордера double profit;
datetime time;
time = 0;
profit = 0;
for(i = OrdersHistoryTotal();i>=0;i--){// Перебираем все закрытые ордераif(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)){//если ордер с таким номером (i) в списке закрытых ордеров есть ( не путать с тикетом)if(OrderSymbol() == Symbol()){//если выбранный ордер был открыт по нашей валютной пареif(time<OrderCloseTime()){//(сравниваем его с хранящимся в переменной time)
time=OrderCloseTime();//если время закрытия ордера больше - ложим его в переменную
profit=OrderProfit();//и заодно запоминаем прибыль ордера
}
}
}
}
//по окончании этой процедуры в наших переменных будут сидет наибольшее время закрытия, и его профит. Или по нулям если история чистая.//теперь мы можем выставлять условия в зависимости от результата процедурыif(profit == 0 &&time == 0){//действия если история чистаяPrint("история чистая");
}
if(profit >= 0){//действия если последний ордер был прибыльным, или нулевымPrint("последний ордер был прибыльным, или нулевым");
}
if(profit < 0 ){//действия если последний ордер был убыточнымPrint("последний ордер был убыточным");
}
return(profit);// вернем в качестве результата функции значение прибыли последнего ордера из истории, так на всякий случай ;)
}
Скажите, пожалуйста, почему здесь https://www.mql5.com/ru/auth_login невозможна авторизация? Не удается вписать логин и пароль (курсор не мигает или вообще его нет).
yosuf: Скажите, пожалуйста, почему здесь https://www.mql5.com/ru/auth_login невозможна авторизация? Не удается вписать логин и пароль (курсор не мигает или вообще его нет).
Господа обьясните пожалуиста насчет просадки.. Ну максимальная просадка это понятно, а вот относительная ? это относительно к чему? и еще Абсолютная просадка.. она даже не в % указывается, что это?
А по какой причине в советнике при OrderModify иногда автоматически происходит модификация, а иногда выводится окно и надо нажать на кнопку, подтвердить (окно то что по F9 открывается в MT).
В коде просто строчка OrderModifу(......) и описаная выше логика точно не реализована.
У меня есть соображение что если не удается выполнить OrderModifу - ДЦ отправляет сигнал на открытие этого окна. Возможно?
Для авторизации и пользования сайтом MQL5.com необходимо разрешить использование файлов Сookie.
Пожалуйста, включите в вашем браузере данную настройку, иначе вы не сможете авторизоваться.
Вы вошли в аккаунт. Двухфакторная аутентификация отключена. Настройте её заново и отсканируйте новый QR-код или продолжите с отключённой двухфакторной аутентификацией.
Вадим, Вы можете кодировать на языке Java?
Может кто-нибудь выложить самый простой скрипт для расчета лота по классическому мартингейлу: если предыдущая сделка была закрыта с убытком - следующая открывается с двойным лотом. Сам написал так:
extern double Lot = 0.1; extern double MM_koef = 2; extern int magic = 56565;
double Lots=Lot;
{ OrderSelect(OrdersHistoryTotal(), SELECT_BY_POS, MODE_HISTORY); //проверяем последнюю сделку из истории
if( OrderMagicNumber() == magic
&& ( (OrderType() == OP_BUY && (OrderOpenPrice()-OrderClosePrice())<0) //для buy это означает убыток
|| (OrderType() == OP_SELL && (OrderOpenPrice()-OrderClosePrice())>0) //для sell это означает убыток
)
)
Lots=OrderLots()*MM_koef;Print(Lots);
}
if (Lots<=0) Lots=Lot;
....OrderSend(Symbol(), OP_BUY, Lots, .......
авторасчет лота по мартину не работает, а принимается равным 0.1 почему-то? Подскажет может кто-нибудь
вот под рукой что то похожее под Ваши задачи есть:
Скажите, пожалуйста, почему здесь https://www.mql5.com/ru/auth_login невозможна авторизация? Не удается вписать логин и пароль (курсор не мигает или вообще его нет).
Это что-то у Вас не так.
Попробовал. Вошел без проблем.
Это что-то у Вас не так.
Попробовал. Вошел без проблем.
Что мне делать, вновь зарегистрироваться? Или куда нужно обращаться за помощью?
Я бы сначала попробовал перезапустить компьютер..))
Перезапуск не помог
А по какой причине в советнике при OrderModify иногда автоматически происходит модификация, а иногда выводится окно и надо нажать на кнопку, подтвердить (окно то что по F9 открывается в MT).
В коде просто строчка OrderModifу(......) и описаная выше логика точно не реализована.
У меня есть соображение что если не удается выполнить OrderModifу - ДЦ отправляет сигнал на открытие этого окна. Возможно?