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
...
Werfen Sie einen Blick auf diesen Beitrag: https: //www.mql5.com/en/forum/174385/page12
Es ging um ein ähnliches Problem und Sie können die gleiche countOpenedOnACurrentBar
Funktion verwenden, um nur einen Handel pro Crossover zu öffnen
Hallo Freunde, ich bin ein Neuling. Ich habe eine einfache Strategie. Ich nur scalping, wenn EMA Crossover. Ich nehme nur einen Handel in jedem Crossover. Ich brauche einen Code, der nur einen Handel bei jedem EMA-Crossover durchführen kann. Bitte......
Einfach EMA Crossover Code brauchen........
Vielen Dank, MLADEN...
Ich habe gerade Ihre Funktion überprüft. Es ist gut aussehen. Ich brauche auch etwas Hilfe. Ich habe brauchen, um RSI(50) Wert mit EMA crossover....wie kann ich hinzufügen...?
Paare: GBP/USD & EUR/USD
Zeitrahmen: 15min,1 Stunde und darüber;
-------------------------------
KAUFEN: EMA 5 Cross EMA 12 nach oben, RSI größer als 50
VERKAUFEN: EMA 5 Cross EMA 12 nach unten, RSI kleiner als 50
(nur ein Handel in jedem EMA Crossover)
Ich warte auf eine Antwort. Bitte.......
Dazu gibt es mehrere Möglichkeiten.
Eine Möglichkeit (direkt in EA) könnte so aussehen:
Sie haben alle benötigten Informationen: Die graue Linie ist der "Trend". Grüne und rote Linien können als Einstiegs- und Wiedereinstiegspunkte verwendet werden. Sie können es visuell im Handumdrehen "optimieren" und diese Parameter dann im EA verwenden (viel schnellere visuelle "Optimierung" als das schmerzhafte "Parameter ändern, ausführen, sehen, was dabei herauskommt, und dann das Gleiche wieder und wieder"). Und es ist ziemlich einfach, es vom EA aus aufzurufen. Es würde wie folgt ablaufen:
Alles in allem empfehle ich also immer die Verwendung eines Indikators aus einer Ea. Sie können sogar die Logik des EAs ändern, ohne ihn zu berühren, indem Sie den Code Ihres Indikators ändern und verfeinern. In diesem Fall ist der EA "nur" ein Rahmen für Aufträge und Geldmanagement (da die Signale vom Indikator kommen), was meiner Meinung nach die effizienteste Art ist, EAs zu verwenden. Durch das Anhängen des Indikators können Sie entscheiden, welchen Weg (den direkten oder den "Indikator"-Weg) Sie in Ihrem EA verwenden möchten.
PS: In den obigen Beispielen werden die Tests für den aktuellen (noch geöffneten) Balken durchgeführt. Wenn Sie einen geschlossenen Balken testen wollen, ersetzen Sie die 0 und 1 durch 1 und to in den Aufrufen von iCustom(), iMa() und iRSI()
Herzlichen Dank, MLADEN...
Ich habe gerade Ihre Funktion geprüft. Es sieht gut aus. Ich brauche auch etwas Hilfe. Ich muss RSI(50) Wert mit EMA Crossover hinzufügen....wie kann ich...?
Paare: GBP/USD & EUR/USD
Zeitrahmen: 15min,1 Stunde und darüber;
-------------------------------
KAUFEN: EMA 5 Cross EMA 12 nach oben, RSI größer als 50
VERKAUFEN: EMA 5 Cross EMA 12 nach unten, RSI kleiner als 50
(nur ein Handel bei jedem EMA Crossover)
Ich warte auf Antwort. Bitte.......Saldo zum 1. des Monats?
Guten Tag, ich habe hier gesessen und versucht, herauszufinden, ob es eine Möglichkeit gibt, den Anfangssaldo für den 1. des Monats für eine Anzeige auf dem Bildschirm zu extrahieren.
Was ich versuche, ist die prozentuale Differenz zwischen dem Saldo am 1. und dem aktuellen Saldo zu ermitteln.
Ich habe die gesamte prozentuale Differenz.
(Saldo - Einzahlung)/Einzahlung*100
Ich würde gerne eine monatliche Differenz hinzufügen.
(Saldo - 1.)/1.*100
Irgendwelche Hinweise, Tipps oder aktueller Code wären toll.
Vielen Dank
Beno
Nochmals vielen Dank, MALADEN...
Vielen Dank für Ihren Hinweis und Rat. Ich versuche gerade, Ihren Anweisungen zu folgen. Aber wie ich bin ungeschickt auf mq4, ich habe es nicht tun................
HIER IST MEIN..............
------------------------------------
-----------------------------------
#property indicator_separate_window
#Eigenschaft indicator_buffers 3
#property indicator_color1 LimeGreen
#property indicator_color2 BlassViolettRot
#Eigenschaft indicator_color3 DarkGray
#Eigenschaft indicator_width1 2
#property indicator_width2 2
#Eigenschaft indicator_minimum -1.1
#property indicator_maximum +1.1
extern int EmaFast = 5;
extern int EmaSlow = 12;;
extern int EmaPrice = PRICE_CLOSE;
extern int RsiPeriod = 14;
extern int RsiPrice = PRICE_CLOSE;
double signup[];
double signdn[];
double trend[];
extern double TakeProfit=15.0;
extern double Lots=0.1;
//------------------------------------------------------------------
//
//------------------------------------------------------------------
int init()
{
return(0);
}
//------------------------------------------------------------------
//
//------------------------------------------------------------------
int start()
{
int count,counted_bars=IndicatorCounted();
if(gezählte_Balken < 0) return(-1);
if(gezählte_Balken>0) gezählte_Balken--;
int limit = MathMin(Balken-gezählte_Balken,Balken-1);
int cnt, ticket, total;
double trendc = iCustom(NULL,0, "ema + rsi binär",EmaFast,EmaSlow,EmaPrice,RsiPeriod,RsiPrice,2,0);
double trendp = iCustom(NULL,0, "ema + rsi binär",EmaFast,EmaSlow,EmaPreis,RsiPeriode,RsiPreis,2,1);
if (trendc!=trendp)
total = OrdersTotal();
if(total < 1)
{
if (trendc== 1) //... Signal für Kauf
{
ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,0,Ask+TakeProfit*Point, "Mein EA",12345,0,Green);
if(ticket>0)
{
if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) Print("BUY order opened : ",OrderOpenPrice());
}
else Print("Fehler beim Öffnen der BUY-Order : ",GetLastError());
return(0);
}
if (trendc==-1) //... Signal für Verkauf
{
ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,3,0,Bid-TakeProfit*Point, "Mein EA",12345,0,Red);
if(ticket>0)
{
if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) Print("SELL order opened : ",OrderOpenPrice());
}
else Print("Fehler beim Öffnen der SELL-Order : ",GetLastError());
return(0);
}
}
return(0);
}
---------------------------------------
---------------------------------------
Ich brauche deine Hilfe....
Ich entschuldigte mich bei Ihnen, wenn ich mehr Aspekt zu Ihnen als Sie fiel stören. Aber ich bin wirklich hilflos...
Ich warte auf Antwort. Bitte.......
...
Versuchen Sie es mit etwas wie diesem :
forMonth ist der Monat rückwärts, für den Sie den Saldo sehen möchten. 0 ist der aktuelle Monat. Es wird dann berechnet, wie hoch der Saldo am ersten Tag des gewünschten Monats war. Die Funktion berücksichtigt auch Einzahlungen und Abhebungen (OrderType() == 6), es sollte also gut funktionieren.
Guten Tag, ich habe hier gesessen und versucht, herauszufinden, ob es eine Möglichkeit gibt, den Anfangssaldo für den 1. des Monats für eine Bildschirmanzeige zu extrahieren.
Was ich versuche, ist die prozentuale Differenz zwischen dem Saldo am 1. und dem aktuellen Saldo zu ermitteln.
Ich habe die gesamte prozentuale Differenz.
(Saldo - Einzahlung)/Einzahlung*100
Ich würde gerne eine monatliche Differenz hinzufügen.
(Saldo - 1.)/1.*100
Irgendwelche Hinweise, Tipps oder aktueller Code wären toll.
Vielen Dank
Beno...
Sie können nicht verwalten Aufträge von Indikator. Sie können Aufträge nur von Skripten oder EAs verwalten (das ist der Fall, den Sie suchen). Der Code in Ihrem Beitrag ist ein Indikator.
Die Beispiele, die ich gepostet habe, sind von einem EA aus zu verwenden (soweit ich verstanden habe, haben Sie bereits einen EA, in dem Sie die Anzahl der Aufträge begrenzen wollen und die Bedingungen für den Einstieg mit EMA und RSI testen wollen).
Nochmals vielen Dank, MALADEN...
Vielen Dank für Ihren Indikator und Ihren Rat. Ich versuche gerade, Ihre Anweisung zu befolgen. Aber wie ich bin ungeschickt auf mq4, ich habe es nicht zu tun................
HIER IST MEIN..............
------------------------------------
-----------------------------------
#property indicator_separate_window
#Eigenschaft indicator_buffers 3
#property indicator_color1 LimeGreen
#property indicator_color2 BlassViolettRot
#Eigenschaft indicator_color3 DarkGray
#Eigenschaft indicator_width1 2
#property indicator_width2 2
#Eigenschaft indicator_minimum -1.1
#property indicator_maximum +1.1
extern int EmaFast = 5;
extern int EmaSlow = 12;
extern int EmaPrice = PRICE_CLOSE;
extern int RsiPeriod = 14;
extern int RsiPrice = PRICE_CLOSE;
double signup[];
double signdn[];
double trend[];
extern double TakeProfit=15.0;
extern double Lots=0.1;
//------------------------------------------------------------------
//
//------------------------------------------------------------------
int init()
{
return(0);
}
//------------------------------------------------------------------
//
//------------------------------------------------------------------
int start()
{
int count,counted_bars=IndicatorCounted();
if(gezählte_Balken < 0) return(-1);
if(gezählte_Balken>0) gezählte_Balken--;
int limit = MathMin(Balken-gezählte_Balken,Balken-1);
int cnt, ticket, total;
double trendc = iCustom(NULL,0, "ema + rsi binär",EmaFast,EmaSlow,EmaPrice,RsiPeriod,RsiPrice,2,0);
double trendp = iCustom(NULL,0, "ema + rsi binär",EmaFast,EmaSlow,EmaPreis,RsiPeriode,RsiPreis,2,1);
if (trendc!=trendp)
total = OrdersTotal();
if(total < 1)
{
if (trendc== 1) //... Signal für Kauf
{
ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,0,Ask+TakeProfit*Point, "Mein EA",12345,0,Green);
if(ticket>0)
{
if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) Print("BUY order opened : ",OrderOpenPrice());
}
else Print("Fehler beim Öffnen der BUY-Order : ",GetLastError());
return(0);
}
if (trendc==-1) //... Signal für Verkauf
{
ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,3,0,Bid-TakeProfit*Point, "Mein EA",12345,0,Red);
if(ticket>0)
{
if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) Print("SELL order opened : ",OrderOpenPrice());
}
else Print("Fehler beim Öffnen der SELL-Order : ",GetLastError());
return(0);
}
}
return(0);
}
---------------------------------------
---------------------------------------
Ich brauche deine Hilfe....
Ich entschuldigte mich bei Ihnen, wenn ich mehr Aspekt zu Ihnen als Sie fiel stören. Aber ich bin wirklich hilflos...
Ich warte auf Antwort. Bitte.......Danke für die Antwort, MLADEN,
Sorry, ich glaube, Sie haben mir gesagt, ich solle den Code in einen neuen EA einbauen.
Ich habe einfach nicht verstehen, Ihre Antwort....
YES. Sie haben Recht....
Ich habe EA und wollte ihn ändern. Mit einigen neuen Bedingungen.......
meine Bedingung ist :
------------------------------------------------------
KAUFEN: EMA 5 Cross EMA 12 nach oben, RSI größer als 50
VERKAUF: EMA 5 Cross EMA 12 nach unten, RSI kleiner als 50
Ausstieg: mit kleinem Take-Profit
(nur ein Trade bei jedem EMA Crossover)
hier mein EA.....
---------------------
---------------------
extern double Lots=0.1;
extern int TakeProfit=5;
extern int StopLoss=5;
extern int RSIPos=50;
extern int RSINeg=50;
extern int Slippage=2;
extern int abandon=101;
datetime bartime=0;
int bartick=0;
double p;
int cnt=0;
int OrdersPerSymbol=0;
double bullMA3=0;
double bearMA7=0;
double RSI=0;
bool RSIPOS=0;
bool RSINEG=0;
double TP;
double SL;
int init()
{
if (Symbol()=="AUDUSD") {TakeProfit= 60; StopLoss= 23; abandon=103;}
if (Symbol()=="EURAUD") {TakeProfit= 95; StopLoss=141; abandon=33;}
if (Symbol()=="EURCHF") {TakeProfit= 81; StopLoss= 77; abandon=97;}
if (Symbol()=="EURGBP") {TakeProfit= 11; StopLoss= 77; abandon=108;}
if (Symbol()=="EURJPY") {TakeProfit= 38; StopLoss= 75; abandon=183;}
if (Symbol()=="EURUSD") {TakeProfit=35; StopLoss= 35; abandon=5;}
if (Symbol()=="GBPCHF") {TakeProfit= 79; StopLoss= 98; abandon=113;}
if (Symbol()=="GBPJPY") {TakeProfit= 13; StopLoss= 98; abandon=117;}
if (Symbol()=="GBPUSD") {TakeProfit= 55; StopLoss=100; abandon=69;}
if (Symbol()=="USDCAD") {TakeProfit= 66; StopLoss= 76; abandon=106;}
if (Symbol()=="USDCHF") {TakeProfit=117; StopLoss= 78; abandon=111;}
if (Symbol()=="USDJPY") {TakeProfit= 53; StopLoss= 74; abandon=110;}
}
int deinit()
{
}
int start()
{
p=Punkt;
// Fehlerprüfung & Balkenzählung
if(AccountFreeMargin()<(200*Lots)) {Print("-----NO MONEY"); return(0);}
if(Bars<100) {Drucken("-----NO BARS "); return(0);}
if(bartime!=Zeit[0]) {bartime=Zeit[0]; bartick++;}
bullMA3=iMA(Symbol(),0,3,0,MODE_EMA,PRICE_CLOSE,1);
bearMA7=iMA(Symbol(),0,7,0,MODE_EMA,PRICE_CLOSE,1);
RSI=iRSI(Symbol(),0,2,PRICE_CLOSE,2);
if(RSI>RSIPos) {RSIPOS=true; RSINEG=false;}
if(RSI<RSINeg) {RSIPOS=false; RSINEG=true;}
OrdersPerSymbol=0;
for(cnt=OrdersTotal();cnt>=0;cnt--)
{
OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
if( BestellSymbol()==Symbol() )
{
OrdersPerSymbol++;
}
}
if(OrdersPerSymbol==0)
{
if(bullMA3>(bearMA7+p) && RSINEG)
{
SL=Ask-(StopLoss*p);
TP=Ask+(TakeProfit*p);
OrderSend(Symbol(),OP_BUY,Lots,Ask,Slippage,SL,TP, "BUY "+CurTime(),0,0,White);
bartick=0;
}
if(bullMA3<(bearMA7-p) && RSIPOS)
{
SL=Bid+(StopLoss*p);
TP=Bid-(TakeProfit*p);
OrderSend(Symbol(),OP_SELL,Lots,Bid,Slippage,SL,TP, "SELL "+CurTime(),0,0,Red);
bartick=0;
}
}
if(OrdersPerSymbol==1 && bartick==abandon)
{
if(OrderType()==OP_BUY)
{
OrderClose(OrderTicket(),Lots,Bid,Slippage,White);
SL=Bid+(StopLoss*p);
TP=Bid-(TakeProfit*p);
OrderSend(Symbol(),OP_SELL,Lots,Bid,Slippage,SL,TP, "SELL "+CurTime(),0,0,Red);
bartick++;
}
if(OrderType()==OP_SELL)
{
OrderClose(OrderTicket(),Lots,Ask,Slippage,Red);
SL=Ask-(StopLoss*p);
TP=Ask+(TakeProfit*p);
OrderSend(Symbol(),OP_BUY,Lots,Ask,Slippage,SL,TP, "BUY "+CurTime(),0,0,White);
bartick++;
}
}
for(cnt=0;cnt<OrdersTotal();cnt++)
{
OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
if( BestellSymbol()==Symbol() )
{
if(OrderType()==OP_BUY)
{
wenn (OrderMagicNumber()==0)
{
if( Bid-OrderOpenPrice() > 3*Point )
{
OrderClose(OrderTicket(),Lots,Bid,0,White);
return(0);
}
}
}
if(OrderType()==OP_SELL)
{
wenn (OrderMagicNumber()==0)
{
if( OrderOpenPrice()-Ask > (3*Point) )
{
OrderClose(OrderTicket(),Lots,Ask,0,Red);
return(0);
}
}
}
}
}
return(0);
}
-------------------
---------------------
Wie kann ich es ändern....? Ich warte auf Antwort. Bitte.......
dipu
Was die Eingaben betrifft, so funktioniert diese hier gut.
Kümmern Sie sich jetzt um die Exits, denn so wie Sie es geschrieben haben, schließen Sie die Orders zu früh. Auch der 5-stellige Broker ist jetzt erledigt, und die Entrys funktionieren, wie sie sollten. Standard-Periode für rsi ist auf 14 (ich wusste nicht, welche Sie verwenden möchten, im Code verwenden Sie Periode 2, aber das ist wahrscheinlich zu kurz). Ema Perioden sind standardmäßig 5 und 12. Außerdem wird jetzt ein geschlossener Balken getestet (es wird gewartet, bis der Balken geschlossen ist, und wenn dann ein Kauf- oder Verkaufssignal vorliegt, wird der Auftrag eingegeben).
Danke für die Antwort, MLADEN,
sorry nicht für klare Informationen.......
KAUFEN: EMA 5 Cross EMA 12 nach oben, RSI[14] größer als 50
VERKAUFEN: EMA 5 Cross EMA 12 nach unten, RSI[14] kleiner als 50
Ausstieg: mit kleinem TP/Sl....(5pip)
(nur ein Handel in jedem EMA Crossover)
Ich probiere es gerade aus & werde Sie über das Ergebnis informieren....
Kann es auch ändern.. oder nicht..
Nochmals vielen Dank für Ihre Hilfe.....