Я про это: ".....Ты подумай почему я так быстро с темы съезжаю.", а не про то.:laugh:
Чё мне тут думать?!! Про твои съезды с темы.
Не врубаешься, извини братуха, не ко мне.:embrace:
Я про это: ".....Ты подумай почему я так быстро с темы съезжаю.", а не про то.:laugh:
Чё мне тут думать?!! Про твои съезды с темы.
Ну бывай, счастливой поездки.:laugh:Не врубаешься, извини братуха, не ко мне.:embrace:
Кто-нибудь, помогите вставить в советник время торговли в часах, например с 8 утра до 20 вечера.
в mql4 особо не шарю, можно подробный код.
всем привет. Собираю очень интересные идеи алгоритма восстановления закрытых ордеров по ТП/СЛ.
Сова уже такая есть в наличии, прикрепляю к сообщению..
Этот сов отлично справляется с моей задачей.
Как только закрывается любой ордер по тп или сл, сов мгновенно, во время закрытия ставит отложку с тем же лотом, по той же цене и с теми же тп/сл..
Но! Если цена скользнула и ордер закрылся не по тп/сл, а чуть выше/ниже.. сов теряет этот ордер..
Посоветуйте! Что можно с этим сделать! Нужен четкий алгоритм восстановления всех-любых ордеров, которые закрываются.
Может есть возможность внести другой алгоритм.. например, восстанавливать тогда абсолютно все закрытые ордера из истории? Посоветуйте, кто, чем может... спасибо!
А чем тебе не понравился мой совет?RoboMaks!
И все же, посмотри сову воскрешения закрытых ордеров.
Можно реализовать в коде восстанавливать все закрытые ордера, абсолютно все по их ценам открытия, с теми же лотами и теми же тп/сл ????
Неважно как ордер закрылся, скользнула шпиля, прочее.. главное закрылся, значит нужно его восскрешить!
Закрыли руками открытый - всеравно восстановить!!!
Кроме отложек! Они мешать будут, в смысле, если отложку удалили (несработавшую-любую) их не хотелось бы воскрешать))) Реально???? Будут погрешности???
Попробуй сделать не точное совпадение цены закрытия и тейка\стопа, а разницу с допустимым диапазоном.
Или при несовпадении этих цен прочти комментарий к ордеру и найди там [tp] или [sl] если есть то ордер нужный.
А чем тебе не понравился мой совет?
Чуть посложней вариант, тикеты всех открытых ордеров заноси в массив и перебирая его проверяй на OrderCloseTime() > 0 так легко определяется закрыт-ли ордер и по тейку или стопу, или даже если руками закрыт.
В выходной посмотрю в другом компе, может там есть такой кусок кода, кажется писал кому-то.
Ну, я вспомнил где и кому писал похожий код. Вот здесь http://forexsystemsru.com/skripty/65219-poisk-skriptov-35.html#post1052021 и по твоей просьбе правил.мне любой вариант нужен, безотказно рабочий. Восстанавливать закрытые позы. Этим алгоритмом и скальпы и пипсотню можно снимать, и любую сетку руками поставить как нужно.. дальше не трудно догадаться)
А по времени запуска бота можно приспособить? В смысле при запуске совы, - не восстанавливать те ордера которые уже закрыты в истории до начала работы совы, а мониторить только те которые начнут закрываться.. но вот если инет отрубится.. или связь с серваком пропадет.. да лучше все ордера воскрешать! И не париться! По тп/сл закрылся или руками закрыт, этот алгоритм правильней..
А я Алексей программирование это не могу освоить, видимо не каждому это дано. Если бы я только это умел, я бы жил в этих ветках помогая другим
когда я пытаюсь изучить mql4, я примерно выгляжу вот так:
А чем тебе не понравился мой совет?
...Или при несовпадении этих цен прочти комментарий к ордеру и найди там [tp] или [sl] если есть то ордер нужный.
Совершенно верно. Потому что определяется функцией StringFind(OrderComment(), "[tp]", 0) -http://docs.mql4.com/ru/strings/stringfind Если результат выполнения поиска >= 0 то ордер закрыт по тейку.Проблемка в том, AlexeyVik, что по этим комментам сов не сможет определить этот ордер. Если там в истории есть ордера с заданными комментами - да, их определить можно, но присвоенный терминалом [sl] - [tp] не определяется функцией OrderComment(). Поэтому нет смысла усложнять сову (массивами, лишней памятью и др.) , делать проще, закрыт - восстановить по цене открытия.
Прежде чем восстановить надо его определить что он закрыт или как ты это представляешь?
Ну, я вспомнил где и кому писал похожий код. Вот здесь http://forexsystemsru.com/skripty/65219-poisk-skriptov-35.html#post1052021 и по твоей просьбе правил.
Бери и правь под свои нужды. Там после определения, что ордер закрыт закрывает все остальные, а тебе надо всего-лишь заменить закрытие на определение параметров этого закрытого ордера и открытие нового по той-же цене и с теми-же ТП и СЛ.
А какого ордера данные показаны в комменте?Я пока в этом проблем почему-то не встречал... Для его восстановления вполне достаточно и этих данных - цен открытий-закрытий.
Ну тогда держи готовый, бродяга. У меня сегодня опять день добрых дел.темный дремучий лес это для меня :facepalm:
А какого ордера данные показаны в комменте?
Ты-бы до того как... поэкспериментировал. На форуме mql4 долго мусолили вопрос выбора последнего/первого ордера из истории, но так и не смогли определить приемлемый для всех вариант.
осталась зависимость от выбранного периода отображения. OrdersHistoryTotal() возвращает не полное количество ордеров, а только то количество которое отображено на данный момент в этом списке. Соответственно если выбран период "Сегодня", но сегодня не совершалось ни одной сделки, то список будет пуст и OrdersHistoryTotal() вернёт 0. Или "Последняя неделя", то в понедельник тоже в списке тоже будет 0.
И никто не может гарантировать, что "завтра" не будет ещё каких либо изменений и не возникнет проблем с выбором ордеров из истории.
Вот именно... Либо подстраиваться каждый раз, либо учитывать возможные изменения и стараться сделать так, чтобы не пришлось править и переписывать код.Это написано не на скорую руку только что, а работает и проэксперементировано уже достаточно давно.
Ничего не поделаешь - приходится работать с тем, что есть. Будут нововведения - придётся подстраиваться и нам...