Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Помогите плиззз.Как задать в роботе размер лота,равным проценту от депозита?
1. Определяемся с депозитом: баланс, эквити, свободные средства, соответственно функции для их определения AccountBalance(), AccountEquity(), AccountFreeMargin(). Скорее подойдет AccountFreeMargin().
2. Рассчитываем: lots=AccountFreeMargin()/1000.0*(Risk/100.0); // Risk - собственно параметр в процентах
3. Нормализуем: lots=NormalizeDouble(lots,n); // n - количество знаков после запятой у лота. Есть и более универсальный метод нормализации лота, но это самый простой, для наглядности.
Это самый просто метод расчета лота.
Еще можно с учетом залоговых требований. Например, если плечо 200, то с депозитом 1000 можно открыть 1 лот. Если же плечо 100, то можно открыть только 0.7. Если с учетом залоговых требований (плеча), то с плечом 200 лот 1 будет означать 100%, а с плечом 100 - 0.7 лотов будет соответствовать 100%. Кому-то нравится так, изредка, но в основном нет. Средства необходимые для открытия 1 лота определяются функцией MarketInfo(Symbol(),MODE_MARGINREQUIRED); Значит делим средства на значение этой функции и узнаем сколько лотов всего можно открыть - это 100%, от него отсчитываем нужный процент. Не забываем нормализовать.
Помогите плиззз.Как задать в роботе размер лота,равным проценту от депозита?
немного отвлекаясь, поучительная задачка :
- имеется советник дающий 55% успешных сделок при фиксированных небольших TP=SL
- через сколько сделок депо удвоится если входить по 1% от депо?
- как изменится депо через 100 сделок ??
И снова здравствуйте.Проблема с определением лота существует.Вот такой код:
bool ModLots()
{
if(OrdersHistoryTotal()==0)
{
double FreeMarg =AccountFreeMargin();
double One_Lot =MarketInfo(NULL,MODE_MARGINREQUIRED);
double Step =MarketInfo(NULL,MODE_LOTSTEP);
double Min_Lot =MarketInfo(NULL,MODE_MINLOT);
double Max_Lot =MarketInfo(NULL,MODE_MAXLOT);
double lot =MathFloor(FreeMarg*Risk/100/One_Lot/Step)*Step;
if(lot<Min_Lot) Lot=Min_Lot;
if(lot>Max_Lot) Lot=Max_Lot;
}
return(true);
}
Все остальные функции советника работают.Компилятор не ругается, при отладке Лот дает 0.0 ,в тестере выскакивает:" invalid lots amount for OrderSend function ".Подскажите где проблема?Голову уже сломал,это уже последний вариант кода определения лота,и все не работает.
немного отвлекаясь, поучительная задачка :
- имеется советник дающий 55% успешных сделок при фиксированных небольших TP=SL
- через сколько сделок депо удвоится если входить по 1% от депо?
- как изменится депо через 100 сделок ??
Нет такого понятия депо. Есть баланс и средства )) Надо уточнить понятия.
И определить, сколько позиций разрешено открывать одновременно.
return(true);
Вот так вот правильно.Работет.Но в тестере ошибка 134.Не пойму как исправить.На евро-долларе при 1000 в кармане выдает 25.0 лотов,хотя на калькуляторе получается 0.25,как и нужно.Где косяк,как получить правильное значение в советнике???
Нет такого понятия депо. Есть баланс и средства )) Надо уточнить понятия.
И определить, сколько позиций разрешено открывать одновременно.
от AccountBalance() конечно..Ещё можно помянуть что спред учтён в отношении SL=TP.
задача элементарная - не стоит проявляться в критике постановки :-) EA дожидается ему ведомых условий и открывает ордер по инструменту и получает или +-сколько-то пунктов. Причём + с большей вероятностью. И снова начинает ждать неких условий.
от AccountBalance() конечно..Ещё можно помянуть что спред учтён в отношении SL=TP.
задача элементарная - не стоит проявляться в критике постановки :-) EA дожидается ему ведомых условий и открывает ордер по инструменту и получает или +-сколько-то пунктов. Причём + с большей вероятностью. И снова начинает ждать неких условий.
Задачу по программированию всегда надо описывать четко и однозначно, не должно возникать двояких толкований. Вот девушке по ушам ездить - тут как раз все наоборот, должно быть заложено несколько скрытых вариантов, она сама интуитивно выберет нужный ))