Sie verpassen Handelsmöglichkeiten:
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Registrierung
Einloggen
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Wenn Sie kein Benutzerkonto haben, registrieren Sie sich
Ausgezeichnet, danke!
Mann, Arrays und Funktionen, nicht mein Ding.
Hilfe für EA
Ich möchte das Folgende tun:
M15-Frames verwenden und während dieses Intervalls maximal zwei Orders öffnen, indem ich den aktuellen Preis mit dem vorherigen M15-Schluss (close[1]) vergleiche. Ich weiß jedoch nicht, wie ich den Code dafür schreiben soll, da ich möchte, dass diese Prozedur in jedem folgenden M15-Frame durchgeführt wird. Wie kann man die richtigen Variablen für die Zählung von 2 Aufträgen im Maximum jedes M15 behalten, da die Startfunktion immer selbst ausgeführt wird?
Ich danke Ihnen
Ich brauche Hilfe bei einem Skript zum Öffnen schwebender Aufträge.
Ich weiß, dass es hier eine Menge Skripte gibt, die Aufträge öffnen und schließen, aber ich kann keines finden, das schwebende Aufträge öffnet.
Ich brauche 2 Skripte, 1 Sellstop und 1 Buystop.
Ich möchte, dass der Buystop eine Buystop-Order 15 Pips über dem Daily Pivot und der SellStop 15 Pips unter dem Daily Pivot öffnet.
Ich habe damit herumgespielt und den untenstehenden Code für einen SellStop erhalten, aber ich bin kein Programmierer und es funktioniert nicht. Ich vermute, ich habe etwas ausgelassen.
Kann mir jemand dabei helfen, bitte.
PS: Vergessen Sie's, ich hab's. Ich musste meinen Angebotspreis in PVTGreen ändern. Ich bekam einen 130 Fehler.
Jetzt funktioniert es...
Ok, noch ein Problem: Kann mir jemand sagen, wie ich die Verfallszeit von 24 Stunden später auf 22:00 Uhr am selben Tag ändern kann?
//| script "send pending order with expiration data" |
//+------------------------------------------------------------------+
int start()
{
int ticket,expiration;
double point;
double PVTYellow = iCustom(NULL, 0, "pivot_alllevels", 0, 0, 0);
double PVTBlue = iCustom(NULL, 0, "pivot_alllevels", 0, 1, 0);
double PVTGreen = iCustom(NULL, 0, "pivot_alllevels", 0, 2, 0);
double PVTRed = iCustom(NULL, 0, "pivot_alllevels", 0, 3, 0);
double PVTMagenta = iCustom(NULL, 0, "pivot_alllevels", 0, 4, 0);
//----
point=MarketInfo(Symbol(),MODE_POINT);
expiration=TimeCurrent()+PERIOD_D1*60;
//----
while(true)
{
ticket = OrderSend(Symbol(),OP_SELLSTOP, 0.10, PVTGreen-15*Point, 3, PVTGreen+20*Point, PVTGreen-20*Point, 0,0,expiration,Red);
if(ticket<=0) Print("Error = ",GetLastError());
else { Print("ticket = ",ticket); break; }
//---- 10 seconds wait
Sleep(10000);
}
//----
return(0);
}
//+------------------------------------------------------------------+Um das Verfallsdatum auf 22:00 zu setzen, könnten Sie dies tun...
int iHour = TimeHour(TimeCurrent());
int iMinute = TimeMinute(TimeCurrent());
int iDiff = 22%iHour;
datetime dtExpiryDate = (TimeCurrent()+(iDiff*60*60))-(iMinute*60);
Print(TimeToStr(dtExpiryDate));
Es gibt keine Fehlerprüfung, wenn Sie also denken, dass Sie es brauchen, sollten Sie es hinzufügen.
Lux
Marktbeobachtungssymbole greifen
Hallo zusammen,
Ich habe mich gefragt, ob es eine Möglichkeit gibt, alle im Market Watch verfügbaren Symbole zur Überwachung zu erfassen, anstatt den EA manuell zu füttern?
Mit anderen Worten, ich möchte, dass mein EA durch alle Symbole geht, die im Market Watch-Fenster verfügbar sind, und sie nach einem bestimmten Kriterium überwacht.
Jede Hilfe wird sehr geschätzt.
Hilfe - Kontostand Sonntag
Hallo!
Ich versuche seit gestern einen Cache zu basteln der mir die ganze Woche über den Kontostand Sonntag (Markterfolg Opening) anzeigt.
Ich muss einen EA Kontostand vom Sonntag bei der Markteröffnung korrekt in den Equity Manager bringen.
double usedacc = 0;
...
if (usedacc == 0 | | DayOfWeek () == 0) usedacc = Kontostand ();
...
Funktioniert einfach nicht
Vielleicht kann mir jemand helfen so gut ich kann
Sorry für das schlechte Englisch
Bitte löschen Sie diesen Beitrag - danke
wie erhalte ich Daten von einem Indikator
Hallo zusammen,
ich brauche für einen EA die Werte FIBO100 und FIBO0 aus dem Indikator. Wie erhalte ich sie?
Danke
derumuro
Wie bekommen Sie es?
Kumpel ich habe ein ähnliches Problem
Scott
Die "Inter-Skript"-Kommunikation (oder "Inter-Indikator"-Kommunikation) in MQL läuft ausschließlich über Puffer. Dieser Code :
trendset = iCustom(NULL,0, "VGA HISTOGRAM~",0,0);
Bedeutet, dass Sie den Wert für den aktuellen Balken aus dem ersten (öffentlichen) Puffer des Indikators "VGA HISTOGRAM~" abrufen wollen. Sie können keine Werte von Variablen abrufen, die in anderen Indikatoren deklariert sind (und es spielt keine Rolle, ob sie als extern deklariert sind). Sie könnten es mit globalen Variablen versuchen, aber globale Variablen sind schwer zu handhaben und bieten mehr Chancen, einen Fehler zu machen, als richtig mit ihnen zu arbeiten, oder Sie können eine DLL schreiben (Metatrader verwendet nur eine Instanz einer DLL pro Chart, unabhängig von den Parametern, so können Sie eine Art von "Semaphor", die halten und zurückgeben Werte in Abhängigkeit von IDs jeglicher Art - das würde sicherstellen, inter mql-Code-Kommunikation und würde verhindern, dass falsche Variablen lesen (globale Variablen zum Beispiel kann leicht verwechselt werden und Sie können Variablen aus einem völlig anderen Chart lesen, ohne es zu wissen))
Grüße
Mladen
Ich habe eine Lösung für dieses Problem gefunden, die ich mit Ihnen teilen werde.
Erstelle in deinem Indikator eine neue Funktion, damit die Dinge nicht unübersichtlich werden.
void PASSINFO() {
int trendcondtemp; //Ändern Sie dies in den von Ihnen gewünschten Namen, es spielt keine Rolle, lassen Sie es, wenn Sie faul sind
if (Close[1] > Open[2] && Volume[1] < Volume[2]) trendcondtemp=1; //bullish - dies setzt nur einen Wert für die Variable, verwenden Sie Ihren Code
if (Close[1] < Open[2] && Volume[1] < Volume[2]) trendcondtemp=2; //bearish - dieselbe Sache, anderer Geruch
if (Lautstärke[1] > Lautstärke[2])trendcondtemp=3; //alles geht schief - meh
if (Symbol()=="USDCHF") GlobalVariableSet("TRENDSETUSDCHF ",trendcondtemp);
if (Symbol()=="GBPUSD") GlobalVariableSet("TRENDSETGBPUSD",trendcondtemp);
if (Symbol()=="EURUSD") GlobalVariableSet("TRENDSETEURUSD",trendcondtemp);
if (Symbol()=="USDJPY") GlobalVariableSet("TRENDSETUSDJPY",trendcondtemp);
if (Symbol()=="USDCAD") GlobalVariableSet("TRENDSETUSDCAD",trendcondtemp);
if (Symbol()=="NZDUSD") GlobalVariableSet("TRENDSETNZDUSD",trendcondtemp);
if (Symbol()=="AUDUSD") GlobalVariableSet("TRENDSETAUDUSD",trendcondtemp);
if (Symbol()=="AUDNZD") GlobalVariableSet("TRENDSETAUDNZD",trendcondtemp);
if (Symbol()=="AUDCAD") GlobalVariableSet("TRENDSETAUDCAD",trendcondtemp);
if (Symbol()=="EURUSD") GlobalVariableSet("TRENDSETEURUSD",trendcondtemp);
if (Symbol()=="AUDCHF") GlobalVariableSet("TRENDSETAUDCHF",trendcondtemp);
if (Symbol()=="AUDJPY") GlobalVariableSet("TRENDSETAUDJPY",trendcondtemp);
if (Symbol()=="CHFJPY") GlobalVariableSet("TRENDSETCHFJPY",trendcondtemp);
if (Symbol()=="EURGBP") GlobalVariableSet("TRENDSETEURGBP",trendcondtemp);
if (Symbol()=="EURAUD") GlobalVariableSet("TRENDSETEURAUD",trendcondtemp);
if (Symbol()=="EURCHF") GlobalVariableSet("TRENDSETEURCHF",trendcondtemp);
if (Symbol()=="EURJPY") GlobalVariableSet("TRENDSETEURJPY",trendcondtemp);
if (Symbol()=="EURNZD") GlobalVariableSet("TRENDSETEURNZD",trendcondtemp);
if (Symbol()=="GBPCHF") GlobalVariableSet("TRENDSETGBPCHF",trendcondtemp);
if (Symbol()=="GBPAUD") GlobalVariableSet("TRENDSETGBPAUD",trendcondtemp);
if (Symbol()=="GBPCAD") GlobalVariableSet("TRENDSETGBPCAD",trendcondtemp);
if (Symbol()=="GBPJPY") GlobalVariableSet("TRENDSETGBPJPY",trendcondtemp);
if (Symbol()=="NZDJPY") GlobalVariableSet("TRENDSETNZDJPY",trendcondtemp);
//Hinzufügen von Öl/Gold/Schecken/was auch immer Sie handeln, danach habe ich alles abgedeckt, was mein Broker macht
}
Ok, da es währungsabhängig ist, gibt es keine Möglichkeit, dass es sich mit einer anderen Währung kreuzt und die Werte in die Höhe treibt. Sie müssen dies nun in Ihre Start-/Was-auch-immer-Funktion einfügen, bevor Sie den Wert aufrufen.
int trendset;
if (Symbol()=="USDCHF") trendset= GlobalVariableGet("TRENDSETUSDCHF");
if (Symbol()=="GBPUSD") trendset= GlobalVariableGet("TRENDSETGBPUSD");
if (Symbol()=="EURUSD") trendset= GlobalVariableGet("TRENDSETEURUSD");
if (Symbol()=="USDJPY") trendset= GlobalVariableGet("TRENDSETUSDJPY");
if (Symbol()=="USDCAD") trendset= GlobalVariableGet("TRENDSETUSDCAD");
if (Symbol()=="NZDUSD") trendset= GlobalVariableGet("TRENDSETNZDUSD");
if (Symbol()=="AUDUSD") trendset= GlobalVariableGet("TRENDSETAUDUSD");
if (Symbol()=="AUDNZD") trendset= GlobalVariableGet("TRENDSETAUDNZD");
if (Symbol()=="AUDCAD") trendset= GlobalVariableGet("TRENDSETAUDCAD");
if (Symbol()=="EURUSD") trendset= GlobalVariableGet("TRENDSETEURUSD");
if (Symbol()=="AUDCHF") trendset= GlobalVariableGet("TRENDSETAUDCHF");
if (Symbol()=="AUDJPY") trendset= GlobalVariableGet("TRENDSETAUDJPY");
if (Symbol()=="CHFJPY") trendset= GlobalVariableGet("TRENDSETCHFJPY");
if (Symbol()=="EURGBP") trendset= GlobalVariableGet("TRENDSETEURGBP");
if (Symbol()=="EURAUD") trendset= GlobalVariableGet("TRENDSETEURAUD");
if (Symbol()=="EURCHF") trendset= GlobalVariableGet("TRENDSETEURCHF");
if (Symbol()=="EURJPY") trendset= GlobalVariableGet("TRENDSETEURJPY");
if (Symbol()=="EURNZD") trendset= GlobalVariableGet("TRENDSETEURNZD");
if (Symbol()=="GBPCHF") trendset= GlobalVariableGet("TRENDSETGBPCHF");
if (Symbol()=="GBPAUD") trendset= GlobalVariableGet("TRENDSETGBPAUD");
if (Symbol()=="GBPCAD") trendset= GlobalVariableGet("TRENDSETGBPCAD");
if (Symbol()=="GBPJPY") trendset= GlobalVariableGet("TRENDSETGBPJPY");
if (Symbol()=="NZDJPY") trendset= GlobalVariableGet("TRENDSETNZDJPY");
Bitte beachten!!! (Sie prolly bereits erkennen, diese), aber Sie müssen den Indikator läuft auf Ihre Währung Ihre ea läuft auf für die Werte zu ändern, sonst werden Sie nur die alte Variable, die seit Wochen in mt4 gespeichert ist.