Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Больше советников
Одновременно можно загрузить только 5 советников.
Как написать "Если последняя сделка была выигрышной"
В советнике как написать "Если последняя сделка была выигрышной" (для данной пары) то ....
Спасибо за помощь.
Jo
о MarketInfo()
привет всем!
//
double A = MarketInfo("EURUSD",MODE_BID);
double B = MarketInfo("USDJPY",MODE_BID);
double C = MarketInfo("EURJPY",MODE_BID);
init()
{
A = MarketInfo("EURUSD",MODE_BID);
B = MarketInfo("USDJPY",MODE_BID);
C = MarketInfo("EURJPY",MODE_BID);
}
int start()
{
...
}
//
Почему эти коды не работают? Когда они выполняются, возникает очень много ошибок:
'MarketInfo' - ожидается инициализация
'A' - переменная не определена ...
..... и т.д.
Это сработало для меня
В советнике как написать "Если последняя сделка была выигрышной" (для этой пары), то ...
Спасибо за помощь.
Jodouble LotsOptimised()
{
double lots = InitialLots;//лоты по умолчанию 0.1 - ошибки не будет, если лоты не будут установлены другой частью кода
// int total = OrdersHistoryTotal();
for(int i=0;i<OrdersHistoryTotal();i++) // сканируем все закрытые / отмененные сделки
{
OrderSelect(i, SELECT_BY_POS, MODE_HISTORY );
if(OrderSymbol() == Symbol()&& OrderMagicNumber()==MagicNumber)
{
if(OrderProfit()<0)
{
lots = NormalizeDouble(OrderLots() * LotsFactor,2);
}
else
{
lots=InitialLots;
}
}
}
return(lots);
}
Я использовал это, чтобы проверить, была ли последняя закрытая сделка выигрышной или нет. Если нет, я мартингализировал лоты. Надеюсь, это поможет.
Привет всем
Я попытался создать советника и получил следующее сообщение об ошибке:
'\end_of_program' - ending bracket '}' expected C:\...\My_First_EA.mq4(96,1)
Я дважды щелкнул по ней, добрался до строки, затем проверил ее с открывающими и завершающими скобками перед ней, и все еще не знаю, где я допустил ошибку.
Это второй советник, который я пробовал, с тем же сообщением об ошибке, основанный на том же индикаторе.
Спасибо.Sendra, отправьте программу на мой адрес электронной почты в виде вложения, я посмотрю на нее и постараюсь исправить. Обычно проблема заключается в пропущенной скобке после оператора. К сожалению, это язык низкого уровня, и поскольку это базовый язык, он не может сказать вам, где именно ошибка, поэтому он по умолчанию выдает ошибку, которую показывает. Только опыт в кодировании поможет в устранении ошибок такого типа.
Дэйв
<<<
ddiebold7@aol.com
Ральф, ПОМОГИТЕ с логикой ежедневных закрытий
Здравствуйте, Ральф.
Возможно, если вы не возражаете, вы могли бы немного подсказать. Для меня это было немного сложной задачей!!! Я хочу определить некоторые условия для советника, чтобы определить, закрывать или нет открытую сделку. В качестве примера возьмем ордер на покупку (я знаю, что с ордером на продажу будет противоположная логика). Итак, у меня есть ордер на покупку, открытый в понедельник. Я хочу, чтобы советник посмотрел на дневное закрытие за следующие X дней. Если дневное закрытие в каждый из следующих X дней (допустим, 5 дней для примера) будет ниже цены открытия ордера, то я хочу, чтобы советник выполнил OrderClose для закрытия сделки. Я также подумал, что еще одна возможная часть этого условия, на которую советник должен обратить внимание, - это если дневное закрытие за каждый из следующих X дней было ниже, чем закрытие предыдущего дня. Кроме того, мой советник работает на часовом таймфрейме.
Надеюсь, я объяснил, чего я хочу достичь, достаточно ясно, чтобы вы поняли.
Заранее спасибо за помощь.
Помогите с кодированием, пожалуйста
Я не прошу кодирования советника, просто небольшая помощь в решении одной проблемы.
Я хотел бы закодировать следующее: если у меня есть открытый длинный ордер, я хочу иметь возможность вызвать самую высокую котировку, которую ордер видел с момента открытия этого конкретного длинного ордера. Очевидно, что при первом открытии ордера будет возвращена цена открытия. Если ордер увеличивается на 20 пунктов, возвращается цена OrderOpenPrice() + 20 пунктов. Если цена затем уменьшается на 10 пунктов, то возвращается цена OrderOpenPrice() + 20 пунктов. Я знаю, что это можно сделать в пределах определенного бара, используя OrderOpenPrice() + High[0], но когда формируется новый бар, High[0] становится High[1]. Я также буду использовать ту же логику в обратном порядке, чтобы вернуть самое низкое значение, которое видел конкретный короткий ордер. Когда ордер закроется, возвращаемые значения обнулятся.
Мне трудно разобраться в этом, может ли кто-нибудь помочь?
Спасибо!
Сохраните самое высокое значение котировки текущего бара в переменную. Каждый раз, когда вы получаете другую котировку, сравнивайте ее со значением переменной. Если новое значение выше, сохраните его в переменной. Если новое значение ниже, сохраните переменную без изменений.
if(variable < newquote)
переменная = newquote;
Надеюсь, это поможет!
Сохраните самое высокое значение котировки текущего бара в переменную. Каждый раз, когда вы получаете другую котировку, сравнивайте ее со значением переменной. Если новое значение выше, сохраните его в переменной. Если новое значение ниже, сохраните переменную.
if(variable < newquote)
переменная = новая кавычка;
Надеюсь, это поможет!Спасибо за помощь, но у меня есть один вопрос. Что происходит, когда текущий бар больше не является баром, на котором открылся ордер? Что если ордер открылся на баре 5 баров назад? Теперь я хочу получить самую высокую котировку за 5 баров, самую высокую котировку с момента открытия ордера. Будет ли это по-прежнему работать?
Спасибо