![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Попробуйте использовать NormalizeDouble(price,Digits). Иногда цена в metatrader не 1.2000, а 1.20020031023012 и остальные цифры являются проблемой для metatrader при размещении отложенного ордера. Используйте NormalizeDouble и все будет в порядке
Большое спасибо Калензо, теперь все работает.
Определить торговые дни
Удалено
Решение найдено!
Привет кодеры
Я пытаюсь вставить в свой советник функцию для выбора торговых дней.
Функция для торговых часов работает хорошо.
Для торговых часов я использую следующее:
extern string TradingHours = "TRADING HOURS";
extern bool UseHourTrade = True;
extern int FromHourTrade = 8;
extern int ToHourTrade = 18;
и позже после запуска int:
if (UseHourTrade){
if (!(Hour()>=FromHourTrade && Hour()<=ToHourTrade)) {
Comment("Время для торговли еще не наступило!");
return(0);
Но что нужно для выбора торговых дней?
Когда я определяю экстерн следующим образом:
extern string TradingDays = "Торговые дни";
extern bool UseDayTrade = True;
extern int FromDayTrade = DayOfWeek;
extern int ToDayTrade = DayOfWeek;
тогда я имею следующие два сообщения:
'DayOfWeek'-variable expected
что делать?
Кто-нибудь может мне помочь?
Спасибо за любую помощь
ГУРУ!!! Пожалуйста, помогите
Nevermind.....
Пожалуйста, помогите всем
у меня возникла проблема, как сделать только 1 открытую позицию и 2 отложенные.
скажем, Buy и Buystop, Sellstop.
У меня была информация от кого-то в mql4, он использовал :
if(buystoporder>0 && sellstoporder>0) return(0);
а до этого он использовал switch(OrderType()).
Я в замешательстве, где я должен изменить код?
Я закончил в buystop и sellstop открываются несколько раз, когда я меняю код, в то время как если нет, он ждет, пока один из них не будет триггерирован, достигнет их SL или TP, а затем делает новые 2 отложенных.
Моя цель - 1 открытый и 2 отложенных, поэтому, когда открытые достигнут SL или TP, один из отложенных будет удален, один не удален будет удален. и сделать еще 2 отложенных.
И можно ли в опции switch() поставить магическое число?
Большое спасибо за помощь.
Как легко проверить, пересеклись ли 2 скользящие средние в течение 5 баров до текущего бара? Может ли кто-нибудь помочь мне с этим?
Дэйв
-OR-
Как сформулировать 5 условных утверждений? Если все 5 приемлемы, то указывается значение buyvalue=1.
Я не знаю, будет ли это работать ниже(? ): Может ли кто-нибудь прокомментировать это, будет ли это работать, если нет, то как это должно быть указано?
if(Condition1)
if(Condition2)
если(Условие3)
if(Condiition4)
if(Condition5)
{
buyvalue=1;
}
Дэйв
if(Condition2)
if(Condition3)
if(Condiition4)
if(Condition5)
{
buyvalue=1;
}
Это самый экономичный и быстрый способ написания многоусловных тестов.
Самый быстрый, потому что если условие1 не выполнено, то условие 2, 3, ... не оценивается, чего не произойдет, если между ними поставить оператор "&&".
Поэтому начните с наиболее вероятного нечастого условия.
Так что это, несомненно, сработает.
Так как вы часто спрашиваете, будет ли что-то работать, лучше всего попробовать, это хороший способ научиться.
Будьте здоровы.
Как легко проверить, пересекались ли 2 скользящие средние в течение 5 баров до текущего бара? Кто-нибудь может помочь мне с этим? Дэйв
ma1_0 = iMA(....,0);
ma2_0 = iMA(....,0);
ma1_5 = iMA(....,5);
ma2_5 = iMA(....,5);
if((ma1_0 - ma2_0) * (ma1_5 - ma2_5) < 0) cross = true;Как мне...
Здравствуйте,
Пожалуйста, не могли бы вы показать мне, если можно, как я могу сказать:...
"если предыдущая позиция закрылась на свече "0" или свече "1", то не открывать другую позицию на этой же свече." или, даже если свеча "0" удовлетворяет необходимым условиям для открытия другой позиции... если предыдущая позиция закрылась на этой свече, то запретить ей открывать другую позицию, подождать, пока условия снова станут правильными.
Я могу сказать это на английском, но я все еще слишком новичок в mql4.
спасибо
amatrader
Вы можете использовать следующий фрагмент кода:
for ( int i = OrdersHistoryTotal() - 1; i >= 0;i-- ) {
if ( ! OrderSelect( i, SELECT_BY_POS, MODE_HISTORY ) ) continue;
if ( OrderCloseTime() >= Time[ 1 ] ) {
last_order_closed_rather_recently = true;
break;
}
}
[/PHP]
after which you have the bool variable "last_order_closed_rather_recently" telling whether there was an order closed after the opening of bar 1. Then somewhere you'd have:
[PHP]if ( last_order_closed_rather_recently ) return( 0 );перед входом в новую сделку.
Спасибо, сэр, очень признателен.