[ARCHIV]Alle Fragen von Anfängern, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht daran vorbei. Ohne dich kann ich nirgendwo hingehen - 5. - Seite 224

 

Warum werden die Bestellungen nicht geöffnet?

Bitte sagen Sie mir, warum dieser Code nicht funktioniert.

Ich habe speziell eine Periode des Diagramms im Jahr 2000 ausgewählt (als das fünfte Vorzeichen überall 0 war), in der eine Kerze zu einem Preis geöffnet wurde, der unter den Werten des Arrays auftritt.

Nach meiner Vorstellung sollte bei deren Eröffnung eine Bestellung ausgelöst werden - was aber nicht geschieht ......P O M U ????


int start()



{

 double Price=iOpen (Symbol (),0,0);        
 double SL=NormalizeDouble (Price-3000*Point, Digits);         
 double TP=NormalizeDouble (Price+100*Point, Digits);
 
 double massiv [4]={0.85370,0.85690,    0.85970 ,0.86170};//объявление и инициализация массива


 double value =  Bid ;// параметру value функции ArrayBsearch присваивается значение текущей цены
 int S = ArrayBsearch(  massiv[4],  value, WHOLE_ARRAY,  0, MODE_ASCEND); //функция ищет самое близкое к текущей цене значение
 if (Bid == massiv[S])//если текущая цена равна значению возвращенному  функцией .
 if (Bid==Price  )// и данная цена есть цена открытия нового бара
 OrderSend(Symbol(),OP_BUY,0.1,Ask,3,SL,TP,"jfh",123 );//открыть ордер       
}
 
solnce600:

Es gibt 100 Werte mit einem Komma nach dem ersten Zeichen (d.h. Preis)

Hervorheben einer Zeile

Startseite - Suchen und Ersetzen

Alle Kommas in Punkte umwandeln - erfolgreich.

Jetzt muss ich Kommas zwischen die Werte setzen

Gehen Sie nun wie folgt vor: Datei - Speichern unter - wählen Sie den Dateityp CSV (Begrenzungszeichen - Kommas). Sparen. Als Ausgabe erhalten wir eine Textdatei im erforderlichen Format...

 
solnce600:

Warum werden die Bestellungen nicht geöffnet?

Bitte sagen Sie mir, warum dieser Code nicht funktioniert.

Ich habe speziell eine Periode des Diagramms im Jahr 2000 ausgewählt (als das fünfte Vorzeichen überall 0 war), in der eine Kerze zu einem Preis geöffnet wurde, der unter den Werten des Arrays auftritt.

Nach meiner Vorstellung sollte die Bestellung bei der Eröffnung funktionieren - aber das passiert nicht ......P O M U????



int S = ArrayBsearch(  massiv,  value, WHOLE_ARRAY,  0, MODE_ASCEND); //функция ищет самое близкое к текущей цене значение

Massiv[4] bedeutet das 4. Element des Arrays massiv, ich muss ein Array an die Funktion übergeben, um eine Suche durchzuführen...

 
alsu:

Jetzt: Datei - Speichern unter - CSV-Dateityp auswählen (Komma-Trennzeichen). Sparen. Wir haben auf einer Ausgabe eine Textdatei des erforderlichen Formats...



Ich habe es verstanden, vielen Dank. Könnten Sie mir bitte sagen, warum meine Funktion nicht funktioniert (Beitrag oben).

Vielen Dank, wenn ich programmieren lerne......, dann nur wegen Ihnen.....!

 
solnce600:

Warum werden die Bestellungen nicht geöffnet?

Bitte sagen Sie mir, warum dieser Code nicht funktioniert.

Ich habe speziell eine Periode des Diagramms im Jahr 2000 ausgewählt (als das fünfte Vorzeichen überall 0 war), in der eine Kerze zu einem Preis geöffnet wurde, der unter den Werten des Arrays auftritt.

Meiner Meinung nach - bei ihrer Eröffnungsbestellung sollte es funktionieren - aber es passiert nicht ......P O M U ????


Es wäre auch schön, wenn wir beim Vergleich von doppelten Zahlen schreiben könnten

 if (Bid == massiv[S])

wie diese:

 if (NormalizeDouble (Bid-massiv[S],Digits)==0)
 
alsu:

massiv[4] bezieht sich auf das 4. Element des Arrays massiv, und Sie müssen das Array selbst an die Funktion übergeben, um eine Suche durchzuführen...

Ich hab's. Danke vielmals.
 
solnce600:

Warum werden die Bestellungen nicht geöffnet?

Bitte sagen Sie mir, warum dieser Code nicht funktioniert.

Ich habe speziell eine Periode des Diagramms im Jahr 2000 ausgewählt (als das fünfte Vorzeichen überall 0 war), in der eine Kerze zu einem Preis geöffnet wurde, der unter den Werten des Arrays auftritt.

Nach meiner Vorstellung sollte die Bestellung bei der Eröffnung funktionieren - aber es passiert nicht ......P O M U ????

Es ist bereits an der Zeit, zur "erwachsenen" Methode überzugehen!!! - Experimentieren Sie mit Ihrem Code, um Ergebnisse zu erzielen.

Tipp: Gewöhnen Sie sich daran, Variablen durch Normalisierung ihrer Unterschiede zu vergleichen:

    double ld_Delta = 10. * Point;
    if (NormalizeDouble (MathAbs (Bid - Price), Digits) <= ld_Delta)// и данная цена есть цена открытия нового бара
    {OrderSend(Symbol(),OP_BUY,0.1,Ask,3,SL,TP,"jfh",123);}//открыть ордер       

und für das von mir erwähnte Experiment mit ld_Delta "herumspielen".

 
solnce600:

Ich habe es verstanden, vielen Dank. Könnten Sie mir bitte sagen, warum meine Funktion nicht funktioniert (Beitrag oben)?

Vielen Dank, wenn ich lernen sollte, wie man programmiert......, dann nur dank Ihnen.....!


Wenn Sie etwas lernen, dann nur durch Ihren Fleiß und Ihre harte Arbeit. Meine Rolle ist sehr bescheiden, und egoistische Ziele (Ihnen zu helfen, trainieren ihre eigene Fähigkeit, schnell zu finden Bugs und Fehler, die ihre eigene Zeit mit der Programmierung verbracht reduziert, und zur gleichen Zeit hält mein Gehirn getönt. Und was ist, wenn eine wertvolle Idee durchrutscht? Ich werde es stehlen:)))
 
einschließlich
alsu:

Wenn du etwas lernst, dann dank deines Fleißes und deiner harten Arbeit. Meine Rolle ist sehr bescheiden und zielt auf den Eigennutz ab (ich helfe Ihnen, Ihre eigene Fähigkeit zu trainieren, Bugs und Fehler schnell zu finden, was Ihre eigene Zeit, die Sie mit dem Programmieren verbringen, reduziert, aber gleichzeitig mein Gehirn fit hält. Und was ist, wenn eine wertvolle Idee durchrutscht? Ich werde es stehlen:)))

Es kann lange dauern, bis man die Antwort auf eine Frage selbst gefunden hat (weil man nicht weiß, wo man suchen muss).

Haben Sie noch andere Tipps?

Ich möchte ein Array in einer Include-Datei deklarieren und initialisieren.

Rief den Assistenten an.

Chose - Bibliotek Funktionen.

Einen Namen zugewiesen.

Entfernt alles und deklariert und initialisiert das Array.

Ich habe die Datei im Incluide-Ordner mit der Erweiterung mq4 anstelle von mqh gespeichert.

Ich habe eine Zeile zum Aufruf der Datei eingefügt und die Erweiterung mqh im Code angegeben.

Aber der Compiler gibt einen Fehler aus

'UYTR.mqh' - kann die Programmdatei C:\Programmdateien\Alpari NZ MT4(2)\experts\hhhh.mq4 nicht öffnen (12, 2)

int start()



{

 double Price=iOpen (Symbol (),0,0);        
 double SL=NormalizeDouble (Price-3000*Point, Digits);         
 double TP=NormalizeDouble (Price+100*Point, Digits);
 
 #include <UYTR.mqh> 


 double value =  Bid ;// параметру value функции ArrayBsearch присваивается значение текущей цены
 int S = ArrayBsearch(  massiv,  value, WHOLE_ARRAY,  0, MODE_ASCEND); //функция ищет самое близкое к текущей цене значение
 if (Bid == massiv[S])//если текущая цена равна значению возвращенному  функцией .
 if (Bid==Price  )// и данная цена есть цена открытия нового бара
 OrderSend(Symbol(),OP_BUY,0.1,Ask,3,SL,TP,"jfh",123 );//открыть ордер       
}

Wahrscheinlich handelt es sich um unterschiedliche Erweiterungen zwischen der Datei im Codeaufruf und der Datei im Incluide-Ordner.

Bitte beraten Sie mich, was ich in dieser Situation tun soll.

Ich danke Ihnen.

 
solnce600:
einschließlich

Es kann lange dauern, bis man die Antwort auf eine Frage selbst gefunden hat (weil man nicht weiß, wo man suchen muss).

Haben Sie noch andere Tipps?

Ich möchte ein Array in einer Include-Datei deklarieren und initialisieren.

Rief den Assistenten an.

Chose - Bibliotek Funktionen.

Einen Namen zugewiesen.

Entfernt alles und deklariert und initialisiert das Array.

Ich habe die Datei im Incluide-Ordner mit der Erweiterung mq4 anstelle von mqh gespeichert.

Ich habe eine Zeile zum Aufruf der Datei eingefügt und die Erweiterung mqh im Code angegeben.

Aber der Compiler stürzt ständig ab.

'UYTR.mqh' - kann die Programmdatei C:\Programmdateien\Alpari NZ MT4(2)\experts\hhhh.mq4 nicht öffnen (12, 2)

Wahrscheinlich liegt es an den unterschiedlichen Dateierweiterungen zwischen der Datei im Codeaufruf und der Datei im Ordner Incluide.

Bitte beraten Sie mich, was in dieser Situation zu tun ist.

Ich danke Ihnen.


Wenn Sie den Assistenten verwenden, können Sie direkt eine Include-Datei erstellen, die mit der Erweiterung mqh im Ordner include gespeichert wird. Danach können Sie es durch #include <> in jedes Programm einfügen.


das ist
nicht auswählen - bibliotek der Funktionen,
eine MQH-Header-Datei