Добрый день. Подскажите пожалуйста можно ли сделать так чтобы сигналом к покупке или продаже по пересечению скользящих ,выступал не новый бар,а собственно само пересечение? Линия пересекла линию , произошла сделка.
- Советники: Simple FX
- Как проверить было ли открытие сделки в этом баре
- Советники: MA Cross
сами линии не строятся))) они строятся на основании цены (баров)
Сигнал может быть по факту закрытия свечи, но может быть и по сигналу текущей свечи
можно, но сразу предупреждаю - как только кончится движение будет много убыточных сделок подряд
Vladimir Mametov:
Можно ли совместить момент пересечения и текущий сигнал свечи?
сами линии не строятся))) они строятся на основании цены (баров)
Сигнал может быть по факту закрытия свечи, но может быть и по сигналу текущей свечи
Mickey Moose:
можно, но сразу предупреждаю - как только кончится движение будет много убыточных сделок подряд
Почему?
можно, но сразу предупреждаю - как только кончится движение будет много убыточных сделок подряд
А какие проблемы, вот, вызывай на каждом тике, отгрыз из моего старого советника. Советую еще ADX прикрутить, меньше убыточных сделок будет. Одного пересечения недостаточно.
enum CrossType {CrossNone, CrossDownUp, CrossUpDown}; struct Trigger { CrossType direction; // устанавливается при нахождении пересечения, если в дальнейшем есть подтверждение от ADX, открывается ордер uint crossNumber; datetime crossTime; bool newCrossEnabled; } crossTrigger; CrossType CheckForIntersection() { if(!crossTrigger.newCrossEnabled) return CrossNone; double currentMAfast = iMA(NULL, TimeFrame, FastMAPeriod, 0, FastMAMethod, FastMAAppPrice, 0); double currentMAslow = iMA(NULL, TimeFrame, SlowMAPeriod, 0, SlowMAMethod, SlowMAAppPrice, 0); double oldMAfast = iMA(NULL, TimeFrame, FastMAPeriod, 0, FastMAMethod, FastMAAppPrice, BarShift); double oldMAslow = iMA(NULL, TimeFrame, SlowMAPeriod, 0, SlowMAMethod, SlowMAAppPrice, BarShift); if(currentMAfast>currentMAslow && oldMAfast<oldMAslow)// || (currentMAfast>currentMAslow && oldMAfast==oldMAslow)) { crossTrigger.direction = CrossDownUp; crossTrigger.crossTime = TimeCurrent(); WriteMsg("CrossDownUp, crossNumber=" + IntegerToString(crossTrigger.crossNumber++)); CLoseAllOrders(); } if(currentMAfast<currentMAslow && oldMAfast>oldMAslow)// || (currentMAfast<currentMAslow && oldMAfast==oldMAslow)) { crossTrigger.direction = CrossUpDown; crossTrigger.crossTime = TimeCurrent(); WriteMsg("CrossUpDown, crossNumber=" + IntegerToString(crossTrigger.crossNumber++)); CLoseAllOrders(); } if(TimeCurrent() - crossTrigger.crossTime > MaxTimeForCrossLive && crossTrigger.direction != CrossNone) // время жизни пересечения истекло { crossTrigger.direction = CrossNone; crossTrigger.crossTime = D'01.01.2024'; WriteMsg("время жизни пересечения " + IntegerToString(crossTrigger.crossNumber) + " истекло"); } return crossTrigger.direction; }
***
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь