Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
О, простите - я больше не получаю никаких ошибок. Я получаю только проходящие ордера на покупку и никаких ордеров на продажу...
Это связано с моей предыдущей темой о пересечении МА - я все еще не понимаю! Но я не хочу никого заводить и бить мертвую лошадь, в то время как люди дают мне ответ (хотя я не понимаю ответа lol)! Спасибо RaptorUK за вашу помощь!
Не могу говорить за других, я не заводился....
Если вы не получаете ошибок и ордер на продажу не установлен, значит OpenOrdersThisPair(Symbol()) не равен 0, какой тип у этой функции? int или double? или может bool?
//+------------------------------------------------------------------+ //| expert initialization function | //+------------------------------------------------------------------+ int init() { double ticksize = MarketInfo(Symbol(), MODE_TICKSIZE); if (ticksize == 0.00001 || ticksize == 0.001) // if you set this to 0 it WONT throw an order out straight away. pips = ticksize*10; else pips = ticksize; return(0); }На самом деле я не могу понять, в чем проблема. Я написал MA if statements так много способов, как подсказывают мне мои ограниченные знания (явно ограниченные, поскольку это не работает на короткой стороне...)Я думаю, что это потому, что ордера не просто размещаются в месте пересечения скользящих средних, а в другой точке.
Я знаю, что проблема в этом! Я знаю, что уже спрашивал об этом в другой теме, но я был бы очень признателен за ответ на этот вопрос (и да, я знаю, что код неряшливый, я просто потратил много времени на нарезку, компиляцию и запуск стратегии, чтобы увидеть из первых рук, как они взаимодействуют друг с другом. Не говоря уже о том, что я тоже написал его неаккуратно... но не будем обращать на это внимания...)
Q.1) Что касается строки "double triggerbartime" и > than section..... Все, что я хочу понять, это как я скажу этой функции найти, когда все скользящие средние больше, чем предыдущая сравненная скользящая средняя, а затем забыть о том, чтобы убедиться, что они остаются в правильном порядке... Вместо этого мне нужно убедиться, что PRICE CLOSE остается выше "i12" (60 EMA) - если это так, то она может следовать дальше с другими операторами IF и выставлять длинный ордер через "OrderEntry(0)" - если нет, то она должна посмотреть на длинную линию (i1>i2 && i2>i3...) и ждать, пока она снова станет истинной, прежде чем рассматривать следующие линии...
Я знаю, что ответ смотрит прямо на меня, просто я немного расстраиваюсь и был бы очень признателен за этот маленький самородок..... Спасибо!
Я хочу знать, где все МА расположены веером, но они НЕ ДОЛЖНЫ быть истинными ВСЕГДА... Я просто хочу, чтобы это было правдой прежде, чем что-либо еще... Исходя из этого, все, что должно произойти с этой ценой, это чтобы НИ ОДИН бар не закрылся ниже 60 EMA (для лонга), чтобы любая длинная позиция оставалась действительной...
Я использую TriggerBarTime, чтобы найти самую высокую точку, где все скользящие средние складываются в правильном порядке, и бар, который затем продолжает касаться 21 EMA...
Так что, хотя вы выровняли отступы для меня, это практически делает то, что я написал раньше (если я ничего не упускаю?) Возможно, я виноват, что не объяснил это правильно.
(Ах да - я знаю, что это должно быть bool, это была ошибка - я просто игрался и забыл поменять их местами).
double TriggerBarTime = (i1>i2 ..это true или false 0 или 1 ничего больше Третий аргумент iBarShift должен быть временем. iBarShift(0) или (1) ВСЕГДА будет Bars-1.datetime TriggerBarTime;У меня есть это в глобальном разделе...Я не понимаю ваш предыдущий пост? ^
Возможно ли предложить, как мне написать строку If относительно моего поста выше вашего?