Wie programmiert man? - Seite 315

 

...

Wenn Sie die Berechnung für feste 0,5 benötigen, können Sie MathSqrt(x) verwenden.

Wenn Sie die Berechnung aber auch für einen variablen Anteil von 0,5 benötigen, können Sie MathPow(x,0,5) verwenden (der Anteil von 0,5 kann auch geändert werden)

dasio:
Hi.

Gibt es eine Funktion, mit der ich diese Operation berechnen kann?

x^0,5 (x= bekannter Wert)

Und noch eine Frage.

Ich habe einen 5-stelligen Makler. Ist es möglich, nur die ersten 4 Dezimalstellen des bekannten Wertes zu erhalten? Dankeschön

Dankeschön
 
mladen:
Wenn Sie die Berechnung für einen festen Wert von 0,5 benötigen, können Sie MathSqrt(x) verwenden. Wenn Sie die Berechnung jedoch auch für einen variablen Teil von 0,5 benötigen, können Sie MathPow(x,0,5) verwenden (der Teil 0,5 kann auch geändert werden).

Vielen Dank für Ihre Antwort. Es funktioniert gut.

Für die zweite Anfrage?

Wenn ich einen 5-stelligen Makler habe, gibt mir der Code ein Privileg mit einem 5-stelligen Makler, aber ich brauche es 4-stellig. Wie kann ich den Wert von 5 auf 4 Stellen umwandeln?

Ich danke Ihnen

 

dasio

Verwenden Sie etwas wie dieses:

price4digit = NormalizeDouble(price,4);
dasio:
Vielen Dank für Ihre Antwort. Es funktioniert gut.

Für die zweite Anfrage?

Wenn ich einen 5-stelligen Broker habe, gibt mir der Code einen 5-stelligen Broker, aber ich brauche ihn 4-stellig. Wie kann ich den Wert von 5 auf 4 Stellen umwandeln?

Vielen Dank für Ihre Antwort.
 

Suche nach dem Schnittpunkt

Hallo!

Ich habe den folgenden Indikator entwickelt:

#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:
dasio

Verwenden Sie etwas wie dieses:

price4digit = NormalizeDouble(price,4);

Hallo mladen,

ist es richtig, wie ich es codiere?

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

MathPow((MathPow(Pivot,0.5)+Zahl(definiert)),2)

Dankeschön

 

...

Die erste Zeile ist OK

Eine Frage zu dieser Zeile:

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

Was ist die genaue Absicht dieser Zeile? So wie sie geschrieben ist, gibt sie das Quadrat der (Quadratwurzel des Pivots + definierte Erhöhung) zurück. Ist es das, was Sie im Sinn hatten?

dasio:
Hallo mladen,

Ist es richtig, wie ich es codiere?

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

MathPow((MathPow(Pivot,0.5)+Zahl(definiert)),2)

vielen Dank!
 
mladen:
Die erste Zeile ist in Ordnung.

Eine Frage zu dieser Zeile:

MathPow((MathPow(Pivot,0.5)+Number(defined)),2);
Was ist die genaue Absicht dieser Zeile? So wie sie geschrieben ist, gibt sie das Quadrat von (Quadratwurzel aus Pivot + definierter Anstieg) zurück. Ist es das, was Sie im Sinn hatten?

Ja, es berechnet zuerst den Wert von MathPow(Pivot,0.5)+Number(defined) und danach muss ich das Quadrat des Ergebnisses berechnen.

Ein Beispiel.

10 = Pivot

1 = Zahl definiert

Ich habe ((10^0,5)+1)^2 Das Ergebnis ist:

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

 

Dann ist alles in Ordnung.

dasio:
Ja, es berechnet zuerst den Wert von MathPow(Pivot,0.5)+Number(defined) und danach muss ich das Quadrat des Ergebnisses berechnen.
 
mladen:
Dann ist alles OK

Okay, danke.

Aber ich brauche auch diese Operation

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

Aber es gibt mir einen anderen Wert, wenn ich es manuell berechnen.

Der Unterschied ist groß.

Um das zu verdeutlichen, wenn ich 1,2989 wie Pivot habe, muss ich die Operation wie 12989 machen und nach der ganzen Operation muss ich das Ergebnis durch 10000 teilen.

Ich weiß nicht, warum es mir einen anderen Wert gibt.

 

dasio

Ich weiß nicht, was die "Absicht" dieser Zeile ist. Mathematisch gesehen ist an dieser Zeile nichts auszusetzen (setzen Sie die "Zahl" auf 0 und Sie werden sehen, dass sie genau den gleichen Wert wie der Pivot zurückgibt, was bedeutet, dass sie korrekt funktioniert; wenn sie also anders ist, als Sie es erwarten, ist der einzige Teil, der den Unterschied ausmacht, die Hinzufügung der "Zahl"). Was genau versuchst du mit dieser Zeile zu berechnen?

dasio:
Ok danke.

Aber ich brauche auch diese Operation

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

Aber ich erhalte einen anderen Wert, wenn ich ihn manuell berechne.

Der Unterschied ist groß.

Um zu verdeutlichen, wenn ich 1,2989 wie Pivot habe, muss ich die Operation wie 12989 machen und nach der ganzen Operation muss ich das Ergebnis durch 10000 teilen.

Ich weiß nicht, warum es mir einen anderen Wert gibt
Grund der Beschwerde: