Ответить
11.10.2015, 19:13
Аватар для Viko2000
Viko2000 Viko2000 на форуме Почётный гражданин
Регистрация: 22.02.2012 / Сообщений: 437
Поблагодарили 446 раз(а) / Репутация: 447
Я про это: ".....Ты подумай почему я так быстро с темы съезжаю.", а не про то.
Чё мне тут думать?!! Про твои съезды с темы.
Не врубаешься, извини братуха, не ко мне.
11.10.2015, 19:24
Аватар для _SERG_
_SERG_ _SERG_ на форуме Активный участник
Регистрация: 21.07.2009 / Сообщений: 264
Поблагодарили 82 раз(а) / Репутация: 82
Не врубаешься, извини братуха, не ко мне.
Ну бывай, счастливой поездки.
12.10.2015, 07:10
Аватар для edvinascavadimasca
edvinascavadimasca edvinascavadimasca вне форума Интересующийся
Регистрация: 08.10.2015 / Сообщений: 9
Поблагодарили 0 раз(а) / Репутация: 1
привет
у меня такая проблема\ я написал советника работающий по гистограме индикатора\ как мне написать код чтобы он откпывал одну сделку допустим в бай и после етого не отрывал снова в бай а дождался сигнала села и отрыл бы селл\ а то он после того как закрывает один ордер\тогда и же открывает в том же направление\ мне не надо так
помогите пож
13.10.2015, 05:10
Аватар для saas
saas saas вне форума Прохожий
Регистрация: 02.10.2015 / Сообщений: 3
Поблагодарили 0 раз(а) / Репутация: 1
Кто-нибудь, помогите вставить в советник время торговли в часах, например с 8 утра до 20 вечера.
в mql4 особо не шарю, можно подробный код.
13.10.2015, 05:12
Аватар для saas
saas saas вне форума Прохожий
Регистрация: 02.10.2015 / Сообщений: 3
Поблагодарили 0 раз(а) / Репутация: 1
И ещё просьба, взял такой код для перевода в безубыток:

void BU()
{
for(int i=0; i<OrdersTotal(); i++)
{
if(OrderSelect(i, SELECT_BY_POS))
{
if(OrderType()==OP_BUY)
{
if(OrderOpenPrice()<=(Bid-BULevel)&&OrderOpenPrice()>OrderStopLoss())
{
OrderModify(OrderTicket(),OrderOpenPrice(),OrderOp enPrice(),OrderTakeProfit(),0,Green);
}
}

if(OrderType() == OP_SELL)
{
if(OrderOpenPrice()>=(Ask+BULevel)&&OrderOpenPrice ()<OrderStopLoss())
{
OrderModify(OrderTicket(),OrderOpenPrice(),OrderOp enPrice(),OrderTakeProfit(),0,Red);
}
}
}
}
}

ругается: return value of "OrderModify" should be checked

Что надо исправить или добавить?
13.10.2015, 09:18
Аватар для Viko2000
Viko2000 Viko2000 на форуме Почётный гражданин
Регистрация: 22.02.2012 / Сообщений: 437
Поблагодарили 446 раз(а) / Репутация: 447
Кто-нибудь, помогите вставить в советник время торговли в часах, например с 8 утра до 20 вечера.
в mql4 особо не шарю, можно подробный код.
Самое простое.

extern string V_R = "Время работы";
extern bool use_work_time = true;
extern int Start = 0;
extern int Stop = 24;



//////////////////////////////////////////
int start()
{
//фильтр время
if(use_work_time)
{
if(Start>Stop)
{
if(Hour()>=Stop && Hour()<Start) return;
}

if(Start<Stop)
{
if(Hour()<Start || Hour()>=Stop) return;
}
}

return(0);
}
saas 
13.10.2015, 17:21
Аватар для gush
gush gush вне форума бродяга
Регистрация: 24.01.2011 / Сообщений: 2,521
Поблагодарили 5,292 раз(а) / Репутация: 5508
всем привет. Собираю очень интересные идеи алгоритма восстановления закрытых ордеров по ТП/СЛ.
Сова уже такая есть в наличии, прикрепляю к сообщению..
Этот сов отлично справляется с моей задачей.
Как только закрывается любой ордер по тп или сл, сов мгновенно, во время закрытия ставит отложку с тем же лотом, по той же цене и с теми же тп/сл..
Но! Если цена скользнула и ордер закрылся не по тп/сл, а чуть выше/ниже.. сов теряет этот ордер..
Посоветуйте! Что можно с этим сделать! Нужен четкий алгоритм восстановления всех-любых ордеров, которые закрываются.
Может есть возможность внести другой алгоритм.. например, восстанавливать тогда абсолютно все закрытые ордера из истории? Посоветуйте, кто, чем может... спасибо!
RoboMaks!
И все же, посмотри сову воскрешения закрытых ордеров.
Можно реализовать в коде восстанавливать все закрытые ордера, абсолютно все по их ценам открытия, с теми же лотами и теми же тп/сл ????
Неважно как ордер закрылся, скользнула шпиля, прочее.. главное закрылся, значит нужно его восскрешить!
Закрыли руками открытый - всеравно восстановить!!!
Кроме отложек! Они мешать будут, в смысле, если отложку удалили (несработавшую-любую) их не хотелось бы воскрешать))) Реально???? Будут погрешности???
13.10.2015, 17:40
Аватар для AlexeyVik
AlexeyVik AlexeyVik вне форума Программист mql4 mql5
Регистрация: 19.11.2009 / Сообщений: 2,590
Поблагодарили 3,712 раз(а) / Репутация: 3708
RoboMaks!
И все же, посмотри сову воскрешения закрытых ордеров.
Можно реализовать в коде восстанавливать все закрытые ордера, абсолютно все по их ценам открытия, с теми же лотами и теми же тп/сл ????
Неважно как ордер закрылся, скользнула шпиля, прочее.. главное закрылся, значит нужно его восскрешить!
Закрыли руками открытый - всеравно восстановить!!!
Кроме отложек! Они мешать будут, в смысле, если отложку удалили (несработавшую-любую) их не хотелось бы воскрешать))) Реально???? Будут погрешности???
А чем тебе не понравился мой совет?
Попробуй сделать не точное совпадение цены закрытия и тейка\стопа, а разницу с допустимым диапазоном.
Или при несовпадении этих цен прочти комментарий к ордеру и найди там [tp] или [sl] если есть то ордер нужный.
Чуть посложней вариант, тикеты всех открытых ордеров заноси в массив и перебирая его проверяй на OrderCloseTime() > 0 так легко определяется закрыт-ли ордер и по тейку или стопу, или даже если руками закрыт.
В выходной посмотрю в другом компе, может там есть такой кусок кода, кажется писал кому-то.
13.10.2015, 18:33
Аватар для gush
gush gush вне форума бродяга
Регистрация: 24.01.2011 / Сообщений: 2,521
Поблагодарили 5,292 раз(а) / Репутация: 5508
А чем тебе не понравился мой совет?


Чуть посложней вариант, тикеты всех открытых ордеров заноси в массив и перебирая его проверяй на OrderCloseTime() > 0 так легко определяется закрыт-ли ордер и по тейку или стопу, или даже если руками закрыт.
В выходной посмотрю в другом компе, может там есть такой кусок кода, кажется писал кому-то.
мне любой вариант нужен, безотказно рабочий. Восстанавливать закрытые позы. Этим алгоритмом и скальпы и пипсотню можно снимать, и любую сетку руками поставить как нужно.. дальше не трудно догадаться)

А по времени запуска бота можно приспособить? В смысле при запуске совы, - не восстанавливать те ордера которые уже закрыты в истории до начала работы совы, а мониторить только те которые начнут закрываться.. но вот если инет отрубится.. или связь с серваком пропадет.. да лучше все ордера воскрешать! И не париться! По тп/сл закрылся или руками закрыт, этот алгоритм правильней..

А я Алексей программирование это не могу освоить, видимо не каждому это дано. Если бы я только это умел, я бы жил в этих ветках помогая другим
когда я пытаюсь изучить mql4, я примерно выгляжу вот так:
13.10.2015, 18:45
Аватар для AlexeyVik
AlexeyVik AlexeyVik вне форума Программист mql4 mql5
Регистрация: 19.11.2009 / Сообщений: 2,590
Поблагодарили 3,712 раз(а) / Репутация: 3708
мне любой вариант нужен, безотказно рабочий. Восстанавливать закрытые позы. Этим алгоритмом и скальпы и пипсотню можно снимать, и любую сетку руками поставить как нужно.. дальше не трудно догадаться)

А по времени запуска бота можно приспособить? В смысле при запуске совы, - не восстанавливать те ордера которые уже закрыты в истории до начала работы совы, а мониторить только те которые начнут закрываться.. но вот если инет отрубится.. или связь с серваком пропадет.. да лучше все ордера воскрешать! И не париться! По тп/сл закрылся или руками закрыт, этот алгоритм правильней..

А я Алексей программирование это не могу освоить, видимо не каждому это дано. Если бы я только это умел, я бы жил в этих ветках помогая другим
когда я пытаюсь изучить mql4, я примерно выгляжу вот так:
Ну, я вспомнил где и кому писал похожий код. Вот здесь http://forexsystemsru.com/skripty/65219-poisk-skriptov-35.html#post1052021 и по твоей просьбе правил.
Бери и правь под свои нужды. Там после определения, что ордер закрыт закрывает все остальные, а тебе надо всего-лишь заменить закрытие на определение параметров этого закрытого ордера и открытие нового по той-же цене и с теми-же ТП и СЛ.
13.10.2015, 18:51
Аватар для RoboMaks
RoboMaks RoboMaks вне форума Элитный участник
Регистрация: 19.08.2012 / Адрес: Баку, Азербайджан / Сообщений: 651
Поблагодарили 1,118 раз(а) / Репутация: 1128
  • Отправить сообщение для RoboMaks с помощью Skype™
А чем тебе не понравился мой совет?
...Или при несовпадении этих цен прочти комментарий к ордеру и найди там [tp] или [sl] если есть то ордер нужный.
Проблемка в том, AlexeyVik, что по этим комментам сов не сможет определить этот ордер. Если там в истории есть ордера с заданными комментами - да, их определить можно, но присвоенный терминалом [sl] - [tp] не определяется функцией OrderComment(). Поэтому нет смысла усложнять сову (массивами, лишней памятью и др.) , делать проще, закрыт - восстановить по цене открытия.
gush 
13.10.2015, 19:05
Аватар для AlexeyVik
AlexeyVik AlexeyVik вне форума Программист mql4 mql5
Регистрация: 19.11.2009 / Сообщений: 2,590
Поблагодарили 3,712 раз(а) / Репутация: 3708
Проблемка в том, AlexeyVik, что по этим комментам сов не сможет определить этот ордер. Если там в истории есть ордера с заданными комментами - да, их определить можно, но присвоенный терминалом [sl] - [tp] не определяется функцией OrderComment(). Поэтому нет смысла усложнять сову (массивами, лишней памятью и др.) , делать проще, закрыт - восстановить по цене открытия.
Совершенно верно. Потому что определяется функцией StringFind(OrderComment(), "[tp]", 0) -http://docs.mql4.com/ru/strings/stringfind Если результат выполнения поиска >= 0 то ордер закрыт по тейку.
Что касается загруженности памяти, то ты просто зря беспокоишься. Современные компы имеют многократный запас памяти для таких задач как массив из 10-100 элементов и даже 10000. Я писал сов в котором открытых ордеров доходило до 5000.
Я прекрасно помню DOS и Win11. Вот в те времена память надо было экономить... Мне однажды сказали что много я хочу, когда я запросил оперативки больше 8ми мегабайт.

ps; Что означает "делать проще, закрыт - восстановить по цене открытия."??? Прежде чем восстановить надо его определить что он закрыт или как ты это представляешь? Ты считаешь что проще перебрать историю в поисках нужного ордера? Ты ещё мелко плавал, не сталкивался с проблемами сортировки ордеров в закладке "История счёта".

Последний раз редактировалось AlexeyVik; 13.10.2015 в 19:11.
13.10.2015, 19:39
Аватар для RoboMaks
RoboMaks RoboMaks вне форума Элитный участник
Регистрация: 19.08.2012 / Адрес: Баку, Азербайджан / Сообщений: 651
Поблагодарили 1,118 раз(а) / Репутация: 1128
  • Отправить сообщение для RoboMaks с помощью Skype™
Прежде чем восстановить надо его определить что он закрыт или как ты это представляешь?
Я пока в этом проблем почему-то не встречал... Для его восстановления вполне достаточно и этих данных - цен открытий-закрытий.
gush 
14.10.2015, 04:17
Аватар для gush
gush gush вне форума бродяга
Регистрация: 24.01.2011 / Сообщений: 2,521
Поблагодарили 5,292 раз(а) / Репутация: 5508
Ну, я вспомнил где и кому писал похожий код. Вот здесь http://forexsystemsru.com/skripty/65219-poisk-skriptov-35.html#post1052021 и по твоей просьбе правил.
Бери и правь под свои нужды. Там после определения, что ордер закрыт закрывает все остальные, а тебе надо всего-лишь заменить закрытие на определение параметров этого закрытого ордера и открытие нового по той-же цене и с теми-же ТП и СЛ.
темный дремучий лес это для меня
14.10.2015, 05:09
Аватар для AlexeyVik
AlexeyVik AlexeyVik вне форума Программист mql4 mql5
Регистрация: 19.11.2009 / Сообщений: 2,590
Поблагодарили 3,712 раз(а) / Репутация: 3708
Я пока в этом проблем почему-то не встречал... Для его восстановления вполне достаточно и этих данных - цен открытий-закрытий.
А какого ордера данные показаны в комменте?
Ты-бы до того как... поэкспериментировал. На форуме mql4 долго мусолили вопрос выбора последнего/первого ордера из истории, но так и не смогли определить приемлемый для всех вариант. Ладно хоть убрали зависимость от сортировки списка в закладке "История Счёта", но осталась зависимость от выбранного периода отображения. OrdersHistoryTotal() возвращает не полное количество ордеров, а только то количество которое отображено на данный момент в этом списке. Соответственно если выбран период "Сегодня", но сегодня не совершалось ни одной сделки, то список будет пуст и OrdersHistoryTotal() вернёт 0. Или "Последняя неделя", то в понедельник тоже в списке тоже будет 0.
И никто не может гарантировать, что "завтра" не будет ещё каких либо изменений и не возникнет проблем с выбором ордеров из истории.
gush 
14.10.2015, 07:29
Аватар для AlexeyVik
AlexeyVik AlexeyVik вне форума Программист mql4 mql5
Регистрация: 19.11.2009 / Сообщений: 2,590
Поблагодарили 3,712 раз(а) / Репутация: 3708
темный дремучий лес это для меня
Ну тогда держи готовый, бродяга. У меня сегодня опять день добрых дел.
если allMagic = true то сов будет работать со всеми магиками
если Magic = 0 и allMagic = false то сов будет работать только с ордерами открытыми вручную и открытыми любым методом с магиком 0.
14.10.2015, 10:20
Аватар для edvinascavadimasca
edvinascavadimasca edvinascavadimasca вне форума Интересующийся
Регистрация: 08.10.2015 / Сообщений: 9
Поблагодарили 0 раз(а) / Репутация: 1
привет
у меня такая проблема\ я написал советника работающий по гистограме индикатора\ как мне написать код чтобы он откпывал одну сделку допустим в бай и после етого не отрывал снова в бай а дождался сигнала села и отрыл бы селл\ а то он после того как закрывает один ордер\тогда и же открывает в том же направление\ мне не надо так
помогите пож

ребят помогите пожалуйста
14.10.2015, 12:11
Аватар для RoboMaks
RoboMaks RoboMaks вне форума Элитный участник
Регистрация: 19.08.2012 / Адрес: Баку, Азербайджан / Сообщений: 651
Поблагодарили 1,118 раз(а) / Репутация: 1128
  • Отправить сообщение для RoboMaks с помощью Skype™
А какого ордера данные показаны в комменте?
Ты-бы до того как... поэкспериментировал. На форуме mql4 долго мусолили вопрос выбора последнего/первого ордера из истории, но так и не смогли определить приемлемый для всех вариант.
Это написано не на скорую руку только что, а работает и проэксперементировано уже достаточно давно.

осталась зависимость от выбранного периода отображения. OrdersHistoryTotal() возвращает не полное количество ордеров, а только то количество которое отображено на данный момент в этом списке. Соответственно если выбран период "Сегодня", но сегодня не совершалось ни одной сделки, то список будет пуст и OrdersHistoryTotal() вернёт 0. Или "Последняя неделя", то в понедельник тоже в списке тоже будет 0.
И никто не может гарантировать, что "завтра" не будет ещё каких либо изменений и не возникнет проблем с выбором ордеров из истории.
Ничего не поделаешь - приходится работать с тем, что есть. Будут нововведения - придётся подстраиваться и нам...
14.10.2015, 13:32
Аватар для AlexeyVik
AlexeyVik AlexeyVik вне форума Программист mql4 mql5
Регистрация: 19.11.2009 / Сообщений: 2,590
Поблагодарили 3,712 раз(а) / Репутация: 3708
Это написано не на скорую руку только что, а работает и проэксперементировано уже достаточно давно.



Ничего не поделаешь - приходится работать с тем, что есть. Будут нововведения - придётся подстраиваться и нам...
Вот именно... Либо подстраиваться каждый раз, либо учитывать возможные изменения и стараться сделать так, чтобы не пришлось править и переписывать код.
gush , RoboMaks 
14.10.2015, 13:33
Аватар для saas
saas saas вне форума Прохожий
Регистрация: 02.10.2015 / Сообщений: 3
Поблагодарили 0 раз(а) / Репутация: 1
Кто-нибудь знает, возможно ли в советнике вставить Алерт, который просигналит за 15-20 секунд до закрытия свечи, если цена идет в нужном направлении? Насколько это сложно?
Ответить

Метки
mql4, mql4 помощь, вопросы mql4


Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Trackbacks are Выкл.
Pingbacks are Выкл.
Refbacks are Выкл.



Текущее время: 00:54. Часовой пояс GMT.


Перевод: zCarot
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
SEO by vBSEO