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
Hallo Trader.
Kann mir jemand helfen und weiß, welche Indikatoren in diesen beiden .ex4-Dateien enthalten sind?!
Mit freundlichen Grüßen, oink!
Hallo Trader.
Kann mir jemand helfen und weiß, welche Indikatoren die in diesen beiden .ex4-Dateien sind?!
Mit freundlichen Grüßen, oink!Alarmsignale ist ein einfaches Zickzack gemacht, um Pfeile zu zeigen:
Dankemladen, ich kenne deinen Namen aus rund 10000 Indikatoren! ;-)
Dann google ich nach dem Zickzack+Pfeile Indikator.
Der andere ist undefiniert?
Beste Grüße, oink!
Danke, ich kenne deinen Namen aus rund 10000 Indikatoren ;-)
Dann google ich nach dem Indikator Zickzack+Pfeile.
Der andere ist undefiniert?
Beste Grüße, oink!Ehrlich gesagt, konnte ich den anderen nicht erkennen. Entschuldigung
Hallo,
Ich verstehe nicht, warum diese ea nicht funktionieren, compllation OK, nichts in Journal noch Experte Registerkarte, aber nicht jeder Handel .
Vielen Dank im Voraus.
Jo
extern int magicNum=200;
extern double TakeProfit = 50;
extern double Lots = 0.01;
extern double TrailingStop = 30;
//extern double MACDOopenLevel=3;
//extern double MACDCloseLevel=2;
extern double MATrendPeriod=5;
int start()
{
double MaCurrent,MaPrevious,MavPrevious;
double close=iClose(Symbol(),0,0);
double vclose=iClose(Symbol(),0,1);
double vvclose=iClose(Symbol(),0,2);
// double MacdCurrent, MacdPrevious, SignalCurrent;
// double SignalPrevious, MaCurrent, MaPrevious;
// double RSIj,RSIv;
int cnt, ticket, total;
// Überprüfung der Ausgangsdaten
// Es ist wichtig, sicherzustellen, dass der Experte mit einem normalen
// Chart arbeitet und der Benutzer keine Fehler beim Setzen externer
// Variablen (Lots, StopLoss, TakeProfit,
// TrailingStop), in unserem Fall prüfen wir TakeProfit
// bei einem Chart mit weniger als 100 Bars
if(Bars<100)
{
Print("Balken weniger als 100");
return(0);
}
if(TakeProfit<10)
{
Print("TakeProfit kleiner als 10");
return(0); // TakeProfit prüfen
}
// zur Vereinfachung der Codierung und zur Beschleunigung des Zugriffs
// Daten werden in internen Variablen abgelegt
// MacdCurrent=iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_MAIN,0);
// MacdPrevious=iMACD(NULL,0,12,26,9,PREIS_SCHLIESSEN,MODE_MAIN,1);
// SignalCurrent=iMACD(NULL,0,12,26,9,PREIS_SCHLIESSEN,MODE_SIGNAL,0);
// SignalVorher=iMACD(NULL,0,12,26,9,PREIS_SCHLIESSEN,MODE_SIGNAL,1);
MaCurrent=iMA(NULL,0,MATrendPeriod,0,MODE_SMA,PRICE_CLOSE,0);
MaPrevious=iMA(NULL,0,MATrendPeriod,0,MODE_SMA,PRICE_CLOSE,1);
MavPrevious=iMA(NULL,0,MATrendPeriod,0,MODE_SMA,PRICE_CLOSE,2);
double PlusHaut =High;
double PlusBas =Low;
double TiersHaut =PlusBas +((PlusHaut-PlusBas)*0.66);
double TiersBas =PlusBas +((PlusHaut-PlusBas)*0,33);
// RSIj= iRSI(NULL,0,9,PRICE_CLOSE,0);
// RSIv= iRSI(NULL,0,9,PRICE_CLOSE,1);
total=OrdersTotal();
if(gesamt<1)
{ // keine offenen Aufträge identifiziert
if(AccountFreeMargin()<(1000*Lots))
{
Print("Wir haben kein Geld. Freie Marge = ", KontoFreieMarge());
return(0);
}
// Prüfung auf die Möglichkeit einer Long-Position (BUY)
wenn
// (RSIv30)
( MaCurrent >MaPrevious)
// && (MaPreviousvclose || vclose>vvclose))
// (MacdCurrentSignalCurrent && MacdPrevious<SignalPrevious &&
// MathAbs(MacdCurrent)>(MACDOpenLevel*Point) && MaCurrent>MaPrevious)
{
ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,0,Ask+TakeProfit*Point, "MA",magicNum,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);
}
// Prüfung auf Short-Position (SELL) möglich
// wenn (RSIv>70 && RSIj<70)
if ( MaCurrent <MaPrevious)
// && (MaPrevious>MavPrevious) && (close<vclose || vclose<vvclose))
// (MacdCurrent>0 && MacdCurrentSignalPrevious &&
// MacdCurrent>(MACDOpenLevel*Point) && MaCurrent<MaPrevious)
{
ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,3,0,Bid-TakeProfit*Point, "MA",magicNum,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);
}
// Es ist wichtig, den Markt richtig zu betreten,
// aber es ist noch wichtiger, ihn richtig zu verlassen...
for(cnt=0;cnt<gesamtzahl;cnt++)
{
OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
if(OrderType()<=OP_SELL && // Prüfung auf offene Position
OrderSymbol()==Symbol()) // Prüfung auf Symbol
{
if(OrderType()==OP_BUY) // Long-Position ist eröffnet
{
// sollte sie geschlossen werden?
// if(MacdCurrent>0 && MacdCurrentSignalPrevious &&
// MacdCurrent>(MACDCloseLevel*Point))
// wenn (RSIv>70 && RSIj<70)
if ( MaCurrent <MaPrevious)
{
OrderClose(OrderTicket(),OrderLots(),Bid,3,Violet); // Position schließen
return(0); // Ausstieg
}
// Prüfung auf Trailing-Stop
if(NachlaufenderStop>0){
if(Bid-OrderOpenPrice()>Point*TrailingStop)
{
if(OrderStopLoss()<Bid-Point*TrailingStop)
{
OrderModify(OrderTicket(),OrderOpenPrice(),Bid-Point*TrailingStop,OrderTakeProfit(),0,Green);
return(0);
}
}
}
}
else // auf Short-Position gehen
{
// soll sie geschlossen werden?
// if(MacdCurrentSignalCurrent &&
// MacdPrevious(MACDCloseLevel*Point))
wenn
// (RSIv30)
( MaCurrent >MaPrevious)
{
OrderClose(OrderTicket(),OrderLots(),Ask,3,Violet); // Position schließen
return(0); // Ausstieg
}
// Prüfung auf Trailing-Stop
if(NachlaufenderStop>0){
if((OrderOpenPrice()-Ask)>(Point*TrailingStop))
{
if((OrderStopLoss()>(Ask+Point*TrailingStop)) || (OrderStopLoss()==0))
{
OrderModify(OrderTicket(),OrderOpenPrice(),Ask+Point*TrailingStop,OrderTakeProfit(),0,Red);
return(0);
}
}
}
}
}
}
return(0);
}
// das Ende.
Hallo,
Ich verstehe nicht, warum diese ea nicht funktionieren, compllation OK, nichts in Journal noch Experte Registerkarte, aber nicht jeder Handel .
Vielen Dank im Voraus.
Jo
extern int magicNum=200;
extern double TakeProfit = 50;
extern double Lots = 0.01;
extern double TrailingStop = 30;
//extern double MACDOopenLevel=3;
//extern double MACDCloseLevel=2;
extern double MATrendPeriod=5;
int start()
{
double MaCurrent,MaPrevious,MavPrevious;
double close=iClose(Symbol(),0,0);
double vclose=iClose(Symbol(),0,1);
double vvclose=iClose(Symbol(),0,2);
// double MacdCurrent, MacdPrevious, SignalCurrent;
// double SignalPrevious, MaCurrent, MaPrevious;
// double RSIj,RSIv;
int cnt, ticket, total;
// Überprüfung der Ausgangsdaten
// Es ist wichtig, sicherzustellen, dass der Experte mit einem normalen
// Chart arbeitet und der Benutzer keine Fehler beim Setzen externer
// Variablen (Lots, StopLoss, TakeProfit,
// TrailingStop), in unserem Fall prüfen wir TakeProfit
// bei einem Chart mit weniger als 100 Bars
if(Bars<100)
{
Print("Balken weniger als 100");
return(0);
}
if(TakeProfit<10)
{
Print("TakeProfit kleiner als 10");
return(0); // TakeProfit prüfen
}
// zur Vereinfachung der Codierung und zur Beschleunigung des Zugriffs
// Daten werden in internen Variablen abgelegt
// MacdCurrent=iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_MAIN,0);
// MacdPrevious=iMACD(NULL,0,12,26,9,PREIS_SCHLIESSEN,MODE_MAIN,1);
// SignalCurrent=iMACD(NULL,0,12,26,9,PREIS_SCHLIESSEN,MODE_SIGNAL,0);
// SignalVorher=iMACD(NULL,0,12,26,9,PREIS_SCHLIESSEN,MODE_SIGNAL,1);
MaCurrent=iMA(NULL,0,MATrendPeriod,0,MODE_SMA,PRICE_CLOSE,0);
MaPrevious=iMA(NULL,0,MATrendPeriod,0,MODE_SMA,PRICE_CLOSE,1);
MavPrevious=iMA(NULL,0,MATrendPeriod,0,MODE_SMA,PRICE_CLOSE,2);
double PlusHaut =High;
double PlusBas =Low;
double TiersHaut =PlusBas +((PlusHaut-PlusBas)*0.66);
double TiersBas =PlusBas +((PlusHaut-PlusBas)*0,33);
// RSIj= iRSI(NULL,0,9,PRICE_CLOSE,0);
// RSIv= iRSI(NULL,0,9,PRICE_CLOSE,1);
total=OrdersTotal();
if(gesamt<1)
{ // keine offenen Aufträge identifiziert
if(AccountFreeMargin()<(1000*Lots))
{
Print("Wir haben kein Geld. Freie Marge = ", KontoFreieMarge());
return(0);
}
// Prüfung auf die Möglichkeit einer Long-Position (BUY)
wenn
// (RSIv30)
( MaCurrent >MaPrevious)
// && (MaPreviousvclose || vclose>vvclose))
// (MacdCurrentSignalCurrent && MacdPrevious<SignalPrevious &&
// MathAbs(MacdCurrent)>(MACDOpenLevel*Point) && MaCurrent>MaPrevious)
{
ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,0,Ask+TakeProfit*Point, "MA",magicNum,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);
}
// Prüfung auf Short-Position (SELL) möglich
// wenn (RSIv>70 && RSIj<70)
if ( MaCurrent <MaPrevious)
// && (MaPrevious>MavPrevious) && (close<vclose || vclose<vvclose))
// (MacdCurrent>0 && MacdCurrentSignalPrevious &&
// MacdCurrent>(MACDOpenLevel*Point) && MaCurrent<MaPrevious)
{
ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,3,0,Bid-TakeProfit*Point, "MA",magicNum,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);
}
// Es ist wichtig, den Markt richtig zu betreten,
// aber es ist noch wichtiger, ihn richtig zu verlassen...
for(cnt=0;cnt<gesamtzahl;cnt++)
{
OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
if(OrderType()<=OP_SELL && // Prüfung auf offene Position
OrderSymbol()==Symbol()) // Prüfung auf Symbol
{
if(OrderType()==OP_BUY) // Long-Position ist eröffnet
{
// soll sie geschlossen werden?
// if(MacdCurrent>0 && MacdCurrentSignalPrevious &&
// MacdCurrent>(MACDCloseLevel*Point))
// wenn (RSIv>70 && RSIj<70)
if ( MaCurrent <MaPrevious)
{
OrderClose(OrderTicket(),OrderLots(),Bid,3,Violet); // Position schließen
return(0); // Ausstieg
}
// Prüfung auf Trailing-Stop
if(NachlaufenderStop>0){
if(Bid-OrderOpenPrice()>Point*TrailingStop)
{
if(OrderStopLoss()<Bid-Point*TrailingStop)
{
OrderModify(OrderTicket(),OrderOpenPrice(),Bid-Point*TrailingStop,OrderTakeProfit(),0,Green);
return(0);
}
}
}
}
else // auf Short-Position gehen
{
// soll sie geschlossen werden?
// if(MacdCurrentSignalCurrent &&
// MacdPrevious(MACDCloseLevel*Point))
wenn
// (RSIv30)
( MaCurrent >MaPrevious)
{
OrderClose(OrderTicket(),OrderLots(),Ask,3,Violet); // Position schließen
return(0); // Ausstieg
}
// Prüfung auf Trailing-Stop
if(NachlaufenderStop>0){
if((OrderOpenPrice()-Ask)>(Point*TrailingStop))
{
if((OrderStopLoss()>(Ask+Point*TrailingStop)) || (OrderStopLoss()==0))
{
OrderModify(OrderTicket(),OrderOpenPrice(),Ask+Point*TrailingStop,OrderTakeProfit(),0,Red);
return(0);
}
}
}
}
}
}
return(0);
}
// das Ende.In meinen Backtests funktioniert es:
Hallo mladen,
ich möchte einen Teilverkauf meiner profitOrder mit dem gleichen Wert wie meine Variable "LossValue" durchführen.
Ich habe versucht, die Losgröße in folgenden Schritten zu berechnen:
-Lesen Sie den aktuellen Gewinn aus der profitOrder aus
-Berechnen Sie den ProfitPerLotstep
-Berechne den LossValue/ProfitPerLotstep und runde das Lot-Ergebnis auf
-aber wenn ich diese Lotsize verkaufe ist der Profit Value zu klein (ich denke wegen des Spreads)
Was ist die richtige Berechnungsmethode?
Ich habe eine zusätzliche Frage.
Wenn ich eine partielle Schließung vornehme, dann wird der Rest der Position automatisch vom Broker geöffnet. Vorher habe ich die Position mit einem Kommentar versehen, um diese Position zu unterscheiden. Wie kann ich das jetzt erkennen?
Eine zusätzliche Frage: Wenn ich eine partielle Schließung vornehme, wird der Rest der Position automatisch vom Broker geöffnet. Vorher habe ich die Position mit einem Kommentar versehen, um diese Position zu unterscheiden. Wie kann ich das jetzt erkennen?
sunshineh
Sie können nichts tun
Nur Broker können das Kommentarfeld einer Bestellung ändern. Vielleicht ändert ein Broker den Kommentar so, dass er etwas wie "from nnnn" sagt, wobei nnnn die vorherige Ticketnummer ist, aber in den meisten Fällen tun sie das nicht, so dass es keine Lösung gibt, mit der man die vorherige Order in solchen Fällen eindeutig identifizieren kann.
Danke mladen! Hast Du eine Lösung zu meinem Posting vorhin mit der Berechnung aus der Losgröße nach einem definierten Wert wie 100 EUR?