Мне для моего советника нужно вычислить размер тела свечи[1] и размер тела свечи [2].
Сначала я делал это так
Для медвежьей свечи: Open[1] - Close[1] и Open[2] - Close[2]
Для бычьей свечи: Close[1] - Open[1] и Close[2] - Open[2]
Но так получается значение цены double а не пункты, подскажите пожалуйста, как правильно рассчитать тела свечей, а потом я использую это и сделаю условие
Если(тело первой свечи > тела второй свечи){
//какие-то действия
}
Заранее спасибо))
Мне для моего советника нужно вычислить размер тела свечи[1] и размер тела свечи [2].
Сначала я делал это так
Для медвежьей свечи: Open[1] - Close[1] и Open[2] - Close[2]
Для бычьей свечи: Close[1] - Open[1] и Close[2] - Open[2]
Но так получается значение цены double а не пункты, подскажите пожалуйста, как правильно рассчитать тела свечей, а потом я использую это и сделаю условие
Если(тело первой свечи > тела второй свечи){
//какие-то действия
}
Заранее спасибо))
Делить на _Point, элементарно же. Но для сравнения больше-меньше подходит и double, что не так?
Mislaid:
MathAbs( Close[i] - Open[i] ) / Point + 1
Всё так, спасибо)
evillive:
Делить на _Point, элементарно же. Но для сравнения больше-меньше подходит и double, что не так?
Я просто хочу как правильно, в следующий раз ещё советников буду делать,буду знать
MathAbs( Close[i] - Open[i] ) / Point + 1
а зачем в конце единицу прибавлять? Чтобы не дай бог, свеча была с нулевым телом?)))
а зачем в конце единицу прибавлять? Чтобы не дай бог, свеча была с нулевым телом?)))
Действительно, зачем. Если достаточно деления на поинт.
Здравствуйте. Почему-то не могу разобраться в проблеме, когда размер пунктов не учитывается советником при открытиии ордеров. Мне нужно, чтобы ордер открывался только в том случае, если размер свечи был больше определенного количества пунктов. Я использую код:
if ( (High[1]-Low[1])/Point>500 //Если размер всего диапазона свечи больше указанного числа пунктов. && OrdersTotal()==0 ) OrderNumber=OrderSend(Symbol(),OP_BUY,0.01,Ask,3,StopLossPriceBuy,TakeProfitPriceBuy);
Но почему-то ордера открываются на каждой свече и значение пунктов не учитывается.
Здравствуйте. Почему-то не могу разобраться в проблеме, когда размер пунктов не учитывается советником при открытиии ордеров. Мне нужно, чтобы ордер открывался только в том случае, если размер свечи был больше определенного количества пунктов. Я использую код:
Но почему-то ордера открываются на каждой свече и значение пунктов не учитывается.
Проверьте значение
(High[1]-Low[1])/Point
добавьте этот код перед OrderNumber
Comment("Value is: ", (High[1]-Low[1])/Point);
На графике, под OHLC должно написать значение...
Здравствуйте. Почему-то не могу разобраться в проблеме, когда размер пунктов не учитывается советником при открытиии ордеров. Мне нужно, чтобы ордер открывался только в том случае, если размер свечи был больше определенного количества пунктов. Я использую код:
Но почему-то ордера открываются на каждой свече и значение пунктов не учитывается.
Пользуйтесь, либо _Point, либо Point() и никогда не используйте Point
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Мне для моего советника нужно вычислить размер тела свечи[1] и размер тела свечи [2].
Сначала я делал это так
Для медвежьей свечи: Open[1] - Close[1] и Open[2] - Close[2]
Для бычьей свечи: Close[1] - Open[1] и Close[2] - Open[2]
Но так получается значение цены double а не пункты, подскажите пожалуйста, как правильно рассчитать тела свечей, а потом я использую это и сделаю условие
Если(тело первой свечи > тела второй свечи){
//какие-то действия
}
Заранее спасибо))