Fragen von Neueinsteigern zu MQL4 und MQL5, Hilfe und Diskussion über Algorithmen und Codes - Seite 392

 
Snower: Die gelbe Linie ist der Preiskanal, den der Preis durchbrechen sollte, und der Auftrag würde mit einer Smiley-Kerze eröffnet, und alle davor würden ignoriert werden.

Ist in Ihrem Code der Preiskanal channel_top und channel_bottom oben definiert? Wo ist die Definition einer Stiftleiste?

 
Vitaly Muzichenko:

Antwort

Artyom, Sie haben nicht genau gelesen: der TS muss sich nur bei einem Pin-Bar-Ausbruch öffnen, bzw. wenn Sie einen Pin-Bar (kleiner Körper und großer Schatten) vorschreiben, kann die Bedingung erfüllt werden

Vitaly, ich habe hierauf geantwortet:

...und alle vorherigen ignoriert...

Wenn alle, die vorher da waren, Nadelstäbe waren, wie kann man sie dann ignorieren, wenn sie aktuell waren, waren Nadelstäbe, die die Grenze überschritten?

 
Sergey Likho:

Wie wird die iCustom-Funktion in MT4 gehandhabt? Bitte antworten Sie denjenigen, die davon wissen!


Im Strategietester ruft z.B. ein EA den Indikator bei jedem Tick auf.

Wenn die Funktion aufgerufen wird, wird der Indikator in den Speicher geladen, berechnet alle Werte von Null Bar bis Bars neu und gibt dann den Wert am gewünschten Offset zurück.

Wenn ich den Wert von einem Balken beim ersten Tick und den Wert des zweiten Balkens beim zweiten Tick abfrage, berechnet mein Expert Advisor den Indikator dann zweimal für die gesamte Historie?


Wenn der Expert Advisor auf den Indikator1 zugreift und er iCustom zum Indikator2 hat. Wie oft wird der Indikator2 neu berechnet, wenn der Wert von Indikator1 abgefragt wird?


Vielleicht speichert der Strategy Tester und das MT4-Terminal die Indikatorwerte auf jedem Balken, so dass sie nicht bei jeder erneuten Anfrage neu berechnet werden müssen?

Es hängt alles von der Umsetzung des Indikators ab. Wenn die Berechnung korrekt ist, dann berechnet der Indikator nur den aktuellen Balken - die anderen wurden bei (rates_total-prev_calculate)>1 berechnet

 

Wie wird der Durchschnitt von iMAOnArray über ein Array ermittelt, wenn das ArrayEMPTY_VALUE-Werte enthält?

 
Максим Дмитриев:

Wie wird der Durchschnitt von iMAOnArray über ein Array ermittelt, wenn das ArrayEMPTY_VALUE-Werte enthält?


Verstehe: Wenn mindestens ein Wert in der MittelwertbildungEMPTY_VALUE ist, dann ist der iMAOnArray-Wert an diesem Punkt ebenfallsEMPTY_VALUE.

 

Ich wünsche Ihnen allen einen guten Tag. Ich teste gerade einen EA. Ich werde nicht damit handeln, sondern nur eine gewisse Regelmäßigkeit überprüfen. Der EA eröffnet bei jeder Minutenkerze einen Auftrag, und wenn der Auftrag bei einem SL geschlossen wird, eröffnet er einen weiteren KAUF-Auftrag zum Schlusskurs bei einem SL.


int start()                                             
{
if(Bid == iOpen(NULL,PERIOD_M1,0))
if ( G != Minute() )
{
OrderSend(Symbol(),OP_SELL,0.1,Bid ,3,Ask+400*Point,Ask-200*Point,Y10,123 );
G  =  Minute();
}
////*******   Если в списке закрытых ордеров есть ордер закрытый по СЛ - открыть другой ордер
int Счетф=0,  Номерф=OrdersHistoryTotal()-1;
for( ; Номерф>=0; Номерф--)
{
if(!OrderSelect(Номерф, SELECT_BY_POS, MODE_HISTORY)) continue;
if(OrderProfit()>=0) break;
Счетф++;
if(Счетф>0)
if(TimeCurrent()==OrderCloseTime())
OrderSend(Symbol(),OP_BUY,1,Ask,1,Bid-400*Point,Bid+200*Point,Y11,123 );
}
return;
}

Das Problem ist... Wenn mehrere Aufträge auf einem Tick geschlossen werden und der letzte Auftrag auf einem TP geschlossen wird, wird der von mir benötigte BUY-Auftrag nicht geöffnet. Dies liegt daran, dass das Programm davon ausgeht, dass der letzte Auftrag durch einen TP und nicht durch einen SL abgeschlossen wurde. Hier ein Beispiel für eine solche Situation

13:38:15.859 2008.01.02 15:01:46 Tester: Stop Loss #232 bei 1,46566 (1,46560 / 1,46562)

13:38:15.859 2008.01.02 15:01:46 Tester: Stop Loss #233 bei 1.46566 (1.46560 / 1.46562)
13:38:15.859 2008.01.02 15:01:46 Tester: Take Profit #302 bei 1.46562 (1.46560 / 1.46562)
13:38:15.859 2008.01.02 15:02:00 MACD Sample EURUSD,M1: open #347 sell 0.10 EURUSD at 1.46570 sl: 1.46972 tp: 1.46372 ok
Könnten Sie bitte erklären, welche Sprachstruktur verwendet werden sollte, um eine BUY-Order auf einem Tick zu öffnen, gleich nachdem die SL-Order auf demselben Tick mit der SL-Order geschlossen wurde.

Ich danke Ihnen.

 

Hallo!

Ich habe mir schon den Kopf zerbrochen. Wie überprüfe ich, ob ein bestimmter Preis im Double-Array vorhanden ist?

Für den Test habe ich es so geschrieben:


double prmas[5] = {11,22,33,44,99};

ArrayBsearch(prmas,OrderOpenPrice(),WHOLE_ARRAY,0,MODE_ASCEND));


Das Skript findet 11, 22, 33, 44 ohne Probleme (das Terminal hat solche Aufträge). Wenn das Skript jedoch beispielsweise den Preis von 45 verarbeitet, zeigt es immer noch 3 an (Position des Preises 44 im Array).

Was ich wirklich brauche, ist ein bool - wenn es einen Preis der Bestellung in dem Array verarbeitet wird, sollte es true zurückgeben, wenn nicht, sollte es false zurückgeben. Aber ich habe eine solche Funktion in der Sprache noch nicht gefunden.

 

Guten Tag. Können Sie mir sagen, warum die Datei nicht erstellt wird und die Daten nicht geschrieben werden?

   string terminal_data_path=TerminalInfoString(TERMINAL_DATA_PATH);
   string file_name=terminal_data_path+"\\MQL4\\Files\\VolC(Symbol(),Period())";
   int file_handle=FileOpen(file_name,FILE_READ|FILE_WRITE|FILE_TXT);
   FileWrite(file_handle,(double)V5);
   FileClose(file_handle);
 
YarTrade: Guten Tag. Können Sie mir sagen, warum die Datei nicht erstellt und die Daten nicht in sie geschrieben werden?

Untersuchen Sie den Ordner "Files" sorgfältig!!! Schreiben Sie immer in den Sandkasten = Dateiordner. Versuchen Sie es auf diese Weise:

   string file_name=VolC(Symbol(),Period());  // А кто такой ВолК = VolC  ???
   int file_handle=FileOpen(file_name,FILE_READ|FILE_WRITE|FILE_TXT);
   FileWrite(file_handle,(double)V5);
   FileClose(file_handle);
 
STARIJ:

Untersuchen Sie den Ordner "Files" sorgfältig!!! Schreiben Sie immer in den Sandkasten = Dateiordner. Versuchen Sie es so:


VolC - Ich habe die Datei so benannt. Wird der Dateiname nicht benötigt?

Grund der Beschwerde: