Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Вы действительно звезда. Я люблю торговать, но без вашей помощи это было бы невозможно. Еще раз спасибо
Привет,
Не мог бы кто-нибудь помочь мне с моей функцией LotsizeCalc().
Я хотел бы умножить свой лот на 'MartingaleAmount', если моя последняя сделка была проигрышной. Если моя последняя сделка была выигрышной, я хотел бы использовать "нормальный" размер лота. К сожалению, при бэктесте советника я получаю ошибку 4051 из журнала.
Это как-то связано с размером лота, потому что советник работает, когда я пытаюсь запустить его без функции "LotsizeCalc()".
Кто-нибудь знает, почему моя функция определения размера лота не работает?
Заранее спасибо,
Тьерри
extern int MaximumTrades = 10; extern double StopLoss=25; extern double TakeProfit=50; extern double MartingaleAmount = 1.5; input double LotSize=0.1; int magic; double pips; int tradeNumber; string ScreenComment; double martinlot; double martinsize;
[/PHP]
Тьерри
Вы можете использовать эту функцию, чтобы узнать, был ли последний закрытый ордер закрыт с прибылью или убытком:
[PHP]double lastOrderProfit(int magicNumber=0)
{
datetime lastTime = 0;
double lastProfit = 0;
for(int i=OrdersHistoryTotal()-1; i>=0; i--)
{
if (OrderSelect(i,SELECT_BY_POS, MODE_HISTORY)==false) break;
if (magicNumber!=0)
if (OrderMagicNumber() != magicNumber) continue;
if (OrderSymbol() != Symbol()) continue;
if (OrderCloseTime() <= lastTime) continue;
lastTime = OrderCloseTime();
lastProfit = OrderProfit()+OrderSwap()+OrderCommission();
}
return(lastProfit);
}
Просто проверьте результат функции lastOrderProfit(), и если он < 0, то примените ваше правило мартингейла.
Привет, Младен! Снова я...
Как можно использовать линии из этого индикатора в советнике, использующем iCustom, так как, похоже, нет никаких буферов, установленных для этих линий?
Спасибо
Привет, Младен! Я снова...
Как можно использовать линии этого индикатора в советнике, использующем iCustom, поскольку для этих линий, похоже, не установлены буферы?
СпасибоЭто объекты.
Вы можете получить доступ к объектам по имени (вы должны знать точное имя объекта, но индикатор должен быть активен на графике и эти объекты должны быть нарисованы на графике).
Это объекты. Вы можете обращаться к объектам по имени (вы должны знать точное имя объекта, но индикатор должен быть активен на графике и эти объекты должны быть нарисованы на графике).
Отлично. Так как же мне вызвать индикатор из советника? С помощью чего-то другого, кроме iCustom, или я все неправильно понял... Спасибо mladen
Отлично. Как же мне вызвать индикатор из советника? С помощью чего-то другого, кроме iCustom, или я что-то напутал... Спасибо mladen
Этот индикатор просто рисует уровни на уровне 0,20,50,80 пунктов каждого отрезка в 100 пунктов. Самый простой способ - проверить, пересекаются ли эти уровни вашим советником.
Если вы попробуете использовать названия объектов (и их цены, вы не сможете узнать точные названия линий, поскольку они зависят от самого высокого максимума и самого низкого минимума - они являются предметом изменений. Используйте режим, описанный выше
Этот индикатор просто рисует уровни на 0,20,50,80 пипсах каждого отрезка в 100 пипсов. Самый простой способ - проверить, пересекаются ли эти уровни из вашего советника. Если вы попробуете использовать названия объектов (и их цены, вы не сможете узнать точные названия линий, поскольку они зависят от самого высокого максимума и самого низкого минимума - они являются предметом изменений. Используйте режим, описанный выше
Не могли бы вы привести пример, как это сделать... Извините, что так много спрашиваю, просто я только начинаю кодить и еще не разобрался, как проверить, пересекаются ли эти уровни в условии для покупки или продажи.
Не могли бы вы привести пример, как это сделать... Извините, что так много спрашиваю, я только начинаю кодить и еще не разобрался, как проверить пересечение этих уровней в условии на покупку или продажу.
Джейсон2005
У вас есть код, как это делается в индикаторе, который вы прикрепили.
Jason2005 У вас есть код, как это делается в индикаторе, который вы прикрепили
Тогда это будет так?
Тьерри
Вы можете использовать эту функцию, чтобы узнать, был ли последний закрытый ордер закрыт с прибылью или убытком:
{
datetime lastTime = 0;
double lastProfit = 0;
for(int i=OrdersHistoryTotal()-1; i>=0; i--)
{
if (OrderSelect(i,SELECT_BY_POS, MODE_HISTORY)==false) break;
if (magicNumber!=0)
if (OrderMagicNumber() != magicNumber) continue;
if (OrderSymbol() != Symbol()) continue;
if (OrderCloseTime() <= lastTime) continue;
lastTime = OrderCloseTime();
lastProfit = OrderProfit()+OrderSwap()+OrderCommission();
}
return(lastProfit);
}
Привет, Младен,
Спасибо за ваш ответ.
Функция lastorderprofit не нужна, потому что моя функция lastTradeTicket() делает ту же работу.
Не могли бы вы взглянуть на мой советник?
Я не прошу вас редактировать код, но я буду очень благодарен, если вы подскажете мне, что я сделал неправильно.
Заранее спасибо,
Тьерри
53_martingale.mq4