如何编码? - 页 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);

嗨,mladen。

我是如何编码的?

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

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

谢谢你

 

...

第一行是好的

关于这一行的一个问题。

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

这一行的确切意图是什么?它的写法是返回(中枢的平方根+定义的增幅)的平方。这就是你所想的吗?

dasio:
你好mladen。

我的编码方式对吗?

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 = 枢轴

1 = 定义的数字

我有((10^0,5)+1)^2 结果是。

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

 

然后就可以了

dasio:
是的,它首先计算MathPow(Pivot,0.5)+Number(defined)的值,然后我必须计算结果的平方。
 
mladen:
然后就可以了

好的,谢谢你。

但我还需要这样的操作

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

但如果我手动计算,它给我一个不同的值。

差异很高。

澄清一下,如果我有1,2989的枢轴,我需要做12989的操作,在所有操作之后,我需要将结果除以10000。

我不知道为什么它会给我不同的值。

 

dasio

我不知道那一行的 "意图"。从数学上讲,这一行没有任何问题(将 "数字 "设置为0,你会看到它将返回与Pivot完全相同的值,这意味着它工作正常,所以如果它与你期望的不同,唯一造成差异的部分是增加了 "数字")。你到底想用那一行来计算什么?

dasio:
好的,谢谢你。

但我也需要这样的操作

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

但如果我手动计算,它给我一个不同的值。

差异很高。

澄清一下,如果我有1,2989的枢轴,我需要做12989的操作,在所有操作之后,我需要将结果除以10000。

我不知道为什么它给我不同的值
原因: