Долго использовал систему с комментариями для того что бы отличить модифицировал я позицию ранее или нет..
Как правильно отличить, к примеру тот факт, что после размещения ордера на покупку, далее я менял в позиции SL и TP? Есть ли для этого специальные поля у позиции или функции??
Долго использовал систему с комментариями для того что бы отличить модифицировал я позицию ранее или нет..
Как правильно отличить, к примеру тот факт, что после размещения ордера на покупку, далее я менял в позиции SL и TP? Есть ли для этого специальные поля у позиции или функции??
Это вряд ли.
ИМХО, не стоит опираться на на текущее состояние позиции или ордеров. Гораздо надежней когда после рестарта система внутри себя сформирует такое состояние, какое должно быть в текущей рыночной ситуации. И после этого приведет в соответствие позицию и расстановку заявок.
ИМХО, не стоит опираться на на текущее состояние позиции или ордеров. Гораздо надежней когда после рестарта система внутри себя сформирует такое состояние, какое должно быть в текущей рыночной ситуации. И после этого приведет в соответствие позицию и расстановку заявок.
Спасибо за ответ.
Опишу свою ситуацию.
При достижении позицией профита скажем в 10 пунктов, я хочу перевести позицию в без убыток, то есть я передвигаю стопы к цене открытия + 3 пункта например.
Если профит по сделке больше или равен 10 пунктам, то я меняю стопы. Профит растет, и модификация происходит раз за разом, постоянно.Нужно 1 раз передвинул сделку в без убыток, и далее пропускать ее мимо....
Как мне избавиться от этого? Или лучше написать не <= а =? Есть вариант что пока советник будет дойдет до этой операции и начнет сравнивать профит по сделке, там уже не будет равно 10 пунктам, а профит будет больше, тогда в без убыток не закроется?
P.S> думаю при получении позиции просто смотреть на коем уровне от цены находится SL, если выше цены тогда уже модифицировал...
P.S> думаю при получении позиции просто смотреть на коем уровне от цены находится SL, если выше цены тогда уже модифицировал...
Решил это так:
То, что написано у Вас после P.S. совершенно очевидно. (если уж надо очень точно, вплоть до нахождения уровня по хай/лоу баров с момента последнего измерения.)) но это вряд ли))
Только желательно открепиться от понятия "профит", а повернуться к понятию "пункт".
И красивей будет учитывать не цену последней сделки(Last)( и вообще забыть про такой тип цены), а ask/bid в выгодном для нас варианте;))
К сожалению не где не смог найти конкретного указания, как мне использовать модуль сигнала к примеру RSI. То есть есть запись о том как инициализируется, устанавливаются параметры, но как просто напросто из своего советника проверить условие на покупку - нет. Что дальше? Как проверить есть ли условие на покупку/продажу?
К сожалению не где не смог найти конкретного указания, как мне использовать модуль сигнала к примеру RSI. То есть есть запись о том как инициализируется, устанавливаются параметры, но как просто напросто из своего советника проверить условие на покупку - нет. Что дальше? Как проверить есть ли условие на покупку/продажу?
Модуль сигналов подключается к Вашему советнику на этапе проектирования. В каждом модуле сигналов организуется голосование...
Кстати - мне одному кажется, что некоректно в модуле голосования брать среднее арифметическое сигналов?
double CExpertSignal::Direction(void)
{
long mask;
double direction;
double result=m_weight*(LongCondition()-ShortCondition());
int number=(result==0.0)? 0 : 1; // number of "voted"//---int total=m_filters.Total();
//--- loop by filtersfor(int i=0;i<total;i++)
{
//--- mask for bit maps
mask=((long)1)<<i;
//--- check of the flag of ignoring the signal of filterif((m_ignore&mask)!=0)
continue;
CExpertSignal *filter=m_filters.At(i);
//--- check pointerif(filter==NULL)
continue;
direction=filter.Direction();
//--- the "prohibition" signalif(direction==EMPTY_VALUE)
return(EMPTY_VALUE);
//--- check of flag of inverting the signal of filterif((m_invert&mask)!=0)
result-=direction;
else
result+=direction;
// Вот тут бы number+=filter.Weight();
number++;
}
//--- normalizationif(number!=0)
result/=number; // Вот туточки???//--- return the resultreturn(result);
}
Да разве логично??? Если веса по 1, то - да, логично.
Представим себе, что у меня 2 фильтра-сигнала. Один хороший, толстый, которому я доверяю и поставлю ему вес 1. Другой маленький, вспомогательный, так. для понту, посему вес ему = 0.1.
Толстый дает сигнал на покупку равный 100, а маленький, которым и преебречь то можно на покупку 10 . И что же мне выдаст общий сигнал??? 50.5??? Не странно ли, что этот маленький так занизил оценку ситуации???
Да разве логично??? Если веса по 1, то - да, логично.
Представим себе, что у меня 2 фильтра-сигнала. Один хороший, толстый, которому я доверяю и поставлю ему вес 1. Другой маленький, вспомогательный, так. для понту, посему вес ему = 0.1.
Толстый дает сигнал на покупку равный 100, а маленький, которым и преебречь то можно на покупку 10 . И что же мне выдаст общий сигнал??? 50.5??? Не странно ли, что этот маленький так занизил оценку ситуации???
1. Итоговое число голосования. Его главная характеристика это направление. Вторая характеристика это итоговое значение.
2. Если в Вашей стратегии срабатывают два сигнала: один с силой равной 100*1, а второй силой равной 10*0.1, то стоит пересмотреть свою стратегии в плане выбора сигналов.
Добрый вечер!
Долго использовал систему с комментариями для того что бы отличить модифицировал я позицию ранее или нет..
Как правильно отличить, к примеру тот факт, что после размещения ордера на покупку, далее я менял в позиции SL и TP? Есть ли для этого специальные поля у позиции или функции??
Добрый вечер!
Долго использовал систему с комментариями для того что бы отличить модифицировал я позицию ранее или нет..
Как правильно отличить, к примеру тот факт, что после размещения ордера на покупку, далее я менял в позиции SL и TP? Есть ли для этого специальные поля у позиции или функции??
Это вряд ли.
ИМХО, не стоит опираться на на текущее состояние позиции или ордеров. Гораздо надежней когда после рестарта система внутри себя сформирует такое состояние, какое должно быть в текущей рыночной ситуации. И после этого приведет в соответствие позицию и расстановку заявок.
Это вряд ли.
ИМХО, не стоит опираться на на текущее состояние позиции или ордеров. Гораздо надежней когда после рестарта система внутри себя сформирует такое состояние, какое должно быть в текущей рыночной ситуации. И после этого приведет в соответствие позицию и расстановку заявок.
Спасибо за ответ.
Опишу свою ситуацию.
При достижении позицией профита скажем в 10 пунктов, я хочу перевести позицию в без убыток, то есть я передвигаю стопы к цене открытия + 3 пункта например.
Сейчас происходит такая ситуация.
Если профит по сделке больше или равен 10 пунктам, то я меняю стопы. Профит растет, и модификация происходит раз за разом, постоянно.Нужно 1 раз передвинул сделку в без убыток, и далее пропускать ее мимо....
Как мне избавиться от этого? Или лучше написать не <= а =? Есть вариант что пока советник будет дойдет до этой операции и начнет сравнивать профит по сделке, там уже не будет равно 10 пунктам, а профит будет больше, тогда в без убыток не закроется?
P.S> думаю при получении позиции просто смотреть на коем уровне от цены находится SL, если выше цены тогда уже модифицировал...
Решил это так:
P.S> думаю при получении позиции просто смотреть на коем уровне от цены находится SL, если выше цены тогда уже модифицировал...
Решил это так:
То, что написано у Вас после P.S. совершенно очевидно. (если уж надо очень точно, вплоть до нахождения уровня по хай/лоу баров с момента последнего измерения.)) но это вряд ли))
Только желательно открепиться от понятия "профит", а повернуться к понятию "пункт".
И красивей будет учитывать не цену последней сделки(Last)( и вообще забыть про такой тип цены), а ask/bid в выгодном для нас варианте;))
Добрый вечер!
К сожалению не где не смог найти конкретного указания, как мне использовать модуль сигнала к примеру RSI. То есть есть запись о том как инициализируется, устанавливаются параметры, но как просто напросто из своего советника проверить условие на покупку - нет. Что дальше? Как проверить есть ли условие на покупку/продажу?
Добрый вечер!
К сожалению не где не смог найти конкретного указания, как мне использовать модуль сигнала к примеру RSI. То есть есть запись о том как инициализируется, устанавливаются параметры, но как просто напросто из своего советника проверить условие на покупку - нет. Что дальше? Как проверить есть ли условие на покупку/продажу?
Модуль сигналов подключается к Вашему советнику на этапе проектирования. В каждом модуле сигналов организуется голосование...
В общем статьи к прочтению:
Создай торговый робот за 6 шагов!
и
Мастер MQL5: Как написать свой модуль торговых сигналов
и напоследок
Генератор торговых сигналов пользовательского индикатора
Кстати - мне одному кажется, что некоректно в модуле голосования брать среднее арифметическое сигналов?
Кстати - мне одному кажется, что некоректно в модуле голосования брать среднее арифметическое сигналов?
Все логично.
Подробнее статья Мастер MQL5: Новая версия и вот кусочек рисунка из статьи:
Все логично.
Подробнее статья Мастер MQL5: Новая версия и вот кусочек рисунка из статьи:
Да разве логично??? Если веса по 1, то - да, логично.
Представим себе, что у меня 2 фильтра-сигнала. Один хороший, толстый, которому я доверяю и поставлю ему вес 1. Другой маленький, вспомогательный, так. для понту, посему вес ему = 0.1.
Толстый дает сигнал на покупку равный 100, а маленький, которым и преебречь то можно на покупку 10 . И что же мне выдаст общий сигнал??? 50.5??? Не странно ли, что этот маленький так занизил оценку ситуации???
Да разве логично??? Если веса по 1, то - да, логично.
Представим себе, что у меня 2 фильтра-сигнала. Один хороший, толстый, которому я доверяю и поставлю ему вес 1. Другой маленький, вспомогательный, так. для понту, посему вес ему = 0.1.
Толстый дает сигнал на покупку равный 100, а маленький, которым и преебречь то можно на покупку 10 . И что же мне выдаст общий сигнал??? 50.5??? Не странно ли, что этот маленький так занизил оценку ситуации???