Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Функция CrossPointOfSections().
Эта функция вычисляет координаты точки пересечения двух отрезков. Каждый отрезок задаётся парой координат своих точек. В функцию в качестве параметров передаются три массива:
Скрипт для тестирования.
Добрый день. Вопрос по функциям, возвращающим флаг закрытия последней позиции по тейку или стоплоссу.
'Полезные функции от KimIV'
Функция isCloseLastPosByTake().
Эта функция возвращает флаг закрытия последней позиции по тейку. Флаг поднят - True - сработал TakeProfit. Флаг опущен - False - позиция была закрыта по другой причине
//---------------------------------------------------------------
Уже ставил вчера вопрос на общем форуме. Но ответа не нашлось пока.
В МОЕМ советнике 3-х ступенчатый мартингейл. Каждая ступень (позиция) имеет свой магик (1,2,3).
Позиции закрываются по сигналам и/или по стопам..
Предусмотрено, также, такое закрытие:
Получается, что мой советник работает нормально до тех пор, пока последняя (самая большая позиция) ступень мартигейла - не закроется по тейкпрофиту!
После чего, когда открывается очередная первая позиция (магик-1), то она сразу же закрывается, т.к. флаг функции Функции isCloseLastPosByTake() остался равным единице (1) !
И так до бесконечности. Открывается и закрывается.
Более того! Терминал этот флаг запоминает и даже новые удаление/установка советника не помогает (пока не поменяешь магики).
Нужно неким образом обнулить функцию isCloseLastPosByTake() после закрытия всех позиций.
Я уже мозги наизнанку вывернул. Никак не получается!
Игорь !, или кто-ниб.(кто сможет), пож. подскажите, как это сделать и можно ли это сделать вообще ?
Вроде бы, нашелся ответ на мой вопрос. Кому интересно, - вот здесь -
'Вопрос к знатокам'
Примеры использования функции ModifyOrder().
Самыми первыми я решил дать примеры, о которых меня уже спрашивали неоднократно. Это открытие позиций в условиях рыночного исполнения торговых заявок Market Watch. Это когда нельзя одновременно отдать приказ на открытие позиции по рыночной цене и прикрепить к ней отложенный ордер. Такое открытие в условиях Market Watch нужно выполнять в два этапа: сначала открывать позицию, а потом прикреплять к ней отложенные ордера, то есть устанавливать ценовые уровни StopLoss и TakeProfit.
1. Купить 0.1 лота текущего инструмента и установить стоп 30 пунктов
2. Продать 0.15 лота текущего инструмента и установить SL=45, TP=99
В прицепе работающий скрипт с примерами.
До тех пор, пока я не вставила в мой советник магик !
Модифицируются все позиции нормально. Однако -
Непонятно почему, но функция OpenPosition() - словно не видит магика и продолжает бесконечно открывать позиции одну, за другой на каждом баре. Я уже убрала всё лишнее (думала - моя ошибка в коде).
И вставила в коммент число позиций. Бесполезно. При очевидном наличии позиций - коммент выводит нуль:
Не могу разобраться, почему функция не видит магика! Вот код:
В аттаче исходный файл этого кода. Пож. подскажите, где я сделала ошибку и почему советник не видит магик?
Да, благодарю всех (tmp.0 & Roger)! Исправила и всё заработало так, как и должно работать.
Виновата моя невнимательность. А вовсе не функция - OpenPosition()
Игроь, подскажите!
При использовании OrderCloseBuy - OrderCloseSell встроенный язык МКюэЛь и компилятор требуют два параметра функции (тикеты ордеров - бай и селл). Один-то тикет открытого ордера есть, а как задать второй? Или я что-то не понял - в самоучителе языка ничего не написано про эту функцию и нет примера.
Заранее спасибо!
А вот ещё вопрос Игорю.
Создали ли отдельную пользовательскую (или другую) функцию для переворота позиции бай-на-селл и наоборот, без обычных ОрдерКлоз - ОрдерСенд?