[WARNUNG GESCHLOSSEN!] Alle Fragen von Neulingen, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Ohne dich kann ich nirgendwo hingehen. - Seite 445

 

Ich habe ein Problem, das einen lächerlichen Punkt erreicht hat. Fehler in der Auftragsabschlussfunktion.

OrserClose(int tip){
if( tip==1){
for( i=0; i<OrdersTotal(); i++){
           if(true==OrderSelect( i, SELECT_BY_POS, MODE_TRADES)){
           if(OrderType()==OP_BUY && OrderSymbol()==Symbol() && OrderMagicNumber() == Magic){
           OrderClose(OrderTicket(),OrderLots(),Bid,3,Violet);
               }
           }
         }  
}

Gibt einen Fehler (in verschiedenen Terminals)

EURCHF,M5: OrderClose-Fehler 4107

EURCHF,M5: Ungültiger Preis 1.48566000 für OrderClose Funktion


wenn ich es tue

OrderClose(OrderTicket(), OrderLots(),OrderClosePrice(),3, Violet);
OrderClose(OrderTicket(),OrderLots(),MarketInfo(Symbol(),MODE_BID),3,Violet);

Aber wenn ich OrderClose(...) nicht in eine separate Funktion, sondern in int start() schreibe , tritt dieser Fehler nicht auf .

Was ist das Problem und wie kann es behoben werden?



 
Versuchen Sie, den Zyklus von Ende zu Anfang zu durchlaufen
for( i = OrdersTotal() - 1;  i > 0;  i--)
 
T-G >>:

У меня проблема до смешного дошла. Ошибка в функция закрытия ордера.

дает ошибку (причем в разных терминалах)

EURCHF,M5: OrderClose error 4107

EURCHF,M5: invalid price 1.48566000 for OrderClose function


если сделать

таже самая ошибка. но причем когда я пишу OrderClose(..) не в отдельной функции а в int start() то такой ошибки не возникает.

в чем дело и как вылечить?









den Preis zu normalisieren

 

int tick = 0, MaxTicks = 5;
bool SaveTickOn = 1;
string bid_s;

int start(){
   if( SaveTickOn){
      int rw_mode = FILE_CSV| FILE_READ| FILE_WRITE;
      if( tick == 0) rw_mode = FILE_CSV| FILE_WRITE;
      int handle1 = FileOpen("bids1.dat", rw_mode," ");
      bid_s = DoubleToStr(Bid,Digits); 
      FileWrite( handle1, bid_s);
      if(GetLastError() != 0) Alert("Error= ",GetLastError());
      Alert( tick,": ", bid_s);
      tick++;
      if( tick == MaxTicks) SaveTickOn = 0; 
      FileClose( handle1);
   }
   return(0);
}

Es gibt einen einfachen Code zum Schreiben in eine Datei mit einem Zusatz, aber aus irgendeinem Grund ist die Option zum Hinzufügen zu einer Datei

FILE_READ| FILE_WRITE 

funktioniert nicht.

Was kann das sein?

 

Legen Sie dieses in den Start, es wird alles mit einer Garantie abschließen, geben Sie einfach die Bedingungen ein...

if ( Close_) {
for (int trade = OrdersTotal() - 1; trade >= 0; trade--) {
OrderSelect( trade, SELECT_BY_POS, MODE_TRADES);
if (OrderSymbol() == Symbol()) {
if (OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber) {

if ((OrderType() == OP_BUY) &&( условие закрытия для бай)) OrderClose(OrderTicket(), OrderLots(), Bid, slip, Blue);
if ((OrderType() == OP_SELL)&&( условие закрытия для селл)) OrderClose(OrderTicket(), OrderLots(), Ask, slip, Red);
}
Sleep(1000);
}
}
}
 
Andrei01 >>:

Есть простейший код для записи в файл с добавлением, но почему то опция добавления в файл

не работает.

Что это может быть?

Ich habe auch überprüft, dass die Funktion FileIsEnding(handle1) Null zurückgibt, während sie 1 sein sollte, was bedeutet, dass es einen Fehler in MT4 im Add-to-File-Modus geben muss.

 
Andrei01 писал(а) >>

Ich habe auch überprüft, dass die Funktion FileIsEnding(handle1) Null zurückgibt, während sie 1 sein sollte, was bedeutet, dass es einen Fehler in MT4 im Modus File Add geben muss.

Haben Sie versucht, bis zum Ende der Datei zu gehen? FileSeek()

 
//+------------------------------------------------------------------+
//| Zeichenkette in Datei schreiben |
//+------------------------------------------------------------------+
void WritingLineInFile(string FileName, string text)
{
int file_handle=FileOpen(FileName, FILE_READ|FILE_WRITE, " ");

if (file_handle>0)
{
FileSeek(file_handle, 0, SEEK_END);
FileWrite(file_handle, text);
FileClose(file_handle);
}

}
Es gibt keine Bugs, man muss sie nur richtig schreiben. Diese Funktion fügt Text zu FileName hinzu.
 

Hallo!

Ich versuche, es selbst zu programmieren!

Helfen Sie mir, herauszufinden, in welche Richtung ich gehen soll! Wenn Sie es dringend und schnell brauchen (für den Anfang)

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Es gibt einen bestimmten Indikator, der aus zwei MA besteht

Wir müssen ein Tonsignal am Schnittpunkt von zwei MA mit der Meldung erzeugen, die mit der Funktion "MessageBox" angezeigt wird.

Was ist zu tun?

1 Erstellen Sie ein Skript mit der Funktion "MessageBox".

2. oder mit dieser Funktion eine Bedingung in den Code des Indikators einfügen?

3. oder ein bestehendes Skript mit dem Indikator verknüpfen? Wie kann man sie miteinander verbinden, wenn möglich?

4. oder ist es einfacher, einen Expert Advisor zu erstellen?

Wenn ich einen habe, senden Sie mir bitte den Quellcode eines einfachen klassischen Expert Advisors mit zwei gleitenden Durchschnitten

(EA-Bedingungen...kaufen, wenn schnelle МА kreuzt (oder berührt) langsame MA von unten nach oben

..............................sel wenn der schnelle МА einen langsamen MA von oben nach unten kreuzt (oder berührt)

.............................. mit StopLoss-Funktion

.............................. mit TakeProfit-Funktion

.............................. mit Lot-Funktion

Ich danke Ihnen!

 
DRevodel писал(а) >>

Hallo!

Ich versuche, selbst zu programmieren!

Helfen Sie mir zu verstehen, in welche Richtung ich gehen soll! Wenn Sie es dringend und schnell brauchen (für den Anfang)

Es gibt einen bestimmten Indikator, der aus zwei MA besteht

Sie müssen ein Tonsignal am Schnittpunkt von zwei MA mit der auf dem Bildschirm ausgegebenen Nachricht mit der Funktion "MessageBox" erzeugen.

Was ist zu tun?

Oder fügen Sie mit dieser Funktion eine Bedingung in den Indikatorcode ein?

>>Dankeschön!

Grund der Beschwerde: