if (MA5>MA20)
{
Signal=1;
}
if(Signal>TradeLevel) // TradeLevel установлен в 0.
{
ticket=OrderSend(Symbol(),OP_BUY,Lot,Ask,3,Ask-SL*Point,Bid+TP*Point,"Optim",16384,0,Blue);
}
Bitte teilen Sie uns mit, warum diese Logik nicht funktioniert? (mql4) Die Gewerke werden nicht geöffnet
(alles andere, Variablen, alles ist beschrieben - Standard-Eulenvorlage in MT, keine Kompilierungsfehler)
Funktioniert also die Logik nicht oder werden die EA-Positionen nicht geöffnet?
Es ist eine gute Angewohnheit, zuerst einen Blick in die Zeitschrift "Experts" zu werfen - dort gibt es viel zu schreiben. Und ich möchte auch das "Journal" überprüfen.
Funktioniert also die Logik nicht oder werden die EA-Positionen nicht geöffnet?
Es ist eine gute Angewohnheit, zuerst einen Blick in die Zeitschrift "Experts" zu werfen - dort gibt es viel zu schreiben. Und es schadet auch nicht, einen Blick in das "Journal" zu werfen.
Ich habe diese Logik einfach in den Standard-MACD-EA übernommen. Ich brauchte nur eine Basis, um verschiedene Signale einzusetzen und sie zusammenzufassen.
Ich entschuldige mich für die Unannehmlichkeiten. (Das Protokoll war übrigens leer, es gab auch keine Fehler, es wurden nur keine Trades geöffnet, das war's).
Wenn es Ihnen nichts ausmacht, weisen Sie bitte auf den Fehler hin
templ(T)class CData{
public:CData(){};~CData(){};
T Total(T &mas[] ,int y){return(ArraySize(mas));}
T Total(T &mas[][],int y){return(ArraySize(mas));}}
Frage, wie manTotal() Funktion aufrufen, ich möchte es zum Beispiel in OnInit(), Jungs bitte nicht unhöflich sein, ich bin ein Trottel, ich verstehe die Hilfe nicht? Muss ich den Speicher der Klasse löschen, und wenn ja, wo und wie?
STÖRUNG BEI DER BERECHNUNG DES RISIKOS PRO HANDEL.
AUFGABE: Berechnen Sie die Losgröße für ein akzeptables Risikoniveau von 250 $ pro Handel für ein beliebiges Instrument (einschließlich Forex, Pfandbriefe, CFDs).
MEINE ERKENNTNIS (für BUY, Auszug aus dem Funktionscode):
//valSL - размер стопа//price - цена открытия ордера//iLots - размер лота
SL_punkt=(price-valSL)/MarketInfo(currencySelect,MODE_POINT); //Переводим денежное выражение в пунктыdouble pricePunkt=NormalizeDouble(iLots*MarketInfo(symb,MODE_TICKVALUE)*SL_punkt,MarketInfo(symb,MODE_DIGITS)); //Вычисляем уровень убытка при заданном размере лота
DAS PROBLEM: Dieser Code berechnet die Verluste für alle Vermögenswerte korrekt, einschließlich Währungspaare (einschließlich Crosses), Gold, Öl, ABER INDEXE, nq100, Z.B.,BERECHNET NICHT korrekt. Meine Skriptdaten (potenzielle Handelsverluste) sind nämlich durchweg 10 Mal WENIGER als das, was der MT4 STRATEGY Tester anzeigt!
EINIGE ANMERKUNGEN:
1. Die Tests wurden im Alpari-Terminal durchgeführt.
2. Laut Terminal ist die Art der Gewinnberechnung für XAUUSD, BRN (Öl) und NQ100 "CFD", für Währungspaare "Forex".
Ich denke, das Problem liegt in der Kontraktgröße, die ich nicht berücksichtige (für Öl - 1000, für XAUUSD - 100, für NQ100 - 10). Aber warum werden dann XAUUSD und BRN korrekt gezählt (und auch die Währungspaare), aber NQ100 nicht? Vielleicht, obwohl in den Eigenschaften des Alpari-Terminalsymbols die Gewinnberechnungsmethode "CFD" lautet, aber in Wirklichkeit als "Forex" gezählt wird? Ist das überhaupt möglich?
Generell wäre ich dankbar, wenn mir jemand meinen Skriptfehler erklären könnte und wie ich ihn beheben kann.
Damit ist das Problem leider nicht gelöst. Ich habe
MODE_TICKVALUE равно MODE_POINT и равно MODE_TICKSIZE (для NQ100 это 0.1)
Ich habe auch diese Variante des Codes ausprobiert:
double StoimPunkt(string B){
double S = MarketInfo(B,MODE_TICKVALUE)/(MarketInfo(B,MODE_TICKSIZE)/MarketInfo(B,MODE_POINT));return(S);
}
//valSL - размер стопа//price - цена открытия ордера//iLots - размер лота
SL_punkt=(price-valSL)/MarketInfo(symb,MODE_POINT); //Переводим денежное выражение в пунктыdouble pricePunkt=NormalizeDouble(iLots*StoimPunkt(symb)*SL_punkt,MarketInfo(symb,MODE_DIGITS)); //Вычисляем уровень убытка при заданном размере лота
IST DAS ERGEBNIS GENAU DASSELBE WIE IN MEINEM OBIGEN BEISPIEL.
Wenn Sie kein Benutzerkonto haben, registrieren Sie sich
Erlauben Sie die Verwendung von Cookies, um sich auf der Website MQL5.com anzumelden.
Bitte aktivieren Sie die notwendige Einstellung in Ihrem Browser, da Sie sich sonst nicht einloggen können.
Sie sind angemeldet. Die Zwei-Faktor-Authentifizierung wurde deaktiviert. Richten Sie sie erneut ein und scannen Sie einen neuen QR-Code oder fahren Sie mit deaktivierter Zwei-Faktor-Authentifizierung fort.
Warum steht in der letzten Zeile kein Schrägstrich, und ist es möglich, einen Wert aus einem Makro zurückzugeben
dies ist die Makro-Substitutionssyntax, das Kleben von Zeichenketten
Hier ist ein Beispiel für die Rückgabe eines Werteshttps://www.mql5.com/ru/forum/318246/page10#comment_12652228
Bitte, kann mir jemand helfen?
Können Sie mir bitte sagen, warum diese Logik nicht funktioniert? (mql4)
Deals werden nicht geöffnet
Bitte teilen Sie uns mit, warum diese Logik nicht funktioniert? (mql4)
Die Gewerke werden nicht geöffnet
Funktioniert also die Logik nicht oder werden die EA-Positionen nicht geöffnet?
Es ist eine gute Angewohnheit, zuerst einen Blick in die Zeitschrift "Experts" zu werfen - dort gibt es viel zu schreiben. Und ich möchte auch das "Journal" überprüfen.
Ich sehe genau zwei Fehler und eine Ungewissheit beim Senden einer Handelsanfrage.
Funktioniert also die Logik nicht oder werden die EA-Positionen nicht geöffnet?
Es ist eine gute Angewohnheit, zuerst einen Blick in die Zeitschrift "Experts" zu werfen - dort gibt es viel zu schreiben. Und es schadet auch nicht, einen Blick in das "Journal" zu werfen.
Aus dem Stegreif sehe ich genau zwei Fehler und eine Ungewissheit beim Senden einer Handelsanfrage.
Danke, es funktioniert!
Ich habe diese Logik einfach in den Standard-MACD-EA übernommen.
Ich brauchte nur eine Basis, um verschiedene Signale einzusetzen und sie zusammenzufassen.
Ich entschuldige mich für die Unannehmlichkeiten. (Das Protokoll war übrigens leer, es gab auch keine Fehler, es wurden nur keine Trades geöffnet, das war's).
Wenn es Ihnen nichts ausmacht, weisen Sie bitte auf den Fehler hin
Es gibt einen primitiven Code
Frage, wie manTotal() Funktion aufrufen, ich möchte es zum Beispiel in OnInit(), Jungs bitte nicht unhöflich sein, ich bin ein Trottel, ich verstehe die Hilfe nicht? Muss ich den Speicher der Klasse löschen, und wenn ja, wo und wie?
STÖRUNG BEI DER BERECHNUNG DES RISIKOS PRO HANDEL.
AUFGABE: Berechnen Sie die Losgröße für ein akzeptables Risikoniveau von 250 $ pro Handel für ein beliebiges Instrument (einschließlich Forex, Pfandbriefe, CFDs).
MEINE ERKENNTNIS (für BUY, Auszug aus dem Funktionscode):
DAS PROBLEM: Dieser Code berechnet die Verluste für alle Vermögenswerte korrekt, einschließlich Währungspaare (einschließlich Crosses), Gold, Öl, ABER INDEXE, nq100, Z.B.,BERECHNET NICHT korrekt. Meine Skriptdaten (potenzielle Handelsverluste) sind nämlich durchweg 10 Mal WENIGER als das, was der MT4 STRATEGY Tester anzeigt!
EINIGE ANMERKUNGEN:
1. Die Tests wurden im Alpari-Terminal durchgeführt.
2. Laut Terminal ist die Art der Gewinnberechnung für XAUUSD, BRN (Öl) und NQ100 "CFD", für Währungspaare "Forex".
Ich denke, das Problem liegt in der Kontraktgröße, die ich nicht berücksichtige (für Öl - 1000, für XAUUSD - 100, für NQ100 - 10). Aber warum werden dann XAUUSD und BRN korrekt gezählt (und auch die Währungspaare), aber NQ100 nicht? Vielleicht, obwohl in den Eigenschaften des Alpari-Terminalsymbols die Gewinnberechnungsmethode "CFD" lautet, aber in Wirklichkeit als "Forex" gezählt wird? Ist das überhaupt möglich?
Generell wäre ich dankbar, wenn mir jemand meinen Skriptfehler erklären könnte und wie ich ihn beheben kann.
DANKESCHÖN!
FEHLER BEI DER BERECHNUNG DES RISIKOS PRO TRANSAKTION.
MODUS _TICKSIZE
FEHLER BEI DER BERECHNUNG DES RISIKOS PRO HANDEL.
MODUS _TICKSIZE
Lesen xxxxxxxx
Damit ist das Problem leider nicht gelöst. Ich habe
Ich habe auch diese Variante des Codes ausprobiert:
IST DAS ERGEBNIS GENAU DASSELBE WIE IN MEINEM OBIGEN BEISPIEL.
Haben Sie eine andere Idee?