コーディングの方法は? - ページ 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部分は変更することができます)。

ご回答ありがとうございます。問題なく動作しています。

2番目のリクエストについて?

私は5桁のブローカーを持っている場合、コードは私に5桁のブローカーとプリベを与えるが、私は4桁でそれを必要とします。どのように私は5桁から4桁に値を変換することができますか?

ありがとうございます。

 

ダシオ

このようなものを使用します。

price4digit = NormalizeDouble(price,4);
dasio:
ご回答ありがとうございました。それはうまく動作しています。

2番目のリクエストは?

私は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)

ありがとうございました。

 

...

最初の行はOKです

この行について質問です.

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

この行の正確な意図は何でしょうか?この書き方だと、(ピボットの平方根+定義された増加分)の2乗が返されます。これは、あなたが考えていたことですか?

dasio:
mladenさん、こんにちは。

このコードで合っていますか?

ピボット = NormalizeDouble(( PDayHigh + PDayLow + Close ) / 3,4)

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

ありがとうございます。
 
mladen:
最初の行はOK

この行について質問です。

MathPow((MathPow(Pivot,0.5)+Number(defined)),2);
この行の正確な意図は何でしょうか?この書き方だと、(ピボットの平方根+定義された増加分)の2乗が返されます。これは、あなたが考えていたことですか?

MathPow(Pivot,0.5)+Number(defined) を最初に計算し、その結果の2乗を計算しなければならないのですが、どうすればよいのでしょうか?

例えば

10 = Pivot

1 = 定義された数

私は、((10^0,5)+1)^2 その結果は。

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

 

すると、すべてOKです。

dasio:
MathPow(Pivot,0.5)+Number(defined) の値を最初に計算し、その結果の2乗を計算する必要があります。
 
mladen:
それから、それはすべてOKです

OK ありがとうございます。

しかし、私は次の操作も必要です。

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

しかし、それは私が手動でそれを計算する場合、私に異なる値を与える。

その差は大きいです。

つまり、Pivotが12989の場合、12989の演算を行い、その演算結果を10000で割る必要があります。

なぜ違う値が出るのかわかりません。

 

ダシオ

その行の「意図」がわかりません。数学的には何の問題もありません("number "を0に設定すると、Pivotと全く同じ値が返されるのがわかると思います。)その行で何を計算しようとしているのでしょうか?

dasio:
わかりました、ありがとうございます。

でも、こんな演算も必要なんです。

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

しかし、それは私が手動でそれを計算する場合、私に異なる値を与える。

その差は大きいです。

ということは、Pivotが12989の場合、12989の演算を行い、その結果を10000で割る必要があるのでしょうか?

なぜ違う値が表示されるのかわかりません。