Как кодировать? - страница 315

 

...

Если вам нужен расчет для фиксированного 0.5, то можно использовать MathSqrt(x).

Но если вам нужен расчет и для переменной части 0.5, то можно использовать MathPow(x,0.5) (часть 0.5 можно изменить).

dasio:
Привет.

Есть ли функция, которая позволяет вычислить эту операцию?

x^0,5 (x= известное значение)

И еще один вопрос.

У меня есть 5-ти значный брокер. Можно ли получить только первые 4 десятичных знака известного значения? Спасибо

Спасибо.
 
mladen:
Если вам нужно для фиксированного значения 0.5, то вы можете использовать MathSqrt(x) Но если вам нужно вычисление для переменной части 0.5, то вы можете использовать MathPow(x,0.5) (часть 0.5 может быть изменена).

Спасибо за ваш ответ. Все работает нормально.

Что касается второго запроса?

Если у меня 5-ти значный брокер, то код дает мне привилегию с 5-ти значным брокером, но мне нужен 4-х значный. Как я могу перевести значение из 5 в 4 знака?

Спасибо.

 

dasio

Используйте что-то вроде этого :

price4digit = NormalizeDouble(price,4);
dasio:
Спасибо за ваш ответ. Все работает нормально.

Для второго запроса?

Если у меня 5-ти значный брокер, код дает мне доступ к 5-ти значному брокеру, но мне нужен 4-х значный. Как я могу перевести значение из 5 в 4 цифру?

Спасибо
 

Нахождение точки пересечения

Здравствуйте,

Я нашел следующий индикатор:

#property copyright "Kalenzo"

#property link "bartlomiej.gorski@gmail.com"

#property indicator_color1 DodgerBlue

#property indicator_color2 Lime

#property indicator_buffers 2

extern int MoMPeriod = 14;

extern int MaType = MODE_EMA;

extern int MaPeriod = 50;

extern int TimeFrame = 60;

double mom[],

ema[],

momTF[],

emaTF[];

#property indicator_separate_window

//+------------------------------------------------------------------+

//| Custom indicator initialization function |

//+------------------------------------------------------------------+

int init()

{

//---- indicators

IndicatorBuffers(4);

SetIndexBuffer(0,mom);

SetIndexBuffer(1,ema);

SetIndexStyle(0,DRAW_LINE,STYLE_SOLID,2);

SetIndexStyle(1,DRAW_LINE,STYLE_SOLID,1);

SetIndexBuffer(2,momTF);

SetIndexBuffer(3,emaTF);

IndicatorShortName("MTF Momentum "+tf());

//----

return(0);

}

//+------------------------------------------------------------------+

//| Custom indicator deinitialization function |

//+------------------------------------------------------------------+

int deinit()

{

//----

//----

return(0);

}

//+------------------------------------------------------------------+

//| Custom indicator iteration function |

//+------------------------------------------------------------------+

int start()

{

//----

int bbshift,limit,limitTF;

limit=Bars;

limitTF = iBars(Symbol(),TimeFrame);

for(int i=0; i<limitTF; i++) momTF = iMomentum(Symbol(),TimeFrame,MoMPeriod,PRICE_CLOSE,i);

for(int j=0; j<limitTF; j++) emaTF[j] = iMAOnArray(momTF,0,MaPeriod,0,MaType,j);

for(int t=0; t<limit; t++)

{

bbshift = iBarShift(Symbol(),TimeFrame,Time[t]);

mom[t] = momTF;

ema[t] = emaTF;

}

//----

return(0);

}

[/PHP]

But I can't get the intersection point from this two lines with my ea, even I can't get the right value from the indicator, which is displayed.

Why?

I tried this for example:

[PHP]

x1= iCustom(NULL,0,"MOM_EMA_MTF",14,MODE_EMA,50,60,0,1);

 
mladen:
дасио

Используйте что-то вроде этого :

price4digit = NormalizeDouble(price,4);

Привет, Младен,

это правильно, как я кодирую?

Pivot = NormalizeDouble(( PDayHigh + PDayLow + Close ) / 3,4)

MathPow((MathPow(Pivot,0.5)+Number(defined)),2)

Спасибо

 

...

Первая строка в порядке

Вопрос по поводу этой строки:

MathPow((MathPow(Pivot,0.5)+Number(defined)),2);

Каково точное намерение этой строки? В том виде, в котором она написана, она возвращает квадрат (квадратный корень из поворотного пункта + определенный прирост). Это то, что вы имели в виду?

dasio:
Привет, Младен,

правильно ли я написал код?

Pivot = NormalizeDouble(( PDayHigh + PDayLow + Close ) / 3,4)

MathPow((MathPow(Pivot,0.5)+Number(defined)),2)

Спасибо
 
mladen:
Первая строка в порядке.

Вопрос по поводу этой строки:

MathPow((MathPow(Pivot,0.5)+Number(defined)),2);
Каково точное намерение этой строки? В том виде, в котором она написана, она возвращает квадрат (квадратный корень из поворотного пункта + определенный прирост). Это то, что вы имели в виду?

Да, она сначала вычисляет значение MathPow(Pivot,0.5)+Number(defined), а после я должен вычислить квадрат результата.

Пример.

10 = Pivot

1 = определенное число

У меня есть ((10^0,5)+1)^2 Результат:

((3,162)+1)^2 ----> (4,162)^2------>17,324

 

Тогда все в порядке.

dasio:
Да, сначала вычисляется значение MathPow(Pivot,0.5)+Число(определенное), а затем я должен вычислить квадрат результата.
 
mladen:
Тогда все в порядке

Хорошо, спасибо.

Но мне нужна еще и такая операция

(MathPow((MathPow((Pivot*10000),0.5)+number),2)/10000)

Но она дает мне другое значение, если я вычисляю его вручную.

Разница большая.

Чтобы уточнить, если у меня 1,2989 как pivot, мне нужно сделать операцию 12989 и после всех операций мне нужно разделить результат на 10000.

Я не знаю, почему это дает мне другое значение.

 

dasio

Я не знаю "замысла" этой строки. Математически в этой строке нет ничего плохого (установите "число" в 0, и вы увидите, что она вернет точно такое же значение, как и Pivot, что означает, что она работает правильно, так что если она отличается от того, что вы ожидаете, единственная часть, которая делает разницу, это добавление "числа"). Что именно вы пытаетесь вычислить с помощью этой строки?

dasio:
Хорошо, спасибо.

Но мне также нужна эта операция

(MathPow((MathPow((Pivot*10000),0.5)+number),2)/10000)

Но она дает мне другое значение, если я вычисляю его вручную.

Разница большая.

Чтобы уточнить, если у меня 1,2989 как pivot мне нужно сделать операцию как 12989 и после всех операций мне нужно разделить результат на 10000.

Я не знаю, почему он дает мне другое значение.
Причина обращения: