Hilfe bei der Codierung - Seite 22

 

Danke für deine Antwort Robert

ein solches Dashboard wäre perfekt, aber ich habe keines mit bb squeeze gefunden, und ich habe keine Ahnung, wie ich die bestehenden Dashboards so ändern kann, dass sie bb squeeze erkennen

Meine eigene Idee war sehr einfach und sah wie folgt aus:

int Current;

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

//| expert start function |

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

int start() {

int USDCHF, GBPUSD, EURUSD, AUDUSD;

double upperBB_USDCHF = iBands("USDCHF", 0, 20, 2, 0, PRICE_CLOSE, MODE_UPPER, Current + 0);

double upperKC_USDCHF = iCustom("USDCHF", 0, "Keltner Channels", 20, 0, Current + 0);

double lowerBB_USDCHF = iBands("USDCHF", 0, 20, 2, 0, PRICE_CLOSE, MODE_LOWER, Current + 0);

double lowerKC_USDCHF = iCustom("USDCHF", 0, "Keltner Channels", 20, 2, Current + 0);

if(upperBB_USDCHFlowerKC_USDCHF)

Comment(": BollingerSqueeze for USDCHF");

return(0);

}

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

das ist nur für mehrere verschiedene Paare, aber wie ich schon sagte, der 'Kommentar' aktualisiert sich die ganze Zeit

edit: ok ich habe es behoben, keine Hilfe mehr nötig

 
crexsking:
Hallo Mladen und alle anderen Mitglieder,

Ich handele Chartmuster mit "big candle move" (Open[0]-Close[0] > 32 pips oder umgekehrt) n ich handele eurusd (H1 auf FXOpen <--- genaueste Kerzengröße n Muster)...

Also, es gab absolut keine Indikatoren. Nur eine Handelsphilosophie.

Ich versuche, einen EA über die Logik zu programmieren, aber ich denke, da fehlt etwas... bitte helfen Sie!!!

Was "etwas fehlt", dass ich meine:

-ich will, bevor die "große Kerze" passieren... das System berechnet letzten 4 Kerzen < 20pips (open - close oder umgekehrt) für jede Kerze.

Wohingegen... was passiert ist meine mql4 Codierung nicht lesen die letzten 4 Kerzen vor großen Kerze... im so confiused...

Was passieren sollte, ist:

1. Zeit für große Kerze :-

- 3pm,4pm,5pm(London Open) ..n.. 8pm,9pm,10pm(US Open) <---- alle Zeiten sind angegeben, da ich Malaysier bin, also schalte deinen Computer auf GMT 8.00++

2. Big Candle Größe :-

- 32 pips n oben ( wenn sideway vor sind 20 pips n unten )

- 42 Pips n oben ( wenn sideway vor sind 20 Pips n oben )

3. Sideway Markt :-

- unter 50 Pips für die letzten mindestens 4 Stunden n muss eine andere Farbe haben.

4. Ungültiger oder gefährlicher Markt (Marktabbruch): <--- kein Handel, wenn diese Marktbedingung eintritt

1. Sideway vor London Open B,B,B,B aufwärts oder S,S,S,S abwärts. <--- B,B,B,B = Kerzen Kaufen,kaufen,kaufen,kaufen... kontinuierlich

2. Große Kerze schließen am Tageszonemaximum. <---- 75 Pips Minimum Hoch Tief

3. Große Kerze tritt um 22 Uhr auf. <----- GMT 8++ oder Malaysia Zeit

4. Große Kerze zu groß und mehr als 80 Pips.

5. Es gibt Kerzen mit mehr als 50 Pips vor der Londoner Eröffnung.

6. Die Form eines Aufwärtsmarktes in Tokio Sitzung und große Kerze nach oben in London öffnen (umgekehrt für abwärts)

Die Codierung Probleme anhängen :-

extern double trigger = 32;

extern double sideway = 20;

extern int hour1 = 6;

extern int hour2 = 7;

extern int hour3 = 8;

extern int hour4 = 9;

extern int hourCB = 10;

extern int hourTRADE = 11;

extern int TradeTimeStart = 0;

extern int TradeTimeEnd = 23;

//---Variables

double currentPrice = 0.00000;

static datetime barStart;

string openTrades = "none";

int ticket;

int i = 0;

double lotSize;

double CBB = 0;

double CBS = 0;

double CBBT;

double CBST;

double PreviousCBB;

double PreviousCBS;

double CS1B;

double CS2B;

double CS3B;

double CS4B;

double CS5B;

double CS6B;

double CS1S;

double CS2S;

double CS3S;

double CS4S;

double CS5S;

double CS6S;

double CS1BT;

double CS2BT;

double CS3BT;

double CS4BT;

double CS1ST;

double CS2ST;

double CS3ST;

double CS4ST;

double PreviousCS1B;

double PreviousCS2B;

double PreviousCS3B;

double PreviousCS4B;

double PreviousCS1S;

double PreviousCS2S;

double PreviousCS3S;

double PreviousCS4S;

double GroupSW1B;

double GroupSW2B;

double GroupSW3B;

double GroupSW4B;

double GroupSW5B;

double GroupSW6B;

double GroupSW1S;

double GroupSW2S;

double GroupSW3S;

double GroupSW4S;

double GroupSW5S;

double GroupSW6S;

string permit = "suspended";

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

//| expert initialization function |

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

int init()

{

//----

//----

return(0);

}

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

//| expert deinitialization function |

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

int deinit()

{

//----

//----

return(0);

}

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

//| expert start function |

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

int start(){

CBB=(Close[1]-Open[1])/Point;

CBS=(Open[1]-Close[1])/Point;

CBBT=(hourCB==Hour());

CBST=(hourCB==Hour());

PreviousCBB = (CBB == CBBT);

PreviousCBS = (CBS == CBST);

CS1B=(Close[7]-Open[7])/Point;

CS2B=(Close[6]-Open[6])/Point;

CS3B=(Close[5]-Open[5])/Point;

CS4B=(Close[4]-Open[4])/Point;

CS5B=(Close[3]-Open[3])/Point;

CS6B=(Close[2]-Open[2])/Point;

CS1S=(Open[7]-Close[7])/Point;

CS2S=(Open[6]-Close[6])/Point;

CS3S=(Open[5]-Close[5])/Point;

CS4S=(Open[4]-Close[4])/Point;

CS5S=(Open[3]-Close[3])/Point;

CS6S=(Open[2]-Close[2])/Point;

CS1BT=(hour1==Hour());

CS2BT=(hour2==Hour());

CS3BT=(hour3==Hour());

CS4BT=(hour4==Hour());

CS1ST=(hour1==Hour());

CS2ST=(hour2==Hour());

CS3ST=(hour3==Hour());

CS4ST=(hour4==Hour());

PreviousCS1B = (CS1B == CS1BT);

PreviousCS2B = (CS2B == CS2BT);

PreviousCS3B = (CS3B == CS3BT);

PreviousCS4B = (CS4B == CS4BT);

PreviousCS1S = (CS1S == CS1ST);

PreviousCS2S = (CS2S == CS2ST);

PreviousCS3S = (CS3S == CS3ST);

PreviousCS4S = (CS4S == CS4ST);

GroupSW1B = (CS3B<sideway&&CS4S<sideway&&CS5B<sideway&&CS6S=trigger);

GroupSW1S = (CS3S<sideway&&CS4B<sideway&&CS5S<sideway&&CS6B=trigger);

currentPrice = iClose(NULL,0,0);

Comment("Price Continuation\n",

"Status: ",status()

);

//----Trade Algorithm

//trade hours value...

if(TradeTimeStart <= Hour() && Hour() <= TradeTimeEnd){

if(openTrades == "none" && permit == "approved"){

requestLongOrder();

requestShortOrder();

}

else{

requestPermit();

}

}

if(openTrades == "long"){

manageLongTrade();

}

if(openTrades == "short"){

manageShortTrade();

}

return(0);

}

//---FUNCTIONS---

//--

void requestLongOrder(){

if(hourTRADE==Hour() && GroupSW1B){

//--

Lots = CalcLots ();

ticket = OrderSend(Symbol(),OP_BUY,Lots,Ask,3,currentPrice-stopLoss,currentPrice+takeProfit,"My order ",06010,0,Green);

if(ticket<0){

//add email/sms alert here with GetLastError();

}

if(ticket>0){

openTrades = "long";

permit = "suspended";

}

}

}

void requestShortOrder(){

if(hourTRADE==Hour() && GroupSW1S){

//--

Lots = CalcLots ();

ticket = OrderSend(Symbol(),OP_SELL,Lots,Bid,3,currentPrice+stopLoss,currentPrice-takeProfit,"My order ",06010,0,Red);

if(ticket<0){

//add email/sms alert here with GetLastError();

}

if(ticket>0){

openTrades = "short";

permit = "suspended";

}

}

}

* was sollte passieren, wie Screenshot beigefügt.

Bitte helfen Sie...

Danke...

Mit freundlichen Grüßen,

crexsking

Hallo Crexsking,

Das Einzige, was mir einfällt, ist, dass Sie möglicherweise für 5-stellige Broker konvertieren müssen, indem Sie nach dem Start etwas wie folgt eingeben

double pipMultiplier = 1; (vor dem Start)

int start()

{

if (Ziffern==3 || Ziffern==5)

pipMultiplier = 10;

sonst pipMultiplier = 1;

Und dann nach jedem Point so etwas wie Point*pipMultiplier.

 

Wie wurden die Kommentare gelöst?

Deorn:
Danke für deine Antwort Robert

so ein dashboard wäre perfekt, aber ich habe keines mit bb squeeze gefunden, und ich habe keine Ahnung, wie ich die bestehenden dashboards so ändern kann, dass sie bb squeeze erkennen

Meine eigene Idee war sehr einfach und sah wie folgt aus:

========

das ist dann nur für mehrere verschiedene Paare, aber wie ich schon sagte, der "Kommentar" wird ständig aktualisiert

edit: ok ich habe es behoben, keine Hilfe mehr nötig

Hallo Deorn,

Schön zu hören, dass du dein Problem gelöst hast. Könntest du uns mitteilen, wie du das Aktualisieren des "Kommentars" korrigiert hast?

Viel Spaß beim Programmieren...!

Robert

 
cosmiclifeform:
Hallo Deorn,

Schön zu hören, dass Sie Ihr Problem gelöst haben. Möchten Sie uns mitteilen, was Sie getan haben, um die "Kommentar"-Auffrischung zu korrigieren...?

Viel Spaß beim Kodieren...!

Robert

Ich habe es mit 'objectcreate' gemacht, wie du gesagt hast

Ich habe es für die Zeitrahmen M5 bis monatlich in 10 verschiedenen Paaren realisiert:

Keltner Channels werden benötigt mit dem genauen Namen 'Keltner Channels', ich wähle die Einstellungen 20 mit Faktor 1.5

beides sind zwei normale Indikatoren

Ich würde ein leeres Fenster wählen, in das ich sie einfüge

und sorry für die hässliche Programmierung, es ist mein erster eigener Indikator, aber er erfüllt seinen Zweck

grüßt

 
mrtools:
Hallo Crexsking,

Das Einzige, was mir einfällt, ist, dass Sie möglicherweise für 5-stellige Broker konvertieren müssen, indem Sie nach dem Start etwas wie folgt eingeben

double pipMultiplier = 1; (vor dem Start)

int start()

{

if (Ziffern==3 || Ziffern==5)

pipMultiplier = 10;

sonst pipMultiplier = 1;

Und dann nach jedem Punkt so etwas wie Point*pipMultiplier.

Hallo mrtools und danke...

Ich werde es tun, aber vorher kann ich fragen.. was ist die Beziehung zu konvertieren es mit 5 Ziffer Makler?

Ich meine... bevor dies, das System kann nicht erkennen, bull oder bear Kerze in den letzten 4 Kerzen der sideway Markt.

Wenn ich diesen Code eingebe, wird das System ihn erkennen?

Sorry für mein schlechtes Englisch...

Grüße,

crexsking

 
crexsking:
Hallo mrtools n danke...

Ich werde es tun, aber vor, dass kann ich fragen.. was ist die Beziehung zu konvertieren es mit 5-stelligen Makler?

Ich meine... vor diesem, das System kann nicht erkennen, bull oder Bär Kerze in den letzten 4 Kerzen von sideway Markt.

Wenn ich diesen Code eingebe, wird das System ihn erkennen?

Sorry für mein schlechtes Englisch...

Grüße,

crexsking

Crexsking, es wird es zu Pips bringen, so dass, wenn zum Beispiel Sie haben .91135 für offene und .90685 für schließen die Differenz ist .0045, wenn Sie auf 5-stellige Broker Punkt würde gleich 450, weil seine geteilt durch .00001, aber wenn Sie die Konvertierung verwenden es richtig machen es 45 Pips, weil Sie dann durch .0001 oder .00001 x 10.And so weit wie erkennen Bull oder Bär Kerze wirklich nicht sagen kann, weil ich nicht sehen, etwas anderes falsch mit Ihrem Code.

 

Big Player's Coding... Hilfe bitte...

\\\---- Bearbeitet

Ok erledigt...

Problem gelöst.

Grüße,

crexsking

 

Brauche Hilfe

Hallo an alle Master-Codierer, ich brauche bitte eure Hilfe:

Was über die Codierung es, wenn ich horizontale Linien die oberen und unteren Grenzen auf die Gruppe der Kerze (close - open) ist klein im Wert erstellen möchten. Wert (close - open)*100000 = ohne Polarität und immer positiv. Meine Kerzennummer von externem Inhalt.

Beispiel:

extern int (close - open)*100000 = 10; // Sein Mittelwert (close - open) <= 10

extern int Anzahl der Kerzen maximal = 3;

"Horizontale Linie obere Grenze" = aus dem höchsten in der Gruppe enthaltenen Open/Close genommen

"Horizontale Linie untere Grenze" = ausgehend vom höchsten Open/Close der Gruppe

Mit freundlichen Grüßen,

Vielen Dank für Ihre Aufmerksamkeit

Dateien:
 

...

Ich fürchte, ich verstehe nicht genau, was Sie meinen. so beantworten nur einen Teil Ihrer Frage.

Wenn Sie die Differenz eines 5-stelligen Symbols auf einem 5-stelligen Broker mit 100000 multiplizieren, werden Sie den gewünschten Wert erhalten, aber wenn das Symbol zum Beispiel eines der JPY-Crosses ist, werden Sie Werte erhalten, die diese Werte bei weitem übersteigen. Auch bei einem 4-stelligen Broker werden Sie größere Werte erhalten. Um dies zu verhindern, ist es am besten, die Differenz in Pips zu berechnen. Dies ist der Weg, wie Sie das tun können:
double pipMultiplier = 1;

if (Digits==3 || Digits==5) pipMultiplier = 10;

//

//

// calculate the difference in pips

//

//

double difference = MathAbs((Close[shift] - Open[shift])/(Point*pipMultiplier));[/PHP]

Und es wird immer in Pips sein, unabhängig von dem Symbol oder Broker

Wie bei Minimum und Maximum können Sie den niedrigsten Tiefstwert und den höchsten Höchstwert einer Reihe von Balken mit einem Code wie diesem herausfinden (dieses Beispiel ist so eingestellt, dass ein Bereich von 3 Balken betrachtet wird, da Sie darüber sprechen):
[PHP]double highest = High;

double lowest = Low;

paijowijaya:
Hallo für alle Master-Codierung, ich brauche Ihre Hilfe bitte:

Was ist mit der Codierung, wenn ich horizontale Linien die oberen und unteren Grenzen auf der Gruppe der Kerze (close - open) ist klein im Wert erstellen möchten. Wert (close - open)*100000 = ohne Polarität und immer positiv. Meine Kerzennummer von externem Inhalt.

Beispiel:

extern int (close - open)*100000 = 10; // Sein Mittelwert (close - open) <= 10

extern int Anzahl der Kerzen maximal = 3;

"Horizontale Linie obere Grenze" = aus dem höchsten in der Gruppe enthaltenen Open/Close genommen

"Horizontale Linie untere Grenze" = ausgehend vom höchsten Open/Close der Gruppe

Mit freundlichen Grüßen,

Dankeschön
 
mladen:
Ich fürchte, ich verstehe nicht genau, was Sie meinen, also beantworte ich nur einen Teil Ihrer Frage. Wenn Sie die Differenz eines 5-stelligen Symbols auf einem 5-stelligen Broker mit 100000 multiplizieren, dann erhalten Sie den gewünschten Wert, aber wenn das Symbol z.B. eines der JPY-Kreuze ist, dann erhalten Sie Werte, die diese Werte bei weitem übersteigen. Auch bei einem 4-stelligen Broker werden Sie größere Werte erhalten. Um dies zu vermeiden, ist es am besten, die Differenz in Pips zu berechnen. Dies ist der Weg, wie Sie das tun können:
double pipMultiplier = 1;

if (Digits==3 || Digits==5) pipMultiplier = 10;

// calculate the difference in pips

double difference = MathAbs((Close[shift] - Open[shift])/(Point*pipMultiplier));[/PHP]

:
[PHP]double highest = High;

double lowest = Low;

Große Überraschung, ich bin sehr glücklich, dass Sie auf meine Frage Master Mladen antwortet,

Aber sorry, ich bin immer noch verwirrt, würden Sie die vollständige Codierung geben? Wert * 100000 Ich meinte, einfach in den Lesungen zu sein, nicht 0,0002 (4 Ziffern hinter dem Komma), aber wenn Sie einen einfacheren Weg haben, werde ich Ihren Weg folgen. Im Wesentlichen, wenn gefunden drei Kerzen (das Gleichgewicht Zone oder Käufer = Verkäufer oder Seite Weg Zone, jeder TF seine unterschiedliche Anzahl von Kerzen), die klein ist (sein Wert wird von der Differenz zwischen Close - Open genommen) Ich möchte eine horizontale Linie zu zeichnen, wie das Bild, das ich hochgeladen habe. So kenne ich das Angebot und die Nachfrage im Chart mit Hilfe der Linie. Oder gibt es einen solchen Indikator, den Sie haben?

Mit freundlichen Grüßen,

Vielen Dank, Meister Mladen