![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Я еще ничего не умею, и здесь я совсем запутался. И так все по порядку.
Решил научиться программировать на MQL4. Первый перл, который решил сваять скрипт на покупку с фиксированными TP и SL. Казалось, что проще?.. Выдает Ошибку 130 (Неправильные стопы).
Полазил, знатоки пишут есть брокеры (ДЦ), которые не дают ставить тейки и стопы одновременно с открытием ордера. Хорошо! Поставил нули. Ордер открылся, но соответственно без стопа и тейка.
И вопрос №2. Зачем проводить проверку 5-значный брокер или 4-значный, если В переменной Point хранится размер пункта текущего инструмента в валюте котировки. Насколько я понимаю строчка
вернет вполне корректное значение в независимости от брокера и торгового инструмента.Если вопросы глупые не судите строго, но посмеяться можно)))
Вот код:
Смотрите в своём коде!
Смените Bid на Ask!
Не double TP=Bid+TakeProfit*Point;
а double TP=Ask+TakeProfit*Point;
Я еще ничего не умею, и здесь я совсем запутался. И так все по порядку.
Решил научиться программировать на MQL4. Первый перл, который решил сваять скрипт на покупку с фиксированными TP и SL. Казалось, что проще?.. Выдает Ошибку 130 (Неправильные стопы).
Полазил, знатоки пишут есть брокеры (ДЦ), которые не дают ставить тейки и стопы одновременно с открытием ордера. Хорошо! Поставил нули. Ордер открылся, но соответственно без стопа и тейка.
И вопрос №2. Зачем проводить проверку 5-значный брокер или 4-значный, если В переменной Point хранится размер пункта текущего инструмента в валюте котировки. Насколько я понимаю строчка
вернет вполне корректное значение в независимости от брокера и торгового инструмента.Если вопросы глупые не судите строго, но посмеяться можно)))
Вот код:
1. Это совсем ничего не значит. Сервер брокера отличает команду советника или скрипта от ручной команды. Чуть выше вопроса, ты сам себе ответил на свой вопрос. Только не брокеры не дают, а тип счёта не позволяет.
2. Пункт это четвёртый знак после запятой, или второй в парах япошки. И чтобы понимать однозначно при любых котировках, приводят к привычному старорежимному пункту.
1. Это совсем ничего не значит. Сервер брокера отличает команду советника или скрипта от ручной команды. Чуть выше вопроса, ты сам себе ответил на свой вопрос. Только не брокеры не дают, а тип счёта не позволяет.
2. Пункт это четвёртый знак после запятой, или второй в парах япошки. И чтобы понимать однозначно при любых котировках, приводят к привычному старорежимному пункту.
1. Все таки различает! А я где то прочитал,что брокер не видит от кого пришел ордер (от робота или человека). Я так и подумал когда столкнулся с ошибкой 130. Но хотелось услышать подтверждения от знающих людей. Спасибо! А вот про тип счета я не совсем понял. Если не трудно, можно поподробнее, или ссылку полезную. Буду очень признателен.
2. Я знаю, что такое пункт. Я тут про другое. Переменная Point для пары EURUSD у 5-значного брокера равна 0,00001, у 4-значного равна 0,0001. У USDJPY соответственно на 2 нуля меньше. И я не понимаю зачем проводить проверку какой брокер 5-значный или 4-значный. Или Вы имеете ввиду, что бы для конечного пользователя было понятно, чтоб он менял параметры в глобальных переменных. Так сейчас практически во всех программах имеется оговорки на эту тему
borilunad:
Смените Bid на Ask!
1. Все таки различает! А я где то прочитал,что брокер не видит от кого пришел ордер (от робота или человека). Я так и подумал когда столкнулся с ошибкой 130. Но хотелось услышать подтверждения от знающих людей. Спасибо! А вот про тип счета я не совсем понял. Если не трудно, можно поподробнее, или ссылку полезную. Буду очень признателен.
2. Я знаю, что такое пункт. Я тут про другое. Переменная Point для пары EURUSD у 5-значного брокера равна 0,00001, у 4-значного равна 0,0001. У USDJPY соответственно на 2 нуля меньше. И я не понимаю зачем проводить проверку какой брокер 5-значный или 4-значный. Или Вы имеете ввиду, что бы для конечного пользователя было понятно, чтоб он менял параметры в глобальных переменных. Так сейчас практически во всех программах имеется оговорки на эту тему
Тогда огласи список знающих. Или наоборот, огласи список кому не стоит совать свой нос в твои вопросы.
Знающих - это я про Вас. И огромное СПАСИБО, что отвечаете и помогаете таким как я.
Аааа... То-есть я не правильно понял. Надо по этому вопросу собрать консилиум, так сказать...
Ну, что касается типов счетов, вся эта информация есть на сайтах ДЦ, я не буду переписывать оттуда.
Относительно значности котировок... Пятый знак это десятая доля пункта и чтобы не напрягаться и не менять в советниках размер ТП и СЛ а писать одинаково для любых котировок и ставят такую проверку. Т.е. если я хочу поставить ТП на уровне 20п то мне не надо уточнять какие котировки у ДЦ и если 5-ти значные то менять 20 на 200 это за меня сделает советник при инициализации и в переменную глобального уровня занесёт значение Point()*10 которая будет использоваться дальше в коде. Ладно-бы если только в двух местах поменять, а ведь встречаются стратегии где достаточно много расчётов в пунктах.
... а писать одинаково для любых котировок и ставят такую проверку. Т.е. если я хочу поставить ТП на уровне 20п то мне не надо уточнять какие котировки у ДЦ и если 5-ти значные то менять 20 на 200 ...
Все чЁтко встало у меня в мозгу! Если я вставлю проверку, то мне даже знать не надо сколько знаков после запятой у брокера. Программа сама все пересчитает. Удобно! Классно! Спасибо!
А насчет консилиума - это Вы напрасно... Не наш размерчик... СЪЕЗД !!!! )))
Ну тогда вот так проверку делаю я
Ну тогда вот так проверку делаю я
Напрягли!!! В хорошем смысле этого слова. Весь вечер искал, что значит ?: Догадывался, что это условное выражение типа if - else, но никак не мог найти описание. Хотел уже взвыть о помощи. Но на утро на свежую голову все очень быстро нашлось.
Если можно, еще маленькое объяснение, мне - дураку. Функция int OnInit() запускается при инициализации эксперта или индикатора. Значит для скрипта (как в моем случае) она не подходит? Я всю проверку ставлю в начале OnStart() и при расчетах TP и SL пользуюсь уже не _Point, а point ?