Hilfe bei der Codierung - Seite 54

 

Brauche Hilfe bei Sleep-Funktion

Hallo mladen

Meine Anforderung ist, wenn der vorherige Handel Stoploss getroffen hat, sollte EA für 24 Stunden schlafen. Könnten Sie mir bitte helfen, es zu codieren

 
mladen:
annbeea Zum ersten Teil Ihres Beitrags: Ja, diese Version wird sich wiederholen (es liegt daran, wie die T3-Berechnung durchgeführt wird und sie hat einen Fehler, deshalb habe ich gesagt, dass es besser ist, die andere zu verwenden)

hallo mladen, neben der Verwendung der anderen, die Sie erwähnt, könnten Sie neu codieren, dass ein Teil des Indikators beigefügt, wie ich seine Kreuzung Stil bevorzugen, so dass es nicht neu malen Vergangenheit und mit dem richtigen Alarm-Code?

Vielen Dank für Ihre Hilfe

Dateien:
 

Handelsmarkierungen auf dem Diagramm, wie kann ich sie löschen

Ich erhalte diese roten Punkte auf meinen Charts jedes Mal, wenn eine Order platziert wird. wie kann ich sie ausschalten oder löschen. Ich weiß nicht, was die Ursache dafür ist.

Dateien:
dots.jpg  71 kb
 

Sie können eine Funktion wie diese verwenden:

bool lastOrderStopLossHit(int magicNumber, string symbol, datetime& lastTime)

{

double lastClosePrice = -1;

double lastStopLoss = -1;

//

//

// reset the time of the last order

//

//

lastTime = -1;

//

//

// find the last order

//

//

for (int i=OrdersHistoryTotal()-1; i>=0; i--)

{

if (OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)==false) continue;

if (OrderMagicNumber()!=magicNumber) continue;

if (OrderSymbol() !=symbol) continue;

if (OrderCloseTime()>lastTime)

{

lastTime = OrderCloseTime();

lastClosePrice = OrderClosePrice();

lastStopLoss = OrderStopLoss();

}

}

int digits = MarketInfo(symbol,MODE_DIGITS);

return (lastTime!=-1 && NormalizeDouble(lastClosePrice,digits)==NormalizeDouble(lastStopLoss,digits));

}[/PHP]

and then at the beginning of the start procedure place a code that could look like this :

[PHP] datetime lastClosedTime;

if (lastOrderStopLossHit(1,Symbol(),lastClosedTime) && (lastClosedTime+24*60*60)>TimeCurrent()) return(0);

Wenn Sie eine andere Pause als 1 Tag wünschen, ändern Sie "24*60*60" auf die von Ihnen gewünschte Zahl.

PS: Ich habe "1" als magische Zahl für den Anruf verwendet. Ersetzen Sie sie durch Ihre echte magische Zahl

uk_kara:
Hallo mladen Meine Anforderung ist, wenn der vorherige Handel den Stoploss erreicht hat, sollte EA für 24 Stunden schlafen. Könntest du mir bitte helfen, es zu codieren
 

Hallo mladen,

könntest du mir helfen, den Code zu ändern, so dass er (normalisiert) eine vertikale Skala hat: Minimum als Null, Maximum als 100, Mittelpunkt bei 50 statt bei Null, aber immer noch die gleichen Signale wie vorher? Vielen Dank für Ihre Hilfe.

Dateien:
 

annbeea

Das kannst Du nicht machen. Normalisierung jeglicher Art wird die Signale verändern (sie können nicht genau gleich bleiben - vor allem, da Sie 3 Werte haben, gibt es noch weniger Chancen, die Signale an den gleichen Stellen zu halten)

annbeea:
Hallo mladen, könntest du mir helfen, den Code zu ändern, so dass er (normalisieren) kann, um eine vertikale Skala zu haben: Minimum als Null, Maximum als 100, Mittelpunkt bei 50 anstelle von Null jetzt, aber immer noch die gleichen Signale wie vorher beibehalten? Vielen Dank für Ihre Hilfe.
 
mladen:
Sie können eine Funktion wie diese verwenden:

.............................

Wenn Sie eine andere Pause als 1 Tag wünschen, ändern Sie die "24*60*60" nach Ihren Wünschen

PS: Ich habe "1" für die magische Zahl in dem Aufruf verwendet. Ersetzen Sie sie durch Ihre echte magische Zahl

Danke Mladen. Ich werde es ausprobieren

 
mladen:
annbeea Sie können das nicht tun. Normalisierung jeglicher Art wird die Signale verändern (sie können nicht genau gleich bleiben - vor allem, da Sie 3 Werte haben, gibt es noch weniger Chancen, die Signale an den gleichen Stellen zu halten)

Hallo mladen

kann es sein, dass ich das Wort "normalisieren" missbrauche oder missverstehe? Ist es möglich, den Oszillator-Test so zu skalieren, wie es allgemein üblich ist: min 0, max 100, mid 50?

Btw, ist es möglich, meine früheren rsi Test zu ändern, um nicht repaint? kann ich wissen, ist es die t3 oder die rsi Komponenten repaint oder beide repaint? Vielen Dank für Ihre Hilfe.

 

annbeea

Wir sprechen über dieselbe Sache: Die Umwandlung von Werten in ein Minimum und ein Maximum führt immer zu einer "Verformung" der Originalwerte. Wir können es Normalisierung oder Standardisierung nennen oder was immer wir wollen, aber der Preis, den wir dafür zahlen, ist der Verlust der Korrelation der Originalwerte. Und wenn sie "deformiert" sind, werden die Signale an ganz anderen Stellen auftreten

Was den rsi-Trial-Indikator betrifft: der t3-Teil wird neu gezeichnet. Das liegt daran, wie die vorherigen Schritte der t3-Berechnung behandelt werden. Beim ersten Mal, wenn er berechnet wird (wenn Sie ihn auf dem Chart platzieren, den Zeitrahmen oder das Symbol ändern, ...), ist die Berechnung in Ordnung. Aber beim nächsten Tick werden die Variablen e1 bis e6 die Werte des aktuellen (nullten) Balkens haben, wenn Sie beim nächsten Tick berechnen, und sie sollten mindestens die Werte des ersten Balkens haben (abhängig von der "Limit"-Variablen). Es ist ein Fehler, dass die Berechnung für den nächsten Tick die Werte des vorherigen Schritts übernimmt, was bei jedem neuen Tick zu einem immer größeren Fehler führt, und deshalb habe ich Ihnen empfohlen, diesen anderen Indikator als Grundlage zu verwenden, da in diesem diese Probleme gelöst sind

annbeea:
Hallo mladen

vielleicht missbrauche oder missverstehe ich das Wort "normalisieren", ist es möglich, den Oscartest so zu skalieren wie die übliche Skala, min 0, max 100, mid 50?

Btw, ist es möglich, meine früheren rsi Test zu ändern, um nicht repaint? kann ich wissen, ist es die t3 oder die rsi Komponenten repaint oder beide repaint? Vielen Dank für die Hilfe.
 
uk_kara:
Vielen Dank, Mladen. Ich werde es ausprobieren

Funktioniert wie immer einwandfrei, Danke Mladen, du bist ein Star