Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
А как можно сбрасывать время от времени счётчик ордеров? Допустим, каждую неделю начинать новую серию как если бы советник начинал работу с самого начала, или при прошествии другого заданного временного интервала? Вот отработал советник, скажем, дня два-три без перерывов на обед и ужин, если повезло - не слил, но он продолжает работать по начальному сценарию, то есть уже не действует выбор направления первой сделки из настроек, так как первая сделка уже есть в истории сделок и он принимает в счёт только предыдущую, а там выбор - по алгоритму.
Я это к чеиу, просто я попытался ввести автоматический вход в первую сделку по случайным числам, а в остальных случаях оставил как было в оригинале. Но время от времени хорошо бы менять направление первой слеоки, а для этого нужно как-то указать советнику, что настало время сбросить счётчик...
Была попытка сделать вход во всех случаях по ГСЧ, но советник сделался слишком непредсказуем, параметры в тестере уже не подобрать, так как в следующий запуск результат не повторится.
Мне немного не понятно чего вы хотите добиться или что хотите сделать ???
смысл останавливать советник через время ?
Не останавливать а заставлять его сначала начинать. Если его просто остановить и снова запустить на том счёте, он не начнёт сначала, а с последнего закрытого ордера, нет?
Сделал пока так, может прокатит:
Что бы начать с начального лота ??? Я правильно понял ???
Не останавливать а заставлять его сначала начинать. Если его просто остановить и снова запустить на том счёте, он не начнёт сначала, а с последнего закрытого ордера, нет?
Сделал пока так, может прокатит:
Не останавливать а заставлять его сначала начинать. Если его просто остановить и снова запустить на том счёте, он не начнёт сначала, а с последнего закрытого ордера, нет?
Сделал пока так, может прокатит:
Что бы начать с начального лота ??? Я правильно понял ???
Да, всё верно. Метод, описанный выше, не помог, в таком виде советник станет ждать всё время (delay) часов после закрытия КАЖДОГО ордера, то есть если ордеров нет - он сначала ждёт, потом открывает позу.
Нужно в истории найти последний по времени закрытый ордер и плясать от него .... А сброс лотов делается одной строчкой ....
Нужно в истории найти последний по времени закрытый ордер и плясать от него .... А сброс лотов делается одной строчкой ....
Дело в том, что я пытаюсь применить случайный вход для первой попытки, а не беру направление в зависимости от последней закрытой позиции, то есть надо примерно так:
1) закрылись с прибылью? да; если нет, открываемся по оригинальному алгоритму без паузы;
2) пришло время начинать сначала? да; если нет, открываемся по оригинальному алгоритму без паузы;
3) если выполнены 1) и 2) - ставим начальный лот и открываемся по генератору случайных чисел (ну там если rnd >0 BUY, rnd < 0 SELL).
Нужно в истории найти последний по времени закрытый ордер и плясать от него .... А сброс лотов делается одной строчкой ....
Дело в том, что я пытаюсь применить случайный вход для первой попытки, а не беру направление в зависимости от последней закрытой позиции, то есть надо примерно так:
1) закрылись с прибылью? да; если нет, открываемся по оригинальному алгоритму без паузы;
2) пришло время начинать сначала? да; если нет, открываемся по оригинальному алгоритму без паузы;
3) если выполнены 1) и 2) - ставим начальный лот и открываемся по генератору случайных чисел (ну там если rnd >0 BUY, rnd < 0 SELL).
Ну так в чем проблема то ? If ( прибыль > 0 || time == true ) сброс лотов ;
при этом тиме получает сигнал по следующему нашли последний ордер в истории по времени и вернули его время закрытия
(текущее время - время последнего закрытого одера)>60*60*20 то тиме = труе елсе фалс
Ну так в чем проблема то ? If ( прибыль > 0 || time == true ) сброс лотов ;
при этом тиме получает сигнал по следующему нашли последний ордер в истории по времени и вернули его время закрытия
(текущее время - время последнего закрытого одера)>60*60*20 то тиме = труе елсе фалс
Ну я так примерно и сделал, не знаю только если правильно:
Ну так в чем проблема то ? If ( прибыль > 0 || time == true ) сброс лотов ;
при этом тиме получает сигнал по следующему нашли последний ордер в истории по времени и вернули его время закрытия
(текущее время - время последнего закрытого одера)>60*60*20 то тиме = труе елсе фалс
Ну я так примерно и сделал, не знаю только если правильно:
Вы не правильно выбираете ордер OrderCloseTime()
Вы берете любой, сделайте поиск самого последнего.
Вы не правильно выбираете ордер OrderCloseTime()
Вы берете любой, сделайте поиск самого последнего.
Это выше ваша функция history(Typ,Lot,Pro); сработала, там ордер был выбран и обработан, в том числе и время закрытия, просто я из кода вырезал только кусочек, который отличается от оригинала.
Но логичнее отталкиваться всё же не от времени закрытия последнего ордера, а от времени последнего ресета, так ресет будет более-менее через равные интервалы (ну, за исключением длинных убыточных очередей, конечно).
Вы не правильно выбираете ордер OrderCloseTime()
Вы берете любой, сделайте поиск самого последнего.
Это выше ваша функция history(Typ,Lot,Pro); сработала, там ордер был выбран и обработан, в том числе и время закрытия, просто я из кода вырезал только кусочек, который отличается от оригинала.
Но логичнее отталкиваться всё же не от времени закрытия последнего ордера, а от времени последнего ресета, так ресет будет более-менее через равные интервалы (ну, за исключением длинных убыточных очередей, конечно).
Если б я точно понял что вы хотите сделать я б помог, а так у меня сейчас голова болит и я туго соображаю ...
EURUSD,H1: OrderSend error 131
Пишет каждую секунду, ордера не выставляет. Что бы это значило?