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

 
Анатолий Железняк #:

Dann stellt sich die Frage: Wer ist diese Person ? Ist er ein Freund von Ihnen? Stellen Sie ihn vor.

Ich sagte doch: auf Benutzerebene!!!

Es war auf Benutzerebene.

expiration ist der Zeitpunkt des Ablaufs eines schwebenden Auftrags.

Aber das passt nicht zu Ihnen.

Es ist unmöglich, einen Auftrag "aus EAs Obhut" zu nehmen, denn die Obhut geht an den Magier, und man kann sie nicht ändern.

Wir müssen den EA mit einer anderen Auftragssteuerung neu schreiben

 
MakarFX #:

Dies geschah auf Benutzerebene

Verfallszeit des schwebenden Auftrags.

Aber das funktioniert bei Ihnen nicht.

Sie können einen Auftrag nicht "aus der EA-Kontrolle" nehmen, da die Kontrolle auf einem Assistenten basiert, den Sie nicht ändern können.

Wir müssen den EA mit einer anderen Auftragssteuerung neu schreiben.

Lebe lange.

 
MakarFX #:

Dies geschah auf Benutzerebene

Verfallszeit des schwebenden Auftrags.

Aber das funktioniert bei Ihnen nicht.

Sie können einen Auftrag nicht "aus der EA-Kontrolle" nehmen, da die Kontrolle auf einem Assistenten basiert, den Sie nicht ändern können.

Sie müssen den EA mit einer anderen Auftragssteuerung neu schreiben ...

Makar, reiß dich nicht zusammen

 
Анатолий Железняк #:

Oh, mein Gott! Ich habe nach einer Benutzerebene gefragt, und Sie bitten mich, den gesamten EA durchzugehen und in einem betreuenden Ton zu fragen: "Was ist Ihre?" Ich möchte mich nicht darauf einlassen. Ich spiele gerne Spiele, ich will nicht das Innenleben von Spielzeug erforschen.

Wenn Magik nicht 0 ist, schließen Sie die Position und treten Sie erneut ein.

 
MakarFX #:

Dies geschah auf Benutzerebene

Verfallszeit des schwebenden Auftrags.

Aber das funktioniert bei Ihnen nicht.

Sie können einen Auftrag nicht "aus der EA-Kontrolle" nehmen, da die Kontrolle auf einem Assistenten basiert, den Sie nicht ändern können.

Wir müssen den EA mit einer anderen Auftragssteuerung neu schreiben

Sie können unter Kontrolle auch mit dem gleichen Assistenten zu verlassen, ist die Frage, welche Art von Ordnung Sie brauchen, wenn Sie es wollen, dann können Sie es nicht tun, wenn es spezifisch für Ihre Liste ist.

 
for (int i=0;i<OrdersTotal()-2;i++) последних 2 видеть не будет даже с тем же магиком только что ему нужно до путя так и не понятно 
 
Aleksandr Egorov #:
Er braucht es als Benutzer, ohne den Code zu reparieren
 
Gibt es eine Möglichkeit, einen Hotkey zu setzen, um das Objekt"Eingabefeld" aktiv zu machen, damit dort Text eingegeben werden kann? Zum Beispiel die Losgröße für eine zukünftige Transaktion.
 
MakarFX #:
Er braucht es als Benutzer, ohne den Code zu reparieren

dann ist das gar nicht gut ))

 

Hallo. Können Sie mir einen Tipp geben? MT5

Ich mache: einen Indikator, der nach einem Zeitplan Screenshots macht und sie in Ordnern ablegt (Symbol Zeitraum).

Der vorgesehene Algorithmus: Bei der Initialisierung wird ein Bildschirmfoto erstellt. Da Dateioperationen Zeit benötigen, verschiebt der Timer den zuerst erstellten Screenshot und erstellt einen neuen.

Der während der Initialisierung erstellte Screenshot wird erfolgreich per Timer verschoben.

Problem:
1 Der erste vom Timer aufgenommene Screenshot im Ordner wird nicht sofort angezeigt. Sie wird NUR angezeigt, wenn das Terminal geschlossen oder der Indikator neu gestartet wird.
2 Screenshots außer dem ersten werden nicht verschoben, Fehler 5019 (Datei existiert nicht), obwohl sie im Ordner angezeigt werden (außer dem ersten, der vom Timer erstellt wurde).


#property strict
#property indicator_chart_window
#property indicator_plots 0

enum ENUM_FULL_MANUAL { full, //весь график
            manual, //указанный
            };
input int timer=5; //время на шаг в секундах
input ENUM_FULL_MANUAL skr_mode=full; //размер скриншота   
input int width = 640; // ширина 
input int height = 320;// высота 
input string format = ".png";

ENUM_ALIGN_MODE align_mode=ALIGN_RIGHT; // тип выравнивания

string name_folder, name_file;
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
{
Print("OnInit()");

ScreenShot();
         
name_folder=Symbol()+"  "+StringPeriod();
FolderCreate(name_folder);


EventSetTimer(timer);


return(INIT_SUCCEEDED);
}
//===================================================================
void OnDeinit(const int reason)
{
EventKillTimer();
Move() ; 
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
             const int prev_calculated,
             const datetime &time[],
             const double &open[],
             const double &high[],
             const double &low[],
             const double &close[],
             const long &tick_volume[],
             const long &volume[],
             const int &spread[])
{
//---

//--- return value of prev_calculated for next call
return(rates_total);
}
//+------------------------------------------------------------------+
//| Timer function                                                   |
//+------------------------------------------------------------------+
void OnTimer()
{
   Print("OnTimer() ");
   Move() ; 
   ScreenShot();
}//+------------------------------------------------------------------+
bool Move(){
   string src_path; 
   string dst_path; 
   StringConcatenate(src_path,"","//",name_file); 
   StringConcatenate(dst_path,name_folder,"//",name_file); 
   ResetLastError();
   if(FileMove(src_path,0,dst_path,0)){
      Print("FileMove OK ");
      return true;
   }   
   else{
      string err_text="FileMove ERR: "+(string)GetLastError();
      if(GetLastError()==5019) err_text+=("  5019 name_file "+name_file);
      Print(err_text);
   }  
   return false;
}

bool ScreenShot(){   
   name_file=TimeToString(TimeLocal(), TIME_DATE|TIME_SECONDS)+format;
   StringReplace(name_file, ":", "-");
   if(skr_mode==full){
      if(ChartScreenShot(0, name_file, (int)ChartGetInteger(0, CHART_WIDTH_IN_PIXELS, 0)
      , (int)ChartGetInteger(0, CHART_HEIGHT_IN_PIXELS, 0), ALIGN_RIGHT)){
         Print("screen name_file ", name_file);
         return true;
      }
      else{
         Print("screen ERR: ", GetLastError());
      }   
   }   
   if(skr_mode==manual){
      if(ChartScreenShot(0, name_file, width, height, align_mode)){
         return true;
      }
   }      
   return false;  
}
string StringPeriod(){
   if(Period()==1) return "M1";
   if(Period()==2) return "M2";
   if(Period()==3) return "M3";
   if(Period()==4) return "M4";
   if(Period()==5) return "M5";
   if(Period()==6) return "M6";
   if(Period()==10) return "M10";
   if(Period()==12) return "M12";
   if(Period()==15) return "M15";
   if(Period()==20) return "M20";
   if(Period()==30) return "M30";
   if(Period()==16385) return "H1";
   if(Period()==16386) return "H2";
   if(Period()==16387) return "H3";
   if(Period()==16388) return "H4";
   if(Period()==16390) return "H6";
   if(Period()==16392) return "H8";
   if(Period()==16396) return "H12";
   if(Period()==16408) return "Daily";
   if(Period()==32769) return "Weekly";
   if(Period()==49153) return "Monthly";
   return "ERROR";
}
Grund der Beschwerde: