Расчёт тела свечей в пунктах

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
blade_runner
82
blade_runner  

Мне для моего советника нужно вычислить размер тела свечи[1] и размер тела свечи [2].

Сначала я делал это так

 Для медвежьей свечи: Open[1] - Close[1] и Open[2] - Close[2]

 Для бычьей свечи: Close[1] - Open[1] и Close[2] - Open[2]

Но так получается значение цены double а не пункты, подскажите пожалуйста, как правильно рассчитать тела свечей, а потом я использую это и сделаю условие

Если(тело первой свечи > тела второй свечи){

//какие-то действия 

 

Заранее спасибо)) 

Vitalie Postolache
7145
Vitalie Postolache  
blade_runner:

Мне для моего советника нужно вычислить размер тела свечи[1] и размер тела свечи [2].

Сначала я делал это так

 Для медвежьей свечи: Open[1] - Close[1] и Open[2] - Close[2]

 Для бычьей свечи: Close[1] - Open[1] и Close[2] - Open[2]

Но так получается значение цены double а не пункты, подскажите пожалуйста, как правильно рассчитать тела свечей, а потом я использую это и сделаю условие

Если(тело первой свечи > тела второй свечи){

//какие-то действия 

 

Заранее спасибо)) 

Делить на _Point, элементарно же. Но для сравнения больше-меньше подходит и double, что не так?
Mislaid
663
Mislaid  
blade_runner:

Мне для моего советника нужно вычислить размер тела свечи[1] и размер тела свечи [2].

Сначала я делал это так

 Для медвежьей свечи: Open[1] - Close[1] и Open[2] - Close[2]

 Для бычьей свечи: Close[1] - Open[1] и Close[2] - Open[2]

Но так получается значение цены double а не пункты, подскажите пожалуйста, как правильно рассчитать тела свечей, а потом я использую это и сделаю условие

Если(тело первой свечи > тела второй свечи){

//какие-то действия 

 

Заранее спасибо)) 

MathAbs( Close[i] - Open[i] ) / Point + 1
blade_runner
82
blade_runner  
evillive:
Делить на _Point, элементарно же. Но для сравнения больше-меньше подходит и double, что не так?

Mislaid:
MathAbs( Close[i] - Open[i] ) / Point + 1

Всё так, спасибо) 

blade_runner
82
blade_runner  

evillive:
Делить на _Point, элементарно же. Но для сравнения больше-меньше подходит и double, что не так?

 

Я просто хочу как правильно, в следующий раз ещё советников буду делать,буду знать 

Michael-80
64
Michael-80  
Mislaid:
MathAbs( Close[i] - Open[i] ) / Point + 1

а зачем в конце единицу прибавлять? Чтобы не дай бог, свеча была с нулевым телом?)))
Evgeniy Chumakov
2756
Evgeniy Chumakov  
Michael-80:

а зачем в конце единицу прибавлять? Чтобы не дай бог, свеча была с нулевым телом?)))


Действительно, зачем.  Если достаточно деления на поинт.

Alex Packer
25
Alex Packer  

Здравствуйте. Почему-то не могу разобраться в проблеме, когда размер пунктов не учитывается советником при открытиии ордеров. Мне нужно, чтобы ордер открывался только в том случае, если размер свечи был больше определенного количества пунктов. Я использую код:

if
(
(High[1]-Low[1])/Point>500 //Если размер всего диапазона свечи больше указанного числа пунктов.
&& OrdersTotal()==0
)
OrderNumber=OrderSend(Symbol(),OP_BUY,0.01,Ask,3,StopLossPriceBuy,TakeProfitPriceBuy);

Но почему-то ордера открываются на каждой свече и значение пунктов не учитывается.

Yevhenii Levchenko
3703
Yevhenii Levchenko  
Alex Packer:

Здравствуйте. Почему-то не могу разобраться в проблеме, когда размер пунктов не учитывается советником при открытиии ордеров. Мне нужно, чтобы ордер открывался только в том случае, если размер свечи был больше определенного количества пунктов. Я использую код:

Но почему-то ордера открываются на каждой свече и значение пунктов не учитывается.

Проверьте значение

(High[1]-Low[1])/Point

добавьте этот код перед OrderNumber

Comment("Value is: ", (High[1]-Low[1])/Point);

На графике, под OHLC должно написать значение...

Alexey Viktorov
27890
Alexey Viktorov  
Alex Packer:

Здравствуйте. Почему-то не могу разобраться в проблеме, когда размер пунктов не учитывается советником при открытиии ордеров. Мне нужно, чтобы ордер открывался только в том случае, если размер свечи был больше определенного количества пунктов. Я использую код:

Но почему-то ордера открываются на каждой свече и значение пунктов не учитывается.

Пользуйтесь, либо _Point, либо Point() и  никогда не используйте Point

Dmitiry Ananiev
9328
Dmitiry Ananiev  

А компилятор не ругается если Point писать ? 

12
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий