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
Mehrere Gewerke verwalten
Hallo zusammen,
Ich versuche einen EA zu entwickeln, der theoretisch eine unendliche Anzahl von Trades eingeben kann, und für jeden Trade den:
Ich weiß, dass EAs wie swiss army und manageTP dies tun können. Ich weiß aber nicht wie.
Irgendwelche Vorschläge?
Ich brauche Hilfe beim Schreiben eines Codes zum Stoppen des Handels nach einem Verlust
Hallo,
ich muss einen Code schreiben, damit ein Experte den Handel für eine bestimmte Anzahl von Stunden nach einem Verlust oder nach zwei oder drei aufeinanderfolgenden Verlusten stoppt.
Kann mir jemand helfen?
Coding für Martinggle mit Absicherung geschlossen
Hallo Team,
ich würde gerne einen Code suchen, der mir die Lösung meiner folgenden Strategien liefern kann;
Beispiele;
martingle Konzept-
TP = 23 Pips
Pip Lücken = 20
OP kaufen EU 0.1,0.2,0.4,0.8,1.6 lot
1. wenn der Layer auf Lot 1,6 mehr als -20pips schwankt dann OP Sell EU mit 12.8lot (tp 23).
2. wenn der Layer 12.8 Lot TP erreicht, schließen Sie alle EU-Positionen.
3. wenn 12.8 lot pip=0 dann schließen Sie die Position nur auf Sell EU.
4. Wiederholen Sie Situation 1 bis 3 erneut, wenn die Bedingung erfüllt ist.
Ich brauche Ihre Hilfe, um mich über die Funktion und die Codes zu beraten.
Frage zur Kodierung
Momentan funktioniert dieser Code, indem er prüft, ob die aktuelle Eröffnung höher ist als der vorherige Balken. Meine Frage ist, wie würde ich es ändern, wenn ich wollte, dass es zu sehen, wenn es höher oder gleich der vorherigen Bar war?
if(Eröffnung[0] > Eröffnung[0+1] &&
Eröffnet[0+1] > Eröffnet[0+2] &&
Eröffnet[0+2]> Eröffnet[0+3] &&
Offen[0+3] > Offen[0+4] &&
Öffnen[0+4] > Öffnen[0+5] &&
Open[0+5] > Open[0+6]) Auftrag = SIGNAL_SELL
Würde ich einfach ein = neben dem Größer-als-Zeichen einfügen, etwa so: = >?
Vielen Dank!
Versuchen Sie dies:
if(Open[0] => Open[0+1] &&
Open[0+1] => Open[0+2] &&
Open[0+2]=> Open[0+3] &&
Open[0+3] => Open[0+4] &&
Open[0+4] => Open[0+5] &&
Open[0+5] => Open[0+6]) Order = SIGNAL_SELL
Reverse-Expert-Advisor-Signale
Hallo
ich spiele gerade mit diesem Expert Advisor herum.
#property link "http://FORTRADER.RU"
/*
????????? ???????? ?????????? ????????? ???????? ? ?????? ??????? ?? 26 ??? 2008,
??????????? ? ?????? ?? ????? ???? ?????? ? ????? ????????????: letters@fortrader.ru
http://www.fortrader.ru/arhiv.php
A detailed description of the parameters adviser available issue of the journal dated May 26 2008,
suggestions and feedback we will be glad to see in our e-mail: letters@fortrader.ru
http://www.fortrader.ru/arhiv.php
*/
extern string x="????????? MACD:";
extern int FastEMA = 12;
extern int SlowEMA = 24;
int SignalEMA = 9;
extern int predel = 6;
extern string x1="????????? MA:";
extern int SMA1 = 50;
extern int SMA2 = 100;
extern int otstup = 10;
extern string x2="???????? ????? ??? ??????? ????-???? :";
extern int stoplossbars = 6;
extern string x3="??????????? ??? ??????? ?????? ?????? ? ???????? ???????? ???????:";
extern int pprofitum = 2;
extern string x4="?????? ?? ADX:";
extern int enable = 0;
extern int periodADX = 14;
extern double Lots=1;
datetime Bar;int buy,sell,i,a,b;double stoploss,setup2,adx,okbuy,oksell;
int start()
{
buy=0;sell=0;
for( i=0;i<OrdersTotal();i++)
{
OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
if(OrderType()==OP_BUY){buy=1;}
if(OrderType()==OP_SELL){sell=1;}
}
//????????? ??????????
double macd =iMACD(NULL,0,FastEMA,SlowEMA,SignalEMA,PRICE_CLOSE,MODE_MAIN,1);
double sma1 =iMA(NULL,0,SMA1,0,MODE_SMA,PRICE_CLOSE,1);
double sma2 =iMA(NULL,0,SMA2,0,MODE_SMA,PRICE_CLOSE,1);
if(Close[1]<sma2){okbuy=1;}
if(Close[1]>sma2){oksell=1;}
if(enable==1)
{
adx=iADX(NULL,0,14,PRICE_CLOSE,MODE_MAIN,0);
}else{adx=60;}
if(Close[1]+otstup*Point>sma1 && Close[1]+otstup*Point>sma2 && macd>0 && buy==0)
{
buy=0;
for( i=predel;i>0;i--)
{
macd=iMACD(NULL,0,FastEMA,SlowEMA,SignalEMA,PRICE_CLOSE,MODE_MAIN,i);
if(macd<0){buy=2;}
}
if(buy==2 && adx>50 && okbuy==1)
{okbuy=0;
double stoploss=Low;
OrderSend(Symbol(),OP_BUY,Lots,Ask,3,stoploss,0,0,16385,0,Green);
a=0;
}
}
if(Close[1]-otstup*Point<sma1 && Close[1]-otstup*Point<sma2 && macd<0 && sell==0)
{
sell=0;
for( i=predel;i>0;i--)
{
macd=iMACD(NULL,0,FastEMA,SlowEMA,SignalEMA,PRICE_CLOSE,MODE_MAIN,i);
if(macd>0){sell=2;}
}
if(sell==2 && adx>50 && oksell==1)
{oksell=0;
stoploss=High;
OrderSend(Symbol(),OP_SELL,Lots,Bid,3,stoploss,0,0,16385,0,White);
b=0;
}
}
if(buy==2 || buy==1)
{
for( i=0;i<OrdersTotal();i++)
{
OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
if(OrderType()==OP_BUY )
{
double setup2=OrderOpenPrice()+((OrderOpenPrice()-OrderStopLoss())*pprofitum);
if(Close[1]>setup2 && a==0)
{
OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice(),OrderTakeProfit(),0,White);
OrderClose(OrderTicket(),OrderLots()/2,Bid,3,Violet);
a=1;
}
if(a==1 && sma1> Close[1]-otstup*Point)
{
OrderClose(OrderTicket(),OrderLots(),Bid,3,Violet);
}
}
}
}
if(sell==2 || sell==1)
{
for( i=0;i<OrdersTotal();i++)
{
OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
if(OrderType()==OP_SELL )
{
setup2=OrderOpenPrice()-((OrderStopLoss()-OrderOpenPrice())*pprofitum);
if(Close[1]<setup2 && b==0)
{
OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice(),OrderTakeProfit(),0,White);
OrderClose(OrderTicket(),OrderLots()/2,Ask,3,Violet);
b=1;
}
if(b==1 && Close[1]-otstup*Point> sma1)
{
OrderClose(OrderTicket(),OrderLots(),Ask,3,Violet);
}
}
}
}
return(0);
}wie mache ich die Kauf- und Verkaufsaufträge rückgängig ... bekomme es nicht zum Laufen
Ändern Sie einfach OP_BUY mit OP_SELL und der inversen Aktion in der rechten Codeline.
Versuchen Sie dies:
if(Open[0] => Open[0+1] &&
Open[0+1] => Open[0+2] &&
Open[0+2]=> Open[0+3] &&
Open[0+3] => Open[0+4] &&
Open[0+4] => Open[0+5] &&
Open[0+5] => Open[0+6]) Order = SIGNAL_SELL
Das hat nicht funktioniert, aber das Zeichen = nach dem Zeichen > hat funktioniert. Etwa so:
if(Offen[0] >= Offen[0+1] &&
Öffnen[0+1] >= Öffnen[0+2] &&
Öffnen[0+2]>= Öffnen[0+3] &&
Öffnen[0+3] >= Öffnen[0+4] &&
Öffnen[0+4] >= Öffnen[0+5] &&
Open[0+5] >= Open[0+6]) Auftrag = SIGNAL_SELL
In diesem Code ist der Trailing-Stop auf 45 Pips gesetzt. Aber die Trailing-Stop doesnt scheinen zu aktivieren, bis es 45 Pips bewegt. Wie müsste ich es ändern, um die Trailing-Stop aktiviert haben, wenn der Handel platziert wird?
extern string Remark1 = "== Main Settings ==";
extern int MagicNumber = 0;
extern bool SignalMail = False;
extern bool EachTickMode = true;
extern double Lots = 4;
extern int Slippage = 2;
extern bool UseStopLoss = false;
extern int StopLoss = 100;
extern bool UseTakeProfit = false;
extern int TakeProfit = 15;
extern bool UseTrailingStop = true;
extern int TrailingStop = 45;
extern bool MoveStopOnce = False;
extern int MoveStopWhenPrice = 50;
extern int MoveStopTo = 1;
extern int MaxConcurrentTrades = 2;
//Version 2.01
int BarCount;
int Current;
bool TickCheck = False;
//+------------------------------------------------------------------+
//| expert initialization function |
//+------------------------------------------------------------------+
int init() {
BarCount = Bars;
if (EachTickMode) Current = 0; else Current = 1;
return(0);
}
//+------------------------------------------------------------------+
//| expert deinitialization function |
//+------------------------------------------------------------------+
int deinit() {
return(0);
}
//+------------------------------------------------------------------+
//| expert start function |
//+------------------------------------------------------------------+
int start()
{
int Order = SIGNAL_NONE;
int Total, Ticket;
double StopLossLevel, TakeProfitLevel;
if (EachTickMode && Bars != BarCount) TickCheck = False;
Total = OrdersTotal();
Order = SIGNAL_NONE;
//+------------------------------------------------------------------+
//| Variable Begin |
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
//| Variable End |
//+------------------------------------------------------------------+
//Check position
bool IsTrade = False;
for (int i = 0; i < Total; i ++) {
OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
if(OrderType() <= OP_SELL && OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber) {
IsTrade = True;
if(OrderType() == OP_BUY) {
//Close
//+------------------------------------------------------------------+
//| Signal Begin(Exit Buy) |
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
//| Signal End(Exit Buy) |
//+------------------------------------------------------------------+
if (Order == SIGNAL_CLOSEBUY && ((EachTickMode && !TickCheck) || (!EachTickMode && (Bars != BarCount)))) {
OrderClose(OrderTicket(), OrderLots(), Bid, Slippage, MediumSeaGreen);
if (SignalMail) SendMail("[Signal Alert]", "[" + Symbol() + "] " + DoubleToStr(Bid, Digits) + " Close Buy");
if (!EachTickMode) BarCount = Bars;
IsTrade = False;
continue;
}
//MoveOnce
if(MoveStopOnce && MoveStopWhenPrice > 0) {
if(Bid - OrderOpenPrice() >= Point * MoveStopWhenPrice) {
if(OrderStopLoss() < OrderOpenPrice() + Point * MoveStopTo) {
OrderModify(OrderTicket(),OrderOpenPrice(), OrderOpenPrice() + Point * MoveStopTo, OrderTakeProfit(), 0, Red);
if (!EachTickMode) BarCount = Bars;
continue;
}
}
}
//Trailing stop
if(UseTrailingStop && TrailingStop > 0) {
if(Bid - OrderOpenPrice() > Point * TrailingStop) {
if(OrderStopLoss() < Bid - Point * TrailingStop) {
OrderModify(OrderTicket(), OrderOpenPrice(), Bid - Point * TrailingStop, OrderTakeProfit(), 0, MediumSeaGreen);
if (!EachTickMode) BarCount = Bars;
continue;
}
}
}
} else {
//Close
//+------------------------------------------------------------------+
//| Signal Begin(Exit Sell) |
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
//| Signal End(Exit Sell) |
//+------------------------------------------------------------------+
if (Order == SIGNAL_CLOSESELL && ((EachTickMode && !TickCheck) || (!EachTickMode && (Bars != BarCount)))) {
OrderClose(OrderTicket(), OrderLots(), Ask, Slippage, DarkOrange);
if (SignalMail) SendMail("[Signal Alert]", "[" + Symbol() + "] " + DoubleToStr(Ask, Digits) + " Close Sell");
if (!EachTickMode) BarCount = Bars;
IsTrade = False;
continue;
}
//MoveOnce
if(MoveStopOnce && MoveStopWhenPrice > 0) {
if(OrderOpenPrice() - Ask >= Point * MoveStopWhenPrice) {
if(OrderStopLoss() > OrderOpenPrice() - Point * MoveStopTo) {
OrderModify(OrderTicket(),OrderOpenPrice(), OrderOpenPrice() - Point * MoveStopTo, OrderTakeProfit(), 0, Red);
if (!EachTickMode) BarCount = Bars;
continue;
}
}
}
//Trailing stop
if(UseTrailingStop && TrailingStop > 0) {
if((OrderOpenPrice() - Ask) > (Point * TrailingStop)) {
if((OrderStopLoss() > (Ask + Point * TrailingStop)) || (OrderStopLoss() == 0)) {
OrderModify(OrderTicket(), OrderOpenPrice(), Ask + Point * TrailingStop, OrderTakeProfit(), 0, DarkOrange);
if (!EachTickMode) BarCount = Bars;
continue;
}
}
}
}
}
}
Reverse Expert Advisor Signale
kann mir jemand in Skype helfen, einige Codes in 1 Expert Advisor zu ändern
ich habe einen sehr guten gefunden. nur eine Kleinigkeit muss geändert werden
mein skype ist: ctzulu
vielen Dank