Wie findet man den Zeitpunkt des Balkens, an dem sich die gleitenden Durchschnitte gekreuzt haben? (Code innen) - Seite 2

 

Oh und Alladir - du scheinst der unausstehliche Typ zu sein.

Tun Sie sich selbst einen Gefallen und hören Sie auf, Ihre Zeit damit zu verschwenden, in diesem Thread zu schreiben oder in zukünftigen, die ich vielleicht schreibe, wenn alles, was Sie tun werden, ist trollen und in keiner Weise hilfreich sein.

 
DomGilberto:

Oh und Alladir - du scheinst der unausstehliche Typ zu sein.

Tun Sie sich selbst einen Gefallen und hören Sie auf, Ihre Zeit damit zu verschwenden, in diesem Thread zu schreiben oder in zukünftigen, die ich vielleicht schreibe, wenn alles, was Sie tun werden, ist trollen und in keiner Weise hilfreich sein.

Wenn Sie nicht höflich sein können, posten Sie nicht.
 

WHRoader (wenn es Ihnen nichts ausmacht) könnten Sie mir sagen, ob ich damit richtig oder falsch liege?

double buyPrice = iHighest(Symbol(), 0, MODE_HIGH, iBarShift(Symbol(), 0, triggerBarTime, true), 0); 

int Buy_Price = buyPrice; 

int buyticket = OrderSend(Symbol(),Buy_Price,LotSize,Ask,3,0,0,NULL,MagicNumber,0,Green);   Usually I'd put OP_BUY where Buy_Price is...

Wollen Sie damit sagen, dass, weil iHighest einfach eine Taktnummer angibt, mein Versuch, Buy_Price an die Stelle von OP_BUY zu setzen, keinen Sinn macht, weil OrderSend einen Double nimmt? (wenn iHighest eine ganze Zahl ist?)

Wie kann ich meine iHighest-Logik in einen Preis umwandeln, so dass meine OrderSend-Funktion versteht, dass ich den höchsten Wert des iHighest-Bereichs kaufen möchte?

 
RaptorUK:
Wenn Sie sich nicht benehmen können, posten Sie nicht.


Ja, du hast Recht. Entschuldigung.
 
DomGilberto:

WHRoader (wenn es Ihnen nichts ausmacht), könnten Sie mir sagen, ob ich richtig oder falsch in diesem sind?

"double buyPrice = iHighest(Symbol(), 0, MODE_HIGH, iBarShift(Symbol(), 0, triggerBarTime, true), 0);"

int Buy_Price= buyPrice;

"int buyticket =OrderSend(Symbol(),Buy_Price,LotSize,Ask,3,0,0,NULL,MagicNumber,0,Green);" Normalerweise würde ich OP_BUY an die Stelle von Buy_Price setzen...


  1. Video abspielen
    Bitte bearbeiten Sie Ihren Beitrag.
    Für große Mengen von Code, fügen Sie es.

  2. "double buyPrice = iHighest... 
    "double price = int bar index," macht keinen Sinn. Brechen Sie es auf:
    // double buyPrice = iHighest(Symbol(), 0, MODE_HIGH, iBarShift(Symbol(), 0, triggerBarTime, true), 0);
    int    iTBT     = iBarShift(Symbol(), 0, triggerBarTime, true),
           iHH      = iHighest(Symbol(), 0, MODE_HIGH, iTBT + 1, 0); // Include tBT bar. Len = from - to + 1
    double buyPrice = High[iHH];
    
  3. Bei den meisten Funktionen (außer marketInfo) brauchen Sie Symbol() nicht zu verwenden. Sie können NULL als aktuelles Chart-Symbol verwenden, so wie Sie bereits 0 als aktuellen Chart-Zeitrahmen verwenden.
 

Omg - Warum ist es so klar, nachdem man es realisiert hat! Ich denke, hier macht Übung den Meister.

Ich verstehe es jetzt ehrlich gesagt viel besser. Mach ein :) auf mein Gesicht!

Ich werde versuchen, das jetzt zu erledigen und sehen, was dabei herauskommt!

Danke!!!

 
int buyticket = OrderSend(Symbol(),buyPrice,LotSize,Ask,3,0,0,NULL,MagicNumber,0,Green);

Wenn ich versuche, dies unten zu verwenden, erhalte ich einen Fehler im Journal, der besagt, dass die Funktion OrderSend cmd eine ganze Zahl sein muss?

Ich verstehe das offensichtlich nicht, denn Sie haben erwähnt, dass "OrderSend nur einen Preis (ein Double) annimmt und es keinen Sinn macht, eine Order bei 9 zu öffnen".

Wenn ich es in "int Buy_Price = buyPrice" ändere, funktioniert das natürlich, um die Aufträge zu platzieren, aber es ist nicht relevant, wo der Eintrag sein sollte. (Dies ist meine letzte Frage - ich will mich natürlich nicht lächerlich machen!)

int iTBT= iBarShift(NULL,60, triggerBarTime, true),
         iHH= iHighest(NULL,60, MODE_HIGH, iTBT + 1, 0); // Include tBT bar. Len = from - to + 1
            double buyPrice = High[iHH];
 
DomGilberto:

Wenn ich versuche, dies unten zu verwenden, erhalte ich einen Fehler im Journal, der besagt, dass die Funktion OrderSend cmd eine Ganzzahl sein muss?

Offensichtlich verstehe ich das nicht, denn Sie haben erwähnt, dass "OrderSend nur einen Preis (einen Doppelwert) annimmt und es keinen Sinn macht, eine Order bei 9 zu eröffnen".

Wenn ich es in "int Buy_Price = buyPrice" ändere, funktioniert das natürlich, um die Aufträge zu platzieren, aber es ist nicht relevant, wo der Einstieg sein sollte. (Dies ist meine letzte Frage - ich will mich natürlich nicht lächerlich machen!)

Ich weiß, dass Sie das nicht hören wollen, aber wenn Sie lernen wollen, müssen Sie auch lernen, die Dokumentation zu prüfen und zu lesen ... das gehört zum Prozess ... wenn ich einen OrderSend()-Befehl kodiere, vergleiche ich ihn jedes Mal mit der Dokumentation, um zu prüfen, ob ich mich richtig erinnert habe.

int buyticket = OrderSend(Symbol(),buyPrice,LotSize,Ask,3,0,0,NULL,MagicNumber,0,Green);

Um welche Art von Order handelt es sich? click -->OrderSend() sagt, dass der zweite Parametercmd - Operation type ist. Es kann jeder der Trade Operation Enumeration sein .

 

Ja, Sie haben recht, RaptorUK - ich lese eigentlich (bei so ziemlich allem, was ich tue) die Dokumentation (der Finger sitzt praktisch die ganze Zeit auf F1).

Jesus - Mit frischen Augen habe ich erkannt, wie dumm ich gewesen bin!

Ich wollte buyPrice nicht an den zweiten Parameter von cmd setzen, sondern an den vierten Parameter (double Price)!

Das funktioniert also (in der richtigen Reihenfolge) - ich habe es in einen Kauf- und einen Verkaufsstoppauftrag geändert. Gott, ich ärgere mich, wie dumm ich war!

int buyticket = OrderSend(Symbol(),OP_BUYSTOP,LotSize,buyPrice,3,bsl,btp,NULL,MagicNumber,0,Green); 
      if(buyticket>0)OrderModify(buyticket,OrderOpenPrice(),bsl,btp,0,CLR_NONE);

int iTBT= iBarShift(NULL,60, triggerBarTime, true),
        iHH= iHighest(NULL,60, MODE_HIGH, iTBT + 1, 0); // Include tBT bar. Len = from - to + 1
            double buyPrice = High[iHH];

Der "buyPrice" setzt die Order einfach über den Höchststand des letzten geschlossenen Balkens, der den 21 EMA berührt hat (statt des Balkens, der der höchste des MA-Kreuzes war und des Balkens, der den 21 EMA berührt hat...)

Ich werde ein wenig herumprobieren und sehen, was ich falsch mache! (Ich habe so viel Zeit damit verbracht, das hier anzustarren, dass es jetzt schmerzhaft wird, lol.)

Vielen Dank!!!!

(p.s was bedeutet// Include tBT bar. Len = from - to + 1 note?)

 
  1. DomGilberto:

    (p.s was bedeutet // Include tBT bar. Len = from - to + 1 note?)

    HH= iHighest(NULL,60, MODE_HIGH, iTBT + 1, 0); // Include tBT bar. Len = from - to + 1

    Höchster Taktindex beginnend bei Null für iTBT+1 Takte schließt den iTBT-Takt ein.

    Ihr ursprünglicher Beitrag

    double buyPrice = iHighest(Symbol(), 0, MODE_HIGH, iBarShift(Symbol(), 0, triggerBarTime, true), 0);
    
    schloss den triggerBarTime-Balken nicht ein.
  2. iHH= iHighest(NULL,60, MODE_HIGH, iTBT + 1, 0); // Include tBT bar. Len = from - to + 1
    double buyPrice = High[iHH];
    Warum haben Sie die NULL,0 in NULL,60 geändert? Jetzt ist iHH nur für den PERIOD_H1-Chart gültig, und wenn der aktuelle Chart NICHT der H1-Chart ist, dann ist High[iHH] gefälscht.
Grund der Beschwerde: