| / | Форум |
|
rensbit
01.05.2009 14:47
Здравствуйте. Я написал эксперта (советника). Его протестировал в тестере, сейчас уже третью неделю тестирую на демо-счете. В результате чего появился вопрос, который пока не могу решить (возможно в силу не большого опыта в программировании). И так, эксперт в отдельной функции анализирует значения индикаторов и по окончанию анализа присваивает значение переменное, которая проверяется функцией для открытия сделки. На выходные я компьютер выключал (соответственно, не эксперт, не МТ4 - не работали), и при включении компьютера (и программ), эксперт проведя анализ, закрывает текущую сделку и сразу же открывал следующую в том-же направлении (покупка/продажа) что и закрытая сделка. Точно такой же эффект получается когда в работающий эксперт (выполняемый в МТ4) вносил изменения и перекомпилировал эксперта. Вопрос. Как сделать так чтобы эксперт не закрывал текущую сделку при запуске эксперта (или при перекомпиляции)? |
|
Организуйте багтрекинг и техсаппорт для своей компании В TeamWox имеются все для того чтобы организовать багтрекинг. Интегрировав модуль Сервисдеск с веб-сайтом, Вы сможете получать заявки своих клиентов напрямую в TeamWox. Более того, вся переписка с клиентами автоматически распознается и попадает в архив, где ее без труда можно найти в будущем. |
7380 |
sergeev
01.05.2009 15:19
к сожалению не все программисты ясновидящие. и без кода вам не помогут.... |
|
rensbit
01.05.2009 15:22
К сожалению с этим есть не большая проблемка, которая заключается в том, что и по результатам тестера и по результатам теснирования на демо-счете, эксперт профитный :) Да и в первом посте есть частичное описание работы эксперта. |
|
YuraZ
01.05.2009 16:02
rensbit >>:
К сожалению с этим есть не большая проблемка, которая заключается в том, что и по результатам тестера и по результатам теснирования на демо-счете, эксперт профитный :) Да и в первом посте есть частичное описание работы эксперта. теоритически у Вас - зачем то эксперт закрывает сделку и тут же открывает Вы сначала проверьте есть ли сделка и если есть пусть ваша сигнальная система ! не дает сигнал на закрытие если у нее в задумке есть потом сигнал на открытие в том же направлении -- а вообще трудно программистам вам помочь... т к неясен мотив вашего экаперта почему он у вас закрывает и тут же отрывает в том же направлении ну вставьте логику которая не будет закрывать ! в таких случаях и все |
|
favoritefx
01.05.2009 16:02
Для этого нужно использовать глобальные переменные. Если эксперт открывает позицию, ставим ее в 1. При перекомпиляции эксперт считывает значение, и если оно равно 1, то он не открывает новую сделку и на закрывает старую.
|
|
YuraZ
01.05.2009 16:03
favoritefx >>:
Для этого нужно использовать глобальные переменные. Если эксперт открывает позицию, ставим ее в 1. При перекомпиляции эксперт считывает значение, и если оно равно 1, то он не открывает новую сделку и на закрывает старую. можно без глобальных обойтись |
7922 |
Vinin
01.05.2009 16:38
Нормальный эксперт всегда подхватывает свои сделки. И если нет условий для закрытия - закрывать не будет. Видимо что-то внутри советника не то.
|
|
rensbit
01.05.2009 16:46
YuraZ >>:
теоритически у Вас - зачем то эксперт закрывает сделку и тут же открывает Вы сначала проверьте есть ли сделка и если есть пусть ваша сигнальная система ! не дает сигнал на закрытие если у нее в задумке есть потом сигнал на открытие в том же направлении -- а вообще трудно программистам вам помочь... т к неясен мотив вашего экаперта почему он у вас закрывает и тут же отрывает в том же направлении ну вставьте логику которая не будет закрывать ! в таких случаях и все Закрывает и сражу же открывает - это потому что я исхожу из того что трэнды существуют только двух видов (ап и даун), а боковой трэнд - это часть текущего трэда. При продолжительной работе эксперта, всё нормально, т.к. эксперт "видит" примерно начало и конец трэнда. Но при первом запуске, эксперт вычисляет какоей сейчас трэнд и открывает сделку, но открытие новой сделки происходит только тогда, когда эксперт принимает решение о смене трэнда, соответственно, если трэнд изменился то эксперт закрывает текущую сделку. |
7922 |
Vinin
01.05.2009 16:50
rensbit писал(а) >>
Закрывает и сражу же открывает - это потому что я исхожу из того что трэнды существуют только двух видов (ап и даун), а боковой трэнд - это часть текущего трэда. При продолжительной работе эксперта, всё нормально, т.к. эксперт "видит" примерно начало и конец трэнда. Но при первом запуске, эксперт вычисляет какоей сейчас трэнд и открывает сделку, но открытие новой сделки происходит только тогда, когда эксперт принимает решение о смене трэнда, соответственно, если трэнд изменился то эксперт закрывает текущую сделку. Похоже сделано принудительное закрытие всех позиций (без учета реалий рынка), а потом уже идет анализ и открытие. Заложена ошибочноя логика в советник. Он ее и исполняет. Надо бы советник поправить с учетом новых реалий (оказывается тренд может и продолжаться, сперва анализ, а потом закрытие и открытие). В смысле закрытие, если напрвление не совпадает (переворот). |
|
rensbit
01.05.2009 17:00
Vinin >>:
Похоже сделано принудительное закрытие всех позиций (без учета реалий рынка), а потом уже идет анализ и открытие. Заложена ошибочноя логика в советник. Он ее и исполняет. Надо бы советник поправить с учетом новых реалий (оказывается тренд может и продолжаться, сперва анализ, а потом закрытие и открытие). В смысле закрытие, если напрвление не совпадает (переворот). Я так и сделал "сперва анализ, а потом закрытие и открытие". Пролема в том, что при запуске эксперта выполняется именно эта последвательность действий сперва анализ, а потом закрытие и открытие, но ведь есть уже открывая сделка Или сделать проверку на наличие открытых ордеров, потом проверить тип ордера и если тип ордера и текущий трэнд равны, тогда выйти |
7922 |
Vinin
01.05.2009 17:13
rensbit писал(а) >>
Я так и сделал "сперва анализ, а потом закрытие и открытие". Пролема в том, что при запуске эксперта выполняется именно эта последвательность действий сперва анализ, а потом закрытие и открытие, но ведь есть уже открывая сделка А кто должен контролировать что есть. Можно по по простому вначале "все закрыть", а потом "открыть нужное". А можно поступить сразу же проще "закрыть не нужное", "открыть нужное, если его нет". Логика разная. ПОхоже в советнике реализован первый вариант. ЧТо не есть "хорошо" |
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий