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

 
sergeev писал(а) >>

einen Experten anstelle eines Skripts erstellen und die Ausführungszeit des Skriptfunktionscodes im Experten kontrollieren. Der Zeitpunkt ist gekommen - führen Sie den Skriptcode aus.

Ich habe diesen Satz so verstanden, dass Ihre Terminals geschlossen sind. Ich antworte Ihnen - das Skript kann das Terminal selbst nicht ausführen.

So wie Sie es schreiben, wird es auch verstanden. Wenn Sie das nicht meinen, sollten Sie sich deutlicher ausdrücken.

Was ist die Idee wert? Wenn Sie es so dringend bräuchten, hätten Sie es nicht schon längst von einem Proger einrichten lassen... es ist für Sie persönlich.

1. Kopieren Sie den Inhalt des Skripts.

2. Erstellen Sie einen neuen EA mit MetaEditor

3. Fügen Sie den Code des Skripts ein

4. Wie fügt man die Funktion der Arbeit nach Zeit hinzu und wo fügt man sie ein (ich bin kein Programmierer)

Ich benötige die Funktionsarbeitszeit von 9-00 bis 9-01

Der zu bearbeitende Skriptcode: (Vielen Dank im Voraus an alle, die helfen werden)

#property copyright "Kim Igor V. alias KimIV"
#Eigenschaftslink "https://www.mql5.com/go?link=http://www.kimiv.ru/"
#property show_inputs

#import "kernel32.dll"
int GetUserDefaultLCID();
int GetLocaleInfoA(
int Locale, // Gebietsschema-Bezeichner
int LCType, // Art der Information
string lpLCData, // Adresse des Puffers für Informationen
int cchData // Größe des Puffers
);
#import

//+------ Externe Parameter des Skripts -------------------------------------------+
extern bool bCommission = False; //Entlastung der Provisionen
extern bool bSwap = True; // Swaps entladen
extern bool bComment = True; // Kommentare entladen
extern bool bMagic = True; // MagicNumber entladen

// LCTYPE Konstanten
#define LOCALE_SDECIMAL 0x000E // Zeichen für das Dezimaltrennzeichen.

//+----------------------------------------------------------------------------+
//| Skriptprogramm-Startfunktion |
//+----------------------------------------------------------------------------+
void start() {
int dg, i, k=OrdersHistoryTotal();
string FileName=DoubleToStr(AccountNumber(), 0)+".csv"; st;

FileDelete(FileName);
st="Ticket;Open Time;Type;Lots;Item;Price;SL;TP;Close Time;Price";
if (bCommission) st=st+";Kommission";
if (bSwap) st=st+";Swap";
st=st+";Gewinn"; if (bSwap) st=st+";Gewinn;
if (bMagic) st=st+";Magic";
if (bKommentar) st=st+";Kommentar";
WritingLineInFile(FileName, st);
for (i=0; i<k; i++) {
if (OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)) {
if (OrderType()<2) {
dg= MarketInfo(OrderSymbol(), MODE_DIGITS);
st= DoubleToStr(OrderTicket(), 0)+";";
st=st+TimeToStr(OrderOpenTime(), TIME_DATE|TIME_MINUTES)+";";
st=st+GetNameOP(OrderType())+";";
st=st+DoubleToStrLocale(OrderLots(), 2)+";";
st=st+OrderSymbol()+";";
st=st+DoubleToStrLocale(OrderOpenPrice(), dg)+";";
st=st+DoubleToStrLocale(OrderStopLoss(), dg)+";";
st=st+DoubleToStrLocale(OrderTakeProfit(), dg)+";";
st=st+TimeToStr(OrderCloseTime(), TIME_DATE|TIME_MINUTES)+";";
st=st+DoubleToStrLocale(OrderClosePrice(), dg)+";";
if (bCommission) st=st+DoubleToStrLocale(OrderCommission(), 2)+";";
if (bSwap) st=st+DoubleToStrLocale(OrderSwap(), 2)+";";
st=st+DoubleToStrLocale(OrderProfit(), 2)+";";
if (bMagic) st=st+DoubleToStr(OrderMagicNumber(), 0)+";";
if (bKommentar) st=st+Auftragskommentar()+";";
WritingLineInFile(FileName, st);
}
Comment("Lesen: ",i+1," von ",k);
}
}
Comment("Datei geschrieben: ",Dateiname);
}

//+----------------------------------------------------------------------------+
//| Konvertiert einen numerischen Wert in eine Zeichenkette mit dem System |
//| Trennzeichen zwischen ganzem und gebrochenem Teil. |
Parameter: //|
//| v - Zahl vom Typ double |
//| d - Anzahl der Ziffern nach dem Dezimalpunkt |
//+----------------------------------------------------------------------------+
string DoubleToStrLocale(double v, int d) {
wenn (d<0) d=0;
wenn (d>8) d=8;

string se=GetUserLocale(LOCALE_SDECIMAL), st=DoubleToStr(v, d);
if (se!=".") st=StrTran(st, ".", se);

zurück(st);
}

//+----------------------------------------------------------------------------+
//| Rückgabe des Namens der Handelsoperation |
Parameter: //|
op - Kennung des Handelsvorgangs //|
//+----------------------------------------------------------------------------+
string GetNameOP(int op) {
switch (op) {
case OP_BUY : return("Kaufen");
case OP_SELL : return("Verkaufen");
case OP_BUYLIMIT : return("Kauflimit");
case OP_SELLLIMIT : return("Verkaufslimit");
case OP_BUYSTOP : return("Kaufstopp");
case OP_SELLSTOP : return("Verkaufsstopp");
default : return("Unbekannte Operation");
}
}

//+----------------------------------------------------------------------------+
//| Rückgabe der regionalen Einstellungen des Benutzers.
Parameter: //|
//| LCType - Typ der regionalen Einstellung (LCTYPE Konstante) |
//+----------------------------------------------------------------------------+
string GetUserLocale(int LCType) {
int loc=GetUserDefaultLCID();
string str=" ";

GetLocaleInfoA(loc, LCType, str, 64);

return(str);
}

//+----------------------------------------------------------------------------+
//| Teilstring ersetzen |
Parameter: //|
//| str - Textzeile, in der die Ersetzung vorgenommen wird |
strfrom - zu ersetzende Teilzeichenkette //|
//| strto - Ersetzen von Teilstrings |
//+----------------------------------------------------------------------------+
string StrTran(string str, string strfrom, string strto) {
int n;
string outstr="", tempstr;

for (n=0; n<StringLen(str); n++) {
tempstr=StringSubstr(str, n, StringLen(strfrom));
wenn (tempstr==strfrom) {
outstr=outstr+strto;
n=n+StringLen(strfrom)-1;
} sonst outstr=outstr+StringSubstr(str, n, 1);
}
return(outstr);
}

//+----------------------------------------------------------------------------+
//| Zeichenkette in Datei schreiben |
Parameter: //|
Dateiname - Dateiname //|
Text - Zeichenkette //|
//+----------------------------------------------------------------------------+
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);
}
}
//+----------------------------------------------------------------------------+

 
Hallo, können Sie mir sagen, welchen Ordner die Schriften in MT4 zu setzen?
 
%windir% \ Schriftarten
 

für baltik


string NeedTime="9:00";
datetime time0=0;

//----------------------------------------------------------------------------
void start() 
{

 if ( time0>=StrToTime( NeedTime)) return; // если сегодня уже выполняли код
 if (TimeCurrent()<=StrToTime( NeedTime)) return; // если требуемое время ещё не наступио
 time0=TimeCurrent(); // иначе запоминаем время

// и делаем то что надо

// бла бла бла остальной код

Dieser Thread ist für Leute, die programmieren lernen, nicht für Leute, die Sie bitten, für sie zu schreiben.

 
sergeev >>:
%windir% \ fonts

Können Sie es einfach halten, ich verstehe es nicht... Um was für einen Ordner handelt es sich? oder was ist das überhaupt?

 
chepikds >>:

можно как-то попроще, я ничего не понял... это что за папка? или что это вообще такое?


Eigentlich ist die Frage, in welchem Ordner die Schriften in MT4 abgelegt werden sollen, auch nicht sehr klar. Bitte erklären Sie das auf Russisch. :)

Schriftarten werden nicht im Terminal gespeichert, sondern vom Betriebssystem verwaltet.

 
sergeev >>:

вообще-то вопрос "в какую папку вставить шрифты в МТ4" тоже не очень понятен.

в терминале никакие шрифты не хранятся. шрифтами занимается операционная система.

OK, ich werde versuchen, es in das Betriebssystem einzubauen...

 
Danke Sergejew ,es funktioniert.
 
sergeev писал(а) >>

für baltik

Dieser Thread ist für Leute, die programmieren lernen, nicht für Leute, die Sie bitten, für sie zu schreiben.

Dankeschön

Ich werde lernen :)

 

Hallo. Ich schrieb eine einfache EA, mit Beispielen aus dem Tutorial. der EA sollte signalisieren, wenn der Preis bewegt sich aus dem Bereich, der aus zwei MAs besteht. d.h. wenn ein Bar in den Bereich geöffnet und begann zu steigen und seine aktuellen Preis bewegt sich aus ihm heraus, dann piept es. das gleiche gilt für unten. aber das Problem ist, dass ich nicht herausfinden können, wenn ich dies tun

if (Bid > MA1 || Bid < MA2) // Überprüfung der Spanne pass
{
Alert("Preis liegt außerhalb der Spanne.");// Meldung
}

Wenn der Preis oberhalb der Spanne liegt, wird der Expert Advisor mich warnen, aber wenn ich dies tue:

if (Bid > MA1 && Fact_Up==true) // Aufwärtspassage prüfen
{
Fact_Dn=true; // Kurs über MA1 melden
Fact_Up=false; // Kurs unter MA1 nicht melden
Alert("Kurs liegt über Bereich.");// Meldung
}
//--------------------------------------------------------------------
if (Bid < MA2 && Fact_Dn==true) // Check down pass
{
Fact_Up=true; // Kurs unter MA2 melden
Fact_Dn=false; // Kurs über MA2 nicht melden
Alert("Kurs liegt unter Range.");// Meldung
}

Wenn diese Meldung angezeigt wird, dann ist es überhaupt nicht klar, wann es ein Signal gibt - manchmal gibt es ein Signal, manchmal nicht.

Ich kann nicht herausfinden, was das "Fact_Up==true" ist und warum es benötigt wird.