Ich Do Debugging und fand, dass falsche SL aufgrund hoher Spread dieses Problem verursacht.
Der Code innerhalb der Expert Advisor ist richtig - aber wenn im Moment der Platzierung der Preis macht eine starke Bewegung, die POSITION wird nicht geöffnet werden.
Vielen Dank für die Freigabe der Experte, ich versuche, eine Bedingung für das Schließen der Position hinzufügen, wenn die Bar schließen die Wolke passieren, das ist der Code, den ich hinzugefügt, können Sie mir helfen, bitte, ich bin sehr neu zu mql5
Vielen Dank für die Freigabe der Experte, ich versuche, eine Bedingung für das Schließen der Position hinzufügen, wenn die Bar schließen die Wolke passieren, das ist der Code, den ich hinzugefügt, können Sie mir helfen, bitte, ich bin sehr neu zu mql5
Bitte fügen Sie den Code korrekt ein: ERST drücken Sie die Schaltfläche , und DANN fügen Sie den Code in das Pop-up-Fenster ein.
Bitte fügen Sie den Code korrekt ein: Drücken Sie ZUERST die Schaltfläche , und fügen Sie DANN den Code in das Pop-up-Fenster ein.
Hallo, nochmals
Vielen Dank für Ihre Antwort, und es tut mir sehr leid für den Schlamassel, den ich angerichtet habe. Ich habe den Code gegenüber meinem letzten Beitrag ein wenig geändert, und er schließt die Position immer noch nicht, und ich habe stoploss = 0 gesetzt.
double Kij2=iIchimokuGet(KIJUNSEN_LINE,3);
double SpanA2=iIchimokuGet(SENKOUSPANA_LINE,3);
double SpanB2=iIchimokuGet(SENKOUSPANB_LINE,3);
double Chinkou2=iIchimokuGet(CHIKOUSPAN_LINE,3);
//Schließende Aufträge// m_trade.PositionClose(m_symbol.Name());//Bestellungen kaufen// {// if (PositionGetInteger(POSITION_TYPE) == POSITION_TYPE_BUY )// {// if(iClose(_Symbol,Zeitraum(),1) < SpanB)// {//m_trade.PositionClose(_Symbol);// }// } // }//VERKAUF VON AUFTRÄGEN// if(PositionGetInteger(POSITION_TYPE) == POSITION_TYPE_SELL)// {// if(iClose(_Symbol,Zeitraum(),1) > SpanB)// {// m_trade.PositionClose(_Symbol);//}// }// if(m_trade.ResultRetcode()==10008 || m_trade.ResultRetcode()==10009) //Anfrage ist abgeschlossen oder Auftrag erteilt// {// Print("Exit rules: Eine Close-Order wurde erfolgreich platziert mit Ticket#: ",m_trade.ResultOrder());// }//else// {// Print("Exit-Regeln: Die Anforderung für die Schließung des Auftrags konnte nicht abgeschlossen werden.Fehler: ",GetLastError());// ResetLastError();//zurück;// }// }// }// }//--- check BUYif (iClose(_Symbol,PERIOD_D1,1) < iClose(_Symbol,PERIOD_D1,2) && iHigh(_Symbol,PERIOD_H4,2) - iLow(_Symbol,PERIOD_H4,2) > iHigh(_Symbol,PERIOD_H4,1)- iLow(_Symbol,PERIOD_H4,2) )
{
if (iOpen(m_symbol.Name(),Period(),0) > Kij && iOpen(m_symbol.Name(),Period(),0) > SpanA)
// if(Ten1<=Kij1 && Ten>Kij &&//&& m_symbol.Ask()>SpanA1 //&& m_symbol.Ask()>SpanB1 && // iOpen(m_symbol.Name(),Period(),1)<iClose(m_symbol.Name(),Period(),1)) //|| //(Chinkou1<=iClose(m_symbol.Name(),Period(),11) && Chinkou>iClose(m_symbol.Name(),Period(),10) && // m_symbol.Ask()>SpanA1 && m_symbol.Ask()>SpanB1 && // iOpen(m_symbol.Name(),Period(),1)<iClose(m_symbol.Name(),Period(),1))
{
double sl=(InpStopLoss==0)?0.0:m_symbol.Ask()-ExtStopLoss;
if(sl>=m_symbol.Bid()) // Zwischenfall: die Position ist noch nicht geöffnet und muss bereits geschlossen sein
{
PrevBars=0;
return;
}
double tp=(InpTakeProfit==0)?0.0:m_symbol.Ask()+ExtTakeProfit;
if(iClose(_Symbol,Period(),1) < SpanB)
{
if(m_position.Select(_Symbol)) //wenn die Position für dieses Symbol bereits existiert
{
if(m_position.PositionType()==POSITION_TYPE_BUY) m_trade.PositionClose(_Symbol); //und dies ist eine Kaufposition, dann schließen Sie sie// if(m_Position.PositionType()==POSITION_TYPE_SELL) return;
}
}
OpenBuy(sl,tp);
}
}
//--- SELL prüfenif (iClose(_Symbol,PERIOD_D1,1) > iClose(_Symbol,PERIOD_D1,2) && iHigh(_Symbol,PERIOD_D1,2) - iLow(_Symbol,PERIOD_H4,2) > iHigh(_Symbol,PERIOD_H4,1)- iLow(_Symbol,PERIOD_H4,2) )
{
if(iOpen(m_symbol.Name(),Period(),0) < Kij && iOpen(m_symbol.Name(),Period(),0) < SpanB)
// if(Ten1>Kij1 && Ten<Kij &&//&& m_symbol.Bid()<SpanA1 && m_symbol.Bid()<SpanB1 && // iOpen(m_symbol.Name(),Period(),1)>iClose(m_symbol.Name(),Period(),1)) //|| //(Chinkou1>=iOpen(m_symbol.Name(),Period(),11) && Chinkou<iOpen(m_symbol.Name(),Period(),10) && //m_symbol.Bid()<SpanA1 && m_symbol.Bid()<SpanB1 && //iOpen(m_symbol.Name(),Period(),1)>iClose(m_symbol.Name(),Period(),1)))
{
double sl=(InpStopLoss==0)?0.0:m_symbol.Bid()+ExtStopLoss;
if(sl<=m_symbol.Ask()) // Zwischenfall: die Position ist noch nicht geöffnet und muss bereits geschlossen sein
{
PrevBars=0;
return;
}
double tp=(InpTakeProfit==0)?0.0:m_symbol.Bid()-ExtTakeProfit;
if(iClose(_Symbol,Period(),1) > SpanB)
{
if(m_position.Select(_Symbol)) //wenn die Position für dieses Symbol bereits existiert
{
if(m_position.PositionType()==POSITION_TYPE_SELL) m_trade.PositionClose(_Symbol); //und dies ist eine Kaufposition, dann schließen Sie sie// if(m_Position.PositionType()==POSITION_TYPE_SELL) return;
}
}
OpenSell(sl,tp);
}
}
// m_trade.PositionClose(_Symbol);
}
Aktivieren Sie das Code-Debugging und testen Sie Schritt für Schritt.
Vielen Dank für Ihre Antwort.
Ich mache Debugging und fand heraus, dass falsche SL aufgrund der hohen Streuung dieses Problem verursacht.
Vielen Dank für Ihre Antwort.
Ich Do Debugging und fand, dass falsche SL aufgrund hoher Spread dieses Problem verursacht.
Der Code innerhalb der Expert Advisor ist richtig - aber wenn im Moment der Platzierung der Preis macht eine starke Bewegung, die POSITION wird nicht geöffnet werden.
Der Code im Expert Advisor ist korrekt - aber wenn der Preis im Moment der Platzierung eine starke Bewegung macht, wird die POSITION nicht geöffnet.
Ich denke, dieser Abschnitt sollte für Crypo geändert werden:
Wenn ich RISK für die Bestimmung des Lots verwende, sehe ich den Fehler getpointer und muss fix LOT verwenden:
***
Wenn ich RISK zur Bestimmung der Partie verwende, sehe ich einen Getpointer-Fehler und muss Fix LOT verwenden:
Sie sehen Ihren Fehler - denken Sie nach: Welchen Wert des Risikos stellen Sie ein?
Anmerkung: Wenn Sie Instrumente mit einem GROSSEN Spread verwenden, müssen Sie einen angemessenen Stop Loss setzen.
Denken Sie immer daran - es gibt ZWEI Preise: Ask und Bid.
Sie sehen Ihren Fehler - denken Sie nach: Welchen Risikowert setzen Sie an?
Vielen Dank für Ihre Antwort. alles ist richtig in Experte. Probleme sind aufgrund unzureichender Balance undfalsche SL aufgrund hug Spread.
Ich habe 1% Risiko für 500$ Balance eingestellt. leverage auf 100 eingestellt. diese Fehler apears:
OpenBuy, ERROR: Methode CheckOpenLong
OpenSell, ERROR: Methode CheckOpenShort
bedeutet das, dass das Guthaben nicht ausreicht, um eine Position mit einer Mindestlosgröße in BTC zu eröffnen?
Stimmt das?
Vielen Dank für Ihre Antwort. Alles ist richtig in Experte. Probleme sind aufgrund unzureichender Balance und falsche SL aufgrund hug Verbreitung.
Ich setze 1% Risiko für 500$ Balance. Hebelwirkung auf 100 gesetzt. diese Fehler apears:
OpenBuy, ERROR: Methode CheckOpenLong
OpenSell, ERROR: Methode CheckOpenShort
bedeutet dies, dass der Kontostand nicht ausreicht, um eine Position mit einer Mindestlosgröße in BTC zu eröffnen?
Stimmt das?
Sie haben Ihren Fehler gefunden. Denken Sie jetzt darüber nach, wie Sie Ihren Fehler korrigieren können.
Hallo, Vladimir
Vielen Dank für die Freigabe der Experte, ich versuche, eine Bedingung für das Schließen der Position hinzufügen, wenn die Bar schließen die Wolke passieren, das ist der Code, den ich hinzugefügt, können Sie mir helfen, bitte, ich bin sehr neu zu mql5
Hallo, Wladimir
Vielen Dank für die Freigabe der Experte, ich versuche, eine Bedingung für das Schließen der Position hinzufügen, wenn die Bar schließen die Wolke passieren, das ist der Code, den ich hinzugefügt, können Sie mir helfen, bitte, ich bin sehr neu zu mql5
Bitte fügen Sie den Code korrekt ein: ERST drücken Sie die Schaltfläche
, und DANN fügen Sie den Code in das Pop-up-Fenster ein.
Bitte fügen Sie den Code korrekt ein: Drücken Sie ZUERST die Schaltfläche , und fügen Sie DANN den Code in das Pop-up-Fenster ein.
Hallo, nochmals
Vielen Dank für Ihre Antwort, und es tut mir sehr leid für den Schlamassel, den ich angerichtet habe. Ich habe den Code gegenüber meinem letzten Beitrag ein wenig geändert, und er schließt die Position immer noch nicht, und ich habe stoploss = 0 gesetzt.