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
EA öffnet keine Gegenposition
Hallo MQL Coders,
Ich habe eine Frage bezüglich eines Fehlers in meinem EA. Es scheint nicht eine Gegen-Trend-Position zu öffnen (siehe beigefügten Screenshot).
Es ist das Schließen des Handels, aber es ist nicht öffnen einen neuen Handel zu folgen, die neue Richtung gegeben Trend.
// Indicator HMA NMC
double trendc = iCustom(Symbol(),0,"Hull moving average 2 strict nmc", "", HMA_Period, HMA_Price, HMA_Speed,0,3,1);
double trendp = iCustom(Symbol(),0,"Hull moving average 2 strict nmc", "", HMA_Period, HMA_Price, HMA_Speed,0,3,2);
//+------------------------------------------------------------------+
//| BUY |
//+------------------------------------------------------------------+
if(trendc!=trendp)
{
if(trendc==1) // code for buy
OpenBuy();
return(0);
}
//+------------------------------------------------------------------+
//| SELL |
//+------------------------------------------------------------------+
if(trendc==-1) // code for sell
{
OpenSell();
return(0);
}
}
[/CODE]
[CODE]
void CheckForClose()
{
RefreshRates();
double trendc_c = iCustom(Symbol(),0,"Hull moving average 2 strict nmc", "", HMA_Period, HMA_Price, HMA_Speed,0,3,1);
double trendp_c = iCustom(Symbol(),0,"Hull moving average 2 strict nmc", "", HMA_Period, HMA_Price, HMA_Speed,0,3,2);
for(int i=0;i<OrdersTotal(); i++)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break;
if(OrderMagicNumber()!= MAGIC) continue;
if(OrderSymbol() != s_symbol) continue;
//+-------------------------------------------------------------------------------+
//| Close BUY |
//+-------------------------------------------------------------------------------+
if(trendc_c!=trendp_c) // Check trend
{
if(OrderType()==OP_BUY)
{
if(trendc_c==-1) //is buy?
{
bool buyClose=OrderClose(OrderTicket(),OrderLots(),MarketInfo(s_symbol,MODE_BID),Slippage*pipMultiplier,clCloseBuy);
if(buyClose==false)
{
int ErrorCode = GetLastError();
string ErrDesc = ErrorDescription(ErrorCode);
string ErrAlert= StringConcatenate("Close Buy Order - Error ",ErrorCode,": ",ErrDesc);
if(ShowAlerts == true) Alert(ErrAlert);
string ErrLog=StringConcatenate("Bid: ",MarketInfo(s_symbol,MODE_BID)," Lots: ",OrderLots()," Ticket: ",OrderTicket());
Print(ErrLog);
}
}
break;
}
}
//+--------------------------------------------------------------------------------+
//| Close SELL |
//+--------------------------------------------------------------------------------+
if(trendc_c!=trendp_c)
{
if(OrderType()==OP_SELL)
{
if(trendc_c==1) // SELL
{
bool sellClose= OrderClose(OrderTicket(),OrderLots(),MarketInfo(s_symbol,MODE_ASK),Slippage*pipMultiplier,clCloseSell);
if(sellClose == false)
{
ErrorCode = GetLastError();
ErrDesc = ErrorDescription(ErrorCode);
ErrAlert=StringConcatenate("Close Sell Order - Error ",ErrorCode,": ",ErrDesc);
if(ShowAlerts==true) Alert(ErrAlert);
ErrLog=StringConcatenate("Ask: ",MarketInfo(s_symbol,MODE_ASK)," Lots: ",OrderLots()," Ticket: ",OrderTicket());
Print(ErrLog);
}
}
break;
}
}
}
}
Ich danke Ihnen im Voraus!
Lieber Mladen
Ist es möglich, in dem beigefügten Indikator eine Bandbreite hinzuzufügen, wie in diesem Beitrag: https: //www.mql5.com/en/forum/172894/page45
Dieser Indikator ist aus der Elite-Sektion, aber ich mag die Art und Weise, wie Sie das Band hinzufügen
Danke für jede Hilfe
geheimcodeGeheimcode
Hier ist eine Version mit hinzugefügten Bändern: ema_variation__filter_amp_bands_amp_mtf.ex4
secretcode Hier ist eine Version mit hinzugefügten Bändern: ema_variation__filter_amp_bands_amp_mtf.ex4
Vielen Dank Mladen Ich schätze Ihr Fachwissen sehr
Mit freundlichen Grüßen
geheimcode
Hallo MQL Coders,
Ich habe eine Frage zu einem Fehler in meinem EA. Scheint nicht eine Gegen-Trend-Position zu öffnen (siehe beigefügten Screenshot).
Es wird der Handel geschlossen, aber es ist nicht ein neuer Handel zu öffnen, um die neue Richtung gegeben Trend zu folgen.
// Indicator HMA NMC
double trendc = iCustom(Symbol(),0,"Hull moving average 2 strict nmc", "", HMA_Period, HMA_Price, HMA_Speed,0,3,1);
double trendp = iCustom(Symbol(),0,"Hull moving average 2 strict nmc", "", HMA_Period, HMA_Price, HMA_Speed,0,3,2);
//+------------------------------------------------------------------+
//| BUY |
//+------------------------------------------------------------------+
if(trendc!=trendp)
{
if(trendc==1) // code for buy
OpenBuy();
return(0);
}
//+------------------------------------------------------------------+
//| SELL |
//+------------------------------------------------------------------+
if(trendc==-1) // code for sell
{
OpenSell();
return(0);
}
}
[/CODE]
[CODE]
void CheckForClose()
{
RefreshRates();
double trendc_c = iCustom(Symbol(),0,"Hull moving average 2 strict nmc", "", HMA_Period, HMA_Price, HMA_Speed,0,3,1);
double trendp_c = iCustom(Symbol(),0,"Hull moving average 2 strict nmc", "", HMA_Period, HMA_Price, HMA_Speed,0,3,2);
for(int i=0;i<OrdersTotal(); i++)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break;
if(OrderMagicNumber()!= MAGIC) continue;
if(OrderSymbol() != s_symbol) continue;
//+-------------------------------------------------------------------------------+
//| Close BUY |
//+-------------------------------------------------------------------------------+
if(trendc_c!=trendp_c) // Check trend
{
if(OrderType()==OP_BUY)
{
if(trendc_c==-1) //is buy?
{
bool buyClose=OrderClose(OrderTicket(),OrderLots(),MarketInfo(s_symbol,MODE_BID),Slippage*pipMultiplier,clCloseBuy);
if(buyClose==false)
{
int ErrorCode = GetLastError();
string ErrDesc = ErrorDescription(ErrorCode);
string ErrAlert= StringConcatenate("Close Buy Order - Error ",ErrorCode,": ",ErrDesc);
if(ShowAlerts == true) Alert(ErrAlert);
string ErrLog=StringConcatenate("Bid: ",MarketInfo(s_symbol,MODE_BID)," Lots: ",OrderLots()," Ticket: ",OrderTicket());
Print(ErrLog);
}
}
break;
}
}
//+--------------------------------------------------------------------------------+
//| Close SELL |
//+--------------------------------------------------------------------------------+
if(trendc_c!=trendp_c)
{
if(OrderType()==OP_SELL)
{
if(trendc_c==1) // SELL
{
bool sellClose= OrderClose(OrderTicket(),OrderLots(),MarketInfo(s_symbol,MODE_ASK),Slippage*pipMultiplier,clCloseSell);
if(sellClose == false)
{
ErrorCode = GetLastError();
ErrDesc = ErrorDescription(ErrorCode);
ErrAlert=StringConcatenate("Close Sell Order - Error ",ErrorCode,": ",ErrDesc);
if(ShowAlerts==true) Alert(ErrAlert);
ErrLog=StringConcatenate("Ask: ",MarketInfo(s_symbol,MODE_ASK)," Lots: ",OrderLots()," Ticket: ",OrderTicket());
Print(ErrLog);
}
}
break;
}
}
}
}
tfi_markets
Versuchen Sie, beide Break-Anweisungen eine Zeile nach oben zu verschieben (innerhalb der "}" )
Hallo Mladen,
wärst du so freundlich, mir zu sagen, wo ich mit diesem Code etwas falsch gemacht habe.
Ich habe den Indikator "All Pivots" so überarbeitet, dass er auch die Eröffnungslinie des Vortages, die Schlusslinie des Vortages und die Eröffnungslinie des aktuellen Tages anzeigt.
aber der Indikator ist inkonsistent. Er zeigt die Pivots immer korrekt an, aber nur selten, wenn überhaupt, zeigt er den von mir hinzugefügten Code für die Tageseröffnungs-, Vortageseröffnungs- und -schlusslinie an.
Ich verstehe nicht warum, der Code sieht genauso aus wie der Pivot-Code, also sollte alles angezeigt werden und manchmal tut es das auch, aber nicht immer. Ich habe etwas falsch gemacht, bin mir aber nicht sicher, was.
Vielen Dank!
PG
allpivots_daily.mq4
Hallo Mladen,
Wären Sie so freundlich, mir zu sagen, wo ich mit diesem Code falsch gemacht habe.
Ich habe den Indikator "All Pivots" so überarbeitet, dass er auch die Eröffnungslinie des Vortages, die Schlusslinie des Vortages und die Eröffnungslinie des aktuellen Tages anzeigt.
aber der Indikator ist inkonsistent. Er zeigt die Pivots immer korrekt an, aber nur selten, wenn überhaupt, zeigt er den von mir hinzugefügten Code für die Tageseröffnungs-, Vortageseröffnungs- und -schlusslinien an.
Ich verstehe nicht warum, der Code sieht genauso aus wie der Pivot-Code, also sollte alles angezeigt werden und manchmal tut es das auch, aber nicht immer. Ich habe etwas falsch gemacht, bin mir aber nicht sicher, was.
Vielen Dank!
PG
allpivots_daily.mq4PG
Es funktioniert gut (siehe die Liste der erstellten Objekte). Prüfen Sie, ob es überlappende Preise gibt (das könnte dazu führen, dass einige Zeilen unsichtbar sind)
Vergessen Sie auch nicht, die neu erstellten Zeilen in der Funktion ObjectDel() hinzuzufügen
Danke Mladen, ich habe immer wieder nachgeschaut und es scheint wählerisch zu sein, was die Zeilennamen innerhalb des "" angeht, was nicht das ist, was ich erwarte.
Wie immer vielen Dank für Ihre Zeit und Hilfe,
PG
PG
Es funktioniert gut (siehe die Liste der erstellten Objekte). Prüfen Sie, ob es überlappende Preise gibt (das könnte dazu führen, dass einige Zeilen unsichtbar sind)
Danke Mladen, ich habe es immer wieder überprüft und es scheint wählerisch zu sein, was die Namen der Zeilen innerhalb des "" angeht, was nicht das ist, was ich erwarte.
Wie immer danke ich Ihnen für Ihre Zeit und Hilfe,
PGDie Namen der Objekte müssen immer eindeutig sein - aber soweit ich gesehen habe, hast du dich darum gekümmert
Bitte helfen Sie mir bei diesem https://www.mql5.com/en/forum/174385/page263
Vielen Dank, Mladen,
Ich habe ein Problem und das ist:
mein erstes Kaufsignal nach dem letzten Verkauf, ich brauche es, nachdem der Bar über dem Widerstand oder "srUp" des Codes geschlossen wurde
dasselbe gilt für den Verkauf, der Bar muss unterhalb der Unterstützung oder "srDown" geschlossen sein.
Wie kann ich dies im Code korrigieren?
Und zweitens, war Nummer eins vorher gefragt, ist, wie könnte ich in meinem Code zu beheben, um das erste Signal kaufen nach verkaufen in verschiedenen Farben zeigen?
#property strict
#Eigenschaft indicator_chart_window
#Eigenschaft indicator_buffers 4
#property indicator_color1 clrLime
#eigenschaft indicator_color2 clrRed
#Eigenschaft indicator_color3 clrMagenta
#Eigenschaft indicator_color4 clrCyan
#define BUY 1
#define SELL 2
double Buy[],
Sell[],
FirstBuy[],
FirstSell[];
int OnInit() {
SetIndexBuffer(0,FirstBuy);
SetIndexBuffer(1,FirstSell);
SetIndexBuffer(2,Buy);
SetIndexBuffer(3,Sell);
for(int i=0; i<4; i++) {
SetIndexStyle (i,DRAW_ARROW,STYLE_SOLID,2);}
SetIndexArrow (0,233);
SetIndexArrow (1,234);
SetIndexArrow (2,233);
SetIndexArrow (3,234);
return(INIT_SUCCEEDED);}
void OnDeinit(const int reason) {}
int OnCalculate(const int rates_total, const int prev_calculated, const datetime &time[],
const double &open[], const double &high[], const double &low[],
const double &close[], const long &tick_volume[], const long &volume[],
const int &spread[]) {
static int lastSignal=0;
for(int i=MathMin(rates_total-prev_calculated, rates_total-1); i>=0; i--) {
FirstBuy=FirstSell=Buy=Sell=EMPTY_VALUE;
datetime when=Time;
int w=iBarShift(NULL,PERIOD_H4, when),
x=iBarShift(NULL,PERIOD_H1, when),
y=iBarShift(NULL,PERIOD_M15,when),
z=iBarShift(NULL,PERIOD_M5, wenn);
double srUpH4 = iCustom(NULL,PERIOD_H4, "Support and Resistance (Barry)",0,w),
srDownH4 = iCustom(NULL,PERIOD_H4, "Unterstützungen und Widerstände (Barry)",1,w),
MidH4 = (srUpH4+srDownH4)/2,
srUpH1 = iCustom(NULL,PERIOD_H1, "Unterstützung und Widerstand (Barry)",0,x),
srDownH1 = iCustom(NULL,PERIOD_H1, "Unterstützung und Widerstand (Barry)",1,x),
MidH1 = (srUpH1+srDownH1)/2,
srUp15M = iCustom(NULL,PERIOD_M15, "Unterstützung und Widerstand (Barry)",0,y),
srDown15M = iCustom(NULL,PERIOD_M15, "Unterstützungen und Widerstände (Barry)",1,y),
Mid15M = (srUp15M+srDown15M)/2,
srUp5M = iCustom(NULL,PERIOD_M5, "Unterstützung und Widerstand (Barry)",0,z),
srDown5M = iCustom(NULL,PERIOD_M5, "Unterstützungen und Widerstände (Barry)",1,z),
Mid5M = (srUp5M+srDown5M)/2,
srUp = iCustom(NULL,0, "Unterstützung und Widerstand (Barry)",0,i),
srDown = iCustom(NULL,0, "Unterstützung und Widerstand (Barry)",1,i);
if(ClosesrUp) { // erstes Kaufsignal
Kaufen=Tiefststand_Punkt; }
sonst {
Buy=EMPTY_VALUE; }
if(Close>Mid5M && Close>srUp) { // zweites Signal Buy
Buy=Low-_Point; }
sonst {
Buy=EMPTY_VALUE; }
if(Close>MidH4 && Close>Mid15M && Close<srDown) { // erstes Signal Sell
Sell=High+_Point; }
sonst {
Verkaufen=EMPTY_VALUE; }
if(Close<Mid5M && Close<srDown) { // zweites Signal verkaufen
Sell=High+_Point; }
sonst {
Sell=EMPTY_VALUE; }}
return(rates_total);}
dies ist, was ich für die Alerts habe, soll ich es verwenden oder stattdessen den Alert( t("text for pop up"))? verwenden?
void SoundAlert(datetime i, string dir) {
static datetime lastAlert=0;
if(lastAlert!=i) {
Alert(StringFormat("%s Signal an %s um %s",dir,Symbol(),TimeToStr(i)));
lastAlert=i;}}
danke mladen