[WARNUNG GESCHLOSSEN!] Alle Fragen von Neulingen, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Ohne dich kann ich nirgendwo hingehen. - Seite 863
extern int LevelProfit = 25; // - Gewinnniveau in Punkten, das erreicht werden muss, um seinen Stopp auf das Breakeven-Niveau zu verlegen.
extern int LevelWLoss = 1; // - Breakeven-Level in Punkten, auf das die Stop-Position verschoben wird, nachdem ihr Gewinn das LevelProfit-Level in Punkten erreicht hat.
Ich kann nicht erreichen, dass die globale Variable des Indikators korrekt funktioniert, wenn ich den Indikator von einem Expert Advisor aus aufrufe.
Hier ist der Code des Indikators (nur die Strings, die für das Verständnis der Frage wichtig sind).
double price;
double PriceBuffer[];
int init()
{
SetIndexBuffer(0,PriceBuffer);
return(0);
}
int start()
{
int limit, i;
int counted_bars=IndicatorCounted();
//---- last counted bar will be recountedif(counted_bars>0) counted_bars--;
limit=Bars-counted_bars;
for(i=limit-1; i>=0; i--)
{
PriceBuffer[i] = price;
price = iClose(NULL,0,i);
}
return(0);
}
Bei jedem Takt speichert er den aktuellen Preis in der globalen Variablen price und zeigt ihn beim nächsten Takt an. Das Kursdiagramm sollte also um einen Balken verzögert werden. Wenn wir den Indikator mit dem Diagramm verbinden, funktioniert alles einwandfrei:
Aber wenn dieser Indikator aus dem EA aufgerufen wird und einen visuellen Test durchführt, werden wir am Ende des Tests sehen: der Indikator ist nur wenig ähnlich zu dem, was er sein soll.
Wenn wir nun den Indikator auf dem visuellen Testchart neu berechnen (z. B. seine Eigenschaften öffnen und schließen), kehrt alles zum Normalzustand zurück - wir sehen wieder das erste Bild.
Was mache ich falsch?
Ich habe eine Suche durchgeführt, aber keine Antwort gefunden.
Ich glaube, das liegt daran, dass es in der Geschichte nicht genug Zecken gibt. Deshalb ist sie nicht vorhanden. In Echtzeit sollte alles klar sein! ;)
Hallo, bitte teilen Sie mir mit, wo im Code eine Ungenauigkeit vorliegt, da ein solcher Fehler im Protokoll erscheint, wenn das Skript ausgeführt wird:
Wie lassen sich wichtige Daten/Variablen am besten speichern, wenn das Terminal sich aufhängt (Stromausfall)?
- globalen Variablen des Terminals? in eine Datei?
- Wie oft müssen sie gespeichert werden? (der letzte Aktienwert und einige bools des Beraters sind wichtig)
Im Gegensatz zu anderen Variablen kann eine GV-Variable nicht nur aus einem beliebigen Programm erstellt, sondern auch gelöscht werden. Der Wert der GV-Variable bleibt auf der Festplatte des Computers gespeichert, auch wenn das Client-Terminal geschlossen wird. Einmal deklarierte GV-Variable existiert im Client-Terminal für 4 Wochen seit dem letzten Aufruf. Wenn in diesem Zeitraum kein Programm auf die GV-Variable zugreift, wird die GV-Variable vom Client-Terminal gelöscht. Eine GV-Variable kann nur vom Typ double sein.
extern int LevelProfit = 25; // - Gewinnniveau in Punkten, das erreicht werden muss, um seinen Stopp auf das Breakeven-Niveau zu verlegen.
extern int LevelWLoss = 1; // - Breakeven-Level in Punkten, auf das die Stop-Position verschoben wird, nachdem ihr Gewinn das LevelProfit-Level in Punkten erreicht hat.
Wie schreibe ich einen Punkt auf ein Diagramm in mql4? Ich muss den Preis und die Zeit so schreiben, dass er in jedem Zeitrahmen an Ort und Stelle bleibt
Wie lassen sich wichtige Daten/Variablen am besten speichern, wenn das Terminal sich aufhängt (Stromausfall)?
- globalen Variablen des Terminals? in eine Datei?
- Wie oft müssen sie gespeichert werden? (der letzte Equity-Wert und einige bools sind wichtig)
Hallo!
Ich kann nicht verstehen, warum ich eine offene Position nicht ändern kann, ich habe den Auftrag eingegeben (in der Auftragsauswahlfunktion)
//+------------------------------------------------------------------+Liebe Entwickler, eine Frage an Sie.
Ich kann nicht erreichen, dass die globale Variable des Indikators korrekt funktioniert, wenn ich den Indikator von einem Expert Advisor aus aufrufe.
Hier ist der Code des Indikators (nur die Strings, die für das Verständnis der Frage wichtig sind).
Bei jedem Takt speichert er den aktuellen Preis in der globalen Variablen price und zeigt ihn beim nächsten Takt an. Das Kursdiagramm sollte also um einen Balken verzögert werden. Wenn wir den Indikator mit dem Diagramm verbinden, funktioniert alles einwandfrei:
Aber wenn dieser Indikator aus dem EA aufgerufen wird und einen visuellen Test durchführt, werden wir am Ende des Tests sehen: der Indikator ist nur wenig ähnlich zu dem, was er sein soll.
Wenn wir nun den Indikator auf dem visuellen Testchart neu berechnen (z. B. seine Eigenschaften öffnen und schließen), kehrt alles zum Normalzustand zurück - wir sehen wieder das erste Bild.
Was mache ich falsch?
Ich habe eine Suche durchgeführt, aber keine Antwort gefunden.
Ich verwende MT4 Version 4.00 Build 226.
Hallo, bitte teilen Sie mir mit, wo im Code eine Ungenauigkeit vorliegt, da ein solcher Fehler im Protokoll erscheint, wenn das Skript ausgeführt wird:
15:40:29 11dP_real_symbol EURUSD,H4: <--- 2 korrekte Charts gefunden. --->
15:40:29 11dP_real_symbol EURUSD,H4: <--- Um die Ergebnisse zu sehen, öffnen Sie den EURUSD,M1002 Chart --->
15:40:29 11dP_real_symbol EURUSD,H4: Symbolname für MarketInfo-Funktion muss ein String sein
15:40:29 11dP_real_symbol: leerer String-Parameter für FileWriteString-Funktion
15:40:29 11dP_real_symbol EURUSD,H4: Symbolname für MarketInfo-Funktion muss ein String sein
15:40:29 11dP_real_symbol EURUSD,H4: <--- Um Ergebnisse zu sehen, Charts öffnen,M1002 --->
15:40:29 11dP_real_symbol EURUSD,H4: der erste Parameter für die Funktion WindowHandle muss ein initialisierter String sein
15:40:30 11dP_real_symbol EURUSD,H4: der erste Parameter für die WindowHandle-Funktion muss ein initialisierter String sein
15:40:31 11dP_real_symbol EURUSD,H4: der erste Parameter für die Funktion WindowHandle muss ein initialisierter String sein
Ich füge den Code selbst unten an:
Wie lassen sich wichtige Daten/Variablen am besten speichern, wenn das Terminal sich aufhängt (Stromausfall)?
- globalen Variablen des Terminals? in eine Datei?
- Wie oft müssen sie gespeichert werden? (der letzte Aktienwert und einige bools des Beraters sind wichtig)
Im Gegensatz zu anderen Variablen kann eine GV-Variable nicht nur aus einem beliebigen Programm erstellt, sondern auch gelöscht werden. Der Wert der GV-Variable bleibt auf der Festplatte des Computers gespeichert, auch wenn das Client-Terminal geschlossen wird. Einmal deklarierte GV-Variable existiert im Client-Terminal für 4 Wochen seit dem letzten Aufruf. Wenn in diesem Zeitraum kein Programm auf die GV-Variable zugreift, wird die GV-Variable vom Client-Terminal gelöscht. Eine GV-Variable kann nur vom Typ double sein.
Hallo!
Ich kann nicht verstehen, warum ich eine offene Position nicht ändern kann, ich habe den Auftrag eingegeben (in der Auftragsauswahlfunktion)
//+------------------------------------------------------------------+15:40:29 11dP_real_symbol EURUSD,H4: <--- 2 korrekte Charts gefunden. --->
15:40:29 11dP_real_symbol EURUSD,H4: <--- Um die Ergebnisse zu sehen, öffnen Sie den Chart EURUSD,M1002 --->
15:40:29 11dP_real_symbol EURUSD,H4: Symbolname für MarketInfo-Funktion muss ein String sein
15:40:29 11dP_real_symbol: leerer String-Parameter für FileWriteString-Funktion
15:40:29 11dP_real_symbol EURUSD,H4: Symbolname für MarketInfo-Funktion muss ein String sein
15:40:29 11dP_real_symbol EURUSD,H4: <--- Um Ergebnisse zu sehen, Charts öffnen,M1002 --->
15:40:29 11dP_real_symbol EURUSD,H4: der erste Parameter für die Funktion WindowHandle muss ein initialisierter String sein
15:40:30 11dP_real_symbol EURUSD,H4: der erste Parameter für die WindowHandle-Funktion muss ein initialisierter String sein
15:40:31 11dP_real_symbol EURUSD,H4: der erste Parameter für die Funktion WindowHandle muss ein initialisierter String sein
Ich füge den Code selbst unten an:
Bitte erklären Sie mir, was die erwartete "OP BUY"-Variable bedeutet
here while(difference>Span)
( OrderSend (string symbol, OP_BUY, volume, double price, slippage,Bid-stoploss*Point,
Bid+takeprofit*Point, string comment=NULL, int magic=0, datetime expiration=0, color arrow_color=Red) )
while(0-different>Red)
( OrderSend (string symbol, OP_SELL, volume, double price, slippage,Ask+stoploss*Point,
Ask-takeprofit*Point, string comment=NULL, string comment=0, int magic=0, datetime expiration=0, color arrow_color=Black) )