Hilfe bei der Optimierung des Indikators - ich bekomme den letzten Balken nicht in den Griff!
Der Indikator berücksichtigt eine Reihe von kontinuierlichen Gewinne für binäre Optionen, unter Berücksichtigung, dass die Wette wird alle 2 Bars (dh nach einem - Gewinn/Verlust, warten Sie auf die aktuelle Bar), die externe Variable ist eine Preisanalyse der vorherigen Bar in einem Aufwärts-oder Abwärtskurs
Ich habe das Gefühl, es funktioniert, aber online die letzte Bar ist nicht korrekt berücksichtigt, und als Folge, wenn ich den Indikator auf M1 die Daten aus der Geschichte wird korrekt sein, aber alles online ist nicht korrekt berechnet, der Code:
Задавайте вопросы по техническому анализу, обсуждайте торговые системы и улучшайте свои навыки программирования торговых стратегий на языке MQL5. Общайтесь и обменивайтесь опытом на форуме с трейдерами всего мира и помогайте ответами новичкам — наше сообщество развивается вместе с вами. Ошибки, баги, вопросы Ошибка после команды CopyClose...
yur4ik: Hallo! Bitte helfen Sie mir mit dem Signalmodul zum Schließen von Positionen. Was mache ich falsch?
Ihre Datei ist das Modul SIGNAL. Im Expert Advisor-System ist es auf die gleiche Weise integriert wie das Modul SIGNALS des Indikators USER. Mit anderen Worten: Die von Ihrem Modul erzeugten Signale haben ein GEWICHT, und es kann vorkommen, dass dieses Gewicht nicht ausreicht, um das Signal auszulösen.
Sie müssen sich überlegen, wie Sie den Abschluss in Ihrem Fall am besten durchführen. Vielleicht sollten Sie dies nicht im Signalmodul tun
Ihre Datei ist das Modul SIGNAL. Im Expert Advisor-System ist es auf die gleiche Weise integriert wie das Modul SIGNALS des USER-Indikators. Mit anderen Worten: Die von Ihrem Modul erzeugten Signale haben ein GEWICHT, und es kann vorkommen, dass dieses Gewicht nicht ausreicht, um das Signal auszulösen.
Sie müssen sich überlegen, wie Sie den Abschluss in Ihrem Fall am besten durchführen. In einem Signalmodul sollten Sie dies nicht tun.
Ich möchte, dass es als Signalmodul ausgeführt wird, das von einem Expert Advisor Generator erfasst werden kann. In dem Moment, in dem das Modul ausgelöst werden soll, geben LongCondition() und ShortCondition() im zweiten EA-Modul Nullwerte zurück - d.h. weight=0, verstehe ich das richtig? Dementsprechend muss das Gewicht dieses Moduls das Signal überwiegen, aber es funktioniert nicht. In CheckCloseLong() und CheckCloseShort() habe ich Print("-------------"); und Print(time_GMT_DST()); eingefügt, die bei normalem Betrieb des Moduls bei jedem Tick entsprechende Einträge in das Protokoll machen sollten. Die Einträge werden nicht vorgenommen; CheckCloseLong() und CheckCloseShort() werden nicht aufgerufen. Wo ist der Haken?
Ich bin natürlich ungeschickt, aber ich lerne es gerade.
Ich würde es gerne in Form eines Signalmoduls haben, damit es durch den EA-Generator zusammengesetzt werden kann. In dem Moment, in dem das Modul ausgelöst werden soll, geben LongCondition() und ShortCondition() im zweiten Modul des EA Nullwerte zurück - d.h. weight=0, verstehe ich das richtig? Dementsprechend muss das Gewicht dieses Moduls das Signal überwiegen, aber es funktioniert nicht. In CheckCloseLong() und CheckCloseShort() habe ich Print("-------------"); und Print(time_GMT_DST()); eingefügt, die bei normalem Betrieb des Moduls bei jedem Tick entsprechende Einträge in das Protokoll machen sollten. Die Einträge werden nicht vorgenommen; CheckCloseLong() und CheckCloseShort() werden nicht aufgerufen. Wo ist der Haken?
Ich bin sicherlich eine ungeschickte Erklärung, aber ich lerne gerade
Methoden verwenden
//--- methods of checking if the market models are formedvirtualint LongCondition(void);
virtualint ShortCondition(void);
Anstelle ihrer CheckCloseLong und CheckCloseShort.
Hallo, können Sie mir sagen, wie man einen Zähler für verlorene Trades erstellt? Der Expert Advisor analysiert den letzten Handel in der Historie - wenn er unrentabel ist, addiert er +1 zu der Variable, die die Anzahl der aufeinanderfolgenden Verlustgeschäfte darstellt.
Sobald ein gewinnbringendes Geschäft zustande kommt, muss die Variable auf Null zurückgesetzt werden.
Hallo, könnten Sie mir bitte sagen, wie man einen Zähler für Verlustgeschäfte erstellt? Der Expert Advisor analysiert den letzten Handel in der Historie - wenn dieser ein Verlustgeschäft war, addiert er +1 zu der Variable, die die Anzahl der aufeinanderfolgenden Verlustgeschäfte darstellt.
Sobald ein profitables Geschäft zustande kommt, muss die Variable auf Null gesetzt werden.
Wir können die Arbeit mit der Handelshistorie ablehnen und nur mit OnTradeTransaction() arbeiten - dort werden wir ein Geschäft vom Typ "OUT" abfangen - d.h. es wird die Positionsschließung sein. Sobald dieser Handel gefunden ist, bestimmen wir, ob er profitabel oder unprofitabel war. Dementsprechend sollten die Zähler"Verluste" zurückgesetzt oder erhöht werden.
//+------------------------------------------------------------------+//| TradeTransaction function |//+------------------------------------------------------------------+voidOnTradeTransaction(constMqlTradeTransaction &trans,
constMqlTradeRequest &request,
constMqlTradeResult &result)
{
//--- get transaction type as enumeration value ENUM_TRADE_TRANSACTION_TYPE type=trans.type;
//--- if transaction is result of addition of the transaction in historyif(type==TRADE_TRANSACTION_DEAL_ADD)
{
long deal_ticket =0;
long deal_order =0;
long deal_time =0;
long deal_time_msc =0;
long deal_type =-1;
long deal_entry =-1;
long deal_magic =0;
long deal_reason =-1;
long deal_position_id =0;
double deal_volume =0.0;
double deal_price =0.0;
double deal_commission =0.0;
double deal_swap =0.0;
double deal_profit =0.0;
string deal_symbol ="";
string deal_comment ="";
string deal_external_id ="";
if(HistoryDealSelect(trans.deal))
{
deal_ticket =HistoryDealGetInteger(trans.deal,DEAL_TICKET);
deal_order =HistoryDealGetInteger(trans.deal,DEAL_ORDER);
deal_time =HistoryDealGetInteger(trans.deal,DEAL_TIME);
deal_time_msc =HistoryDealGetInteger(trans.deal,DEAL_TIME_MSC);
deal_type =HistoryDealGetInteger(trans.deal,DEAL_TYPE);
deal_entry =HistoryDealGetInteger(trans.deal,DEAL_ENTRY);
deal_magic =HistoryDealGetInteger(trans.deal,DEAL_MAGIC);
deal_reason =HistoryDealGetInteger(trans.deal,DEAL_REASON);
deal_position_id =HistoryDealGetInteger(trans.deal,DEAL_POSITION_ID);
deal_volume =HistoryDealGetDouble(trans.deal,DEAL_VOLUME);
deal_price =HistoryDealGetDouble(trans.deal,DEAL_PRICE);
deal_commission =HistoryDealGetDouble(trans.deal,DEAL_COMMISSION);
deal_swap =HistoryDealGetDouble(trans.deal,DEAL_SWAP);
deal_profit =HistoryDealGetDouble(trans.deal,DEAL_PROFIT);
deal_symbol =HistoryDealGetString(trans.deal,DEAL_SYMBOL);
deal_comment =HistoryDealGetString(trans.deal,DEAL_COMMENT);
deal_external_id =HistoryDealGetString(trans.deal,DEAL_EXTERNAL_ID);
}
elsereturn;
if(deal_symbol==Symbol() && deal_magic==m_magic)
if(deal_entry==DEAL_ENTRY_OUT)
{
if(deal_commission+deal_swap+deal_profit>0)
{
losses=0;
}
else
{
losses++;
}
}
}
}
Und die Überprüfung in der Handelshistorie sollte in OnInit() erfolgen - einmal beim Start des Expert Advisors.
Hilfe bei der Optimierung des Indikators - ich bekomme den letzten Balken nicht in den Griff!
Der Indikator berücksichtigt eine Reihe von kontinuierlichen Gewinne für binäre Optionen, unter Berücksichtigung, dass die Wette wird alle 2 Bars (dh nach einem - Gewinn/Verlust, warten Sie auf die aktuelle Bar), die externe Variable ist eine Preisanalyse der vorherigen Bar in einem Aufwärts-oder Abwärtskurs
Ich habe das Gefühl, es funktioniert, aber online die letzte Bar ist nicht korrekt berücksichtigt, und als Folge, wenn ich den Indikator auf M1 die Daten aus der Geschichte wird korrekt sein, aber alles online ist nicht korrekt berechnet, der Code:
vielen Dank im Voraus!
Hallo! Bitte helfen Sie mir mit dem Signalmodul zum Schließen von Positionen. Was mache ich falsch?
Ihre Datei ist das Modul SIGNAL. Im Expert Advisor-System ist es auf die gleiche Weise integriert wie das Modul SIGNALS des Indikators USER. Mit anderen Worten: Die von Ihrem Modul erzeugten Signale haben ein GEWICHT, und es kann vorkommen, dass dieses Gewicht nicht ausreicht, um das Signal auszulösen.
Sie müssen sich überlegen, wie Sie den Abschluss in Ihrem Fall am besten durchführen. Vielleicht sollten Sie dies nicht im Signalmodul tun
Ihre Datei ist das Modul SIGNAL. Im Expert Advisor-System ist es auf die gleiche Weise integriert wie das Modul SIGNALS des USER-Indikators. Mit anderen Worten: Die von Ihrem Modul erzeugten Signale haben ein GEWICHT, und es kann vorkommen, dass dieses Gewicht nicht ausreicht, um das Signal auszulösen.
Sie müssen sich überlegen, wie Sie den Abschluss in Ihrem Fall am besten durchführen. In einem Signalmodul sollten Sie dies nicht tun.
Ich möchte, dass es als Signalmodul ausgeführt wird, das von einem Expert Advisor Generator erfasst werden kann. In dem Moment, in dem das Modul ausgelöst werden soll, geben LongCondition() und ShortCondition() im zweiten EA-Modul Nullwerte zurück - d.h. weight=0, verstehe ich das richtig? Dementsprechend muss das Gewicht dieses Moduls das Signal überwiegen, aber es funktioniert nicht. In CheckCloseLong() und CheckCloseShort() habe ich Print("-------------"); und Print(time_GMT_DST()); eingefügt, die bei normalem Betrieb des Moduls bei jedem Tick entsprechende Einträge in das Protokoll machen sollten. Die Einträge werden nicht vorgenommen; CheckCloseLong() und CheckCloseShort() werden nicht aufgerufen. Wo ist der Haken?
Ich bin natürlich ungeschickt, aber ich lerne es gerade.Ich würde es gerne in Form eines Signalmoduls haben, damit es durch den EA-Generator zusammengesetzt werden kann. In dem Moment, in dem das Modul ausgelöst werden soll, geben LongCondition() und ShortCondition() im zweiten Modul des EA Nullwerte zurück - d.h. weight=0, verstehe ich das richtig? Dementsprechend muss das Gewicht dieses Moduls das Signal überwiegen, aber es funktioniert nicht. In CheckCloseLong() und CheckCloseShort() habe ich Print("-------------"); und Print(time_GMT_DST()); eingefügt, die bei normalem Betrieb des Moduls bei jedem Tick entsprechende Einträge in das Protokoll machen sollten. Die Einträge werden nicht vorgenommen; CheckCloseLong() und CheckCloseShort() werden nicht aufgerufen. Wo ist der Haken?
Ich bin sicherlich eine ungeschickte Erklärung, aber ich lerne geradeMethoden verwenden
Anstelle ihrer CheckCloseLong und CheckCloseShort.
Ich danke Ihnen.
Hallo, können Sie mir sagen, wie man einen Zähler für verlorene Trades erstellt?
Der Expert Advisor analysiert den letzten Handel in der Historie - wenn er unrentabel ist, addiert er +1 zu der Variable, die die Anzahl der aufeinanderfolgenden Verlustgeschäfte darstellt.
Sobald ein gewinnbringendes Geschäft zustande kommt, muss die Variable auf Null zurückgesetzt werden.
Hallo, könnten Sie mir bitte sagen, wie man einen Zähler für Verlustgeschäfte erstellt?
Der Expert Advisor analysiert den letzten Handel in der Historie - wenn dieser ein Verlustgeschäft war, addiert er +1 zu der Variable, die die Anzahl der aufeinanderfolgenden Verlustgeschäfte darstellt.
Sobald ein profitables Geschäft zustande kommt, muss die Variable auf Null gesetzt werden.
Wir können die Arbeit mit der Handelshistorie ablehnen und nur mit OnTradeTransaction() arbeiten - dort werden wir ein Geschäft vom Typ "OUT" abfangen - d.h. es wird die Positionsschließung sein. Sobald dieser Handel gefunden ist, bestimmen wir, ob er profitabel oder unprofitabel war. Dementsprechend sollten die Zähler"Verluste" zurückgesetzt oder erhöht werden.
Und die Überprüfung in der Handelshistorie sollte in OnInit() erfolgen - einmal beim Start des Expert Advisors.Hallo zusammen,
Können Sie mir sagen, wie ich das EA-Protokoll programmgesteuert löschen kann, bevor ich die Informationen darin anzeige :?
Nur über Win API?
Ich danke Ihnen!
Hallo zusammen,
Können Sie mir sagen, wie ich das EA-Protokoll programmgesteuert löschen kann, bevor ich die Informationen darin anzeige?
Nur über Win API?
Ich danke Ihnen!