Verfeinerung der Strategie des Beraters - Seite 4

 
IRIP:

Wo kann ich nachlesen, wie man einen Stop-Loss setzt?

Ich brauche z.B. einen Stopp bei Low bar 2


https://book.mql4.com/ru/trading/index
 
Dankeschön
 

Es gibt nun mehrere Herausforderungen

1. Breakeven, wenn ein bestimmter Gewinn erreicht ist

2. Schleppnetz nach Fraktalen oder einer festen Zahl

 
IRIP:

Es gibt nun mehrere Herausforderungen

1. Breakeven, wenn ein bestimmter Gewinn erreicht ist

2. Schleppnetz nach Fraktalen oder einer festen Zahl


Fangen Sie an zu schreiben und stellen Sie nach und nach Fragen...
 
IRIP:
if ( ( (Low[0]>Low[1]) && (Low[1]<Low[2]) && (Low[1]<Low[2]) && (High[1]<High[2]) ) BuyOp=true;

if ( ( (High[0]<High[1]) && (Low[0]<Low[1]) && (High[1]>High[2]) && (Open[0]<Close[1]) ) SellOp=true;


Verkaufen . Und kein Trall oder Breakeven wird Ihnen helfen. Und es hilft nichts, wenn man keine Regelmäßigkeiten ausnutzt, wie in diesem Fall.

 
DYN:


Sie werden. Und kein Schleppnetz und keine Rentabilitätsrechnung werden Ihnen helfen. Und es nützt nichts, wenn Sie wie in diesem Fall keine Regelmäßigkeiten ausnutzen.


Das wird sie. Aber der Mann lernt programmieren, und das ist gar nicht schlecht!
 
ktest0:

Das wird er. Aber man lernt zu programmieren, und das ist keine schlechte Sache!

Ja, ich stimme zu. Hut ab vor dem Kerl dafür. Es ist schwierig, am Anfang von Grund auf zu lernen - ich weiß, wie das ist -)-)-)
 
ktest0:

Das wird er. Aber man lernt zu programmieren, und das ist keine schlechte Sache!

Ja, ich möchte wirklich lernen, wie man programmiert.
 


Bücher, das ist großartig. Aber ich habe zum Beispiel einen Berater gefunden, der im Allgemeinen das tut, was ich brauche

//+------------------------------------------------------------------+

//| TrailingStopLight.mq4 |

//| Copyright © 2011, Khlystov Vladimir |

//| http://cmillion.narod.ru |

//+------------------------------------------------------------------+

#property copyright "Copyright © 2011, cmillion@narod.ru"

#property link "http://cmillion.narod.ru"

#property show_inputs

//--------------------------------------------------------------------

extern int Stoploss = 0, //stopploss, falls 0, bleibt unverändert

Takeprofit = 0; //Takeprofit, falls 0, bleibt unverändert

extern int TrailingStop = 20; //Tramp-Länge, wenn 0, dann kein Trailing-Stop

extern int StepTrall = 0; //Trampelschritt - StopLoss nicht näher als StepTrall bewegen

extern int NoLoss = 10, //Übertragung zum Breakeven bei einer bestimmten Anzahl von Gewinnpunkten, wenn 0, dann keine Übertragung zum Breakeven

MinProfitNoLoss = 0; //Mindestgewinn für den Transfer bis zum Erreichen der Gewinnschwelle

//--------------------------------------------------------------------

int STOPLEVEL,TimeBar;

//--------------------------------------------------------------------

int init()

{

}

//--------------------------------------------------------------------

int deinit()

{

ObjectDelete("SLb");

ObjectDelete("SLs");

}

//--------------------------------------------------------------------

int start()

{

//while(!IsStopped())

{

//RefreshRates();

STOPLEVEL=MarketInfo(Symbol(),MODE_STOPLEVEL);

doppelt OSL,OTP,OOP,StLo,SL,TP;

double Profit,ProfitS,ProfitB,LB,LS,NLb,NLs,price_b,price_s,OL,sl;

int b,s,OT,OMN;

for (int i=OrdersTotal()-1; i>=0; i--)

{

if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES))

{

OMN = OrderMagicNumber();

if (OrderSymbol() == Symbol())

{

OOP = NormalizeDouble(OrderOpenPrice(),Digits);

OT = OrderType();

OL = OrderLots();

wenn (OT==OP_BUY)

{

preis_b = preis_b+OOP*OL;

b++; LB+= OL;

ProfitB+=OrderProfit()+OrderSwap()+OrderCommission();

}

wenn (OT==OP_SELL)

{

preis_s = preis_s+OOP*OL;

s++;LS+= OL;

ProfitS+=OrderProfit()+OrderSwap()+OrderCommission();

}

}

}

}

ObjectDelete("SLb");

ObjectDelete("SLs");

wenn (b>0)

{

NLb = NormalizeDouble(price_b/LB,Digits);

ObjectCreate("SLb",OBJ_ARROW,0,Time[0],NLb,0,0,0);

ObjectSet ("SLb",OBJPROP_ARROWCODE,6);

ObjectSet ("SLb",OBJPROP_COLOR,Blue);

}

wenn (s>0)

{

NLs = NormalizeDouble(price_s/LS,Digits);

ObjectCreate("SLs",OBJ_ARROW,0,Time[0],NLs,0,0,0);

ObjectSet ("SLs",OBJPROP_ARROWCODE,6);

ObjectSet ("SLs",OBJPROP_COLOR,Red);

}

int OTicket;

for (i=0; i<OrdersTotal(); i++)

{

if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES))

{

if (AuftragSymbol()==Symbol())

{

OT = OrderType();

OSL = NormalizeDouble(OrderStopLoss(),Digits);

OTP = NormalizeDouble(OrderTakeProfit(),Digits);

OOP = NormalizeDouble(OrderOpenPrice(),Digits);

SL=OSL; TP=OTP;

wenn (OT==OP_BUY)

{

b++;

if (OSL==0 && Stoploss>=STOPLEVEL && Stoploss!=0)

{

SL = NormalizeDouble(Bid - Stoploss * Point,Digits);

}

sonst SL=OSL;

if (OTP==0 && Takeprofit>=STOPLEVEL && Takeprofit!=0)

{

TP = NormalizeDouble(Ask + Takeprofit * Point,Digits);

}

sonst TP=OTP;

if (NoLoss>=STOPLEVEL && OSL<NLb && NoLoss!=0)

{

if (OOP<=NLb && NLb!=0 && NLb <= NormalizeDouble(Bid-NoLoss*Point,Digits))

SL = NormalizeDouble(NLb+MinProfitNoLoss*Point,Digits);

}

if (TrailingStop>=STOPLEVEL && TrailingStop!=0)

{

StLo = NormalizeDouble(Bid - TrailingStop*Point,Digits);

if (StLo>=NLb && NLb!=0) if (StLo > OSL) SL = StLo;

}

wenn (SL != OSL || TP != OTP)

{

OTicket=OrderTicket();

if (!OrderModify(OTicket,OOP,SL,TP,0,White)) Print("OrderModify Error ",GetLastError());

}

}

wenn (OT==OP_SELL)

{

s++;

if (OSL==0 && Stoploss>=STOPLEVEL && Stoploss!=0)

{

SL = NormalizeDouble(Ask + Stoploss * Point,Digits)

}

sonst SL=OSL;

if (OTP==0 && Takeprofit>=STOPLEVEL && Takeprofit!=0)

{

TP = NormalizeDouble(Bid - Takeprofit * Point,Digits);

}

sonst TP=OTP;

if (NoLoss>=STOPLEVEL && (OSL>NLs || OSL==0) && NoLoss!=0)

{

if (OOP>=NLs && NLs!=0 && NLs >= NormalizeDouble(Ask+NoLoss*Point,Digits))

SL = NormalizeDouble(NLs-MinProfitNoLoss*Point,Digits);

}

if (TrailingStop>=STOPLEVEL && TrailingStop!=0)

{

StLo = NormalizeDouble(Ask + TrailingStop*Point,Digits);

if (StLo<=NLs && NLs!=0) if (StLo < OSL || OSL==0) SL = StLo;

}

wenn ((SL != OSL || OSL==0) || TP != OTP)

{

OTicket=OrderTicket();

if (!OrderModify(OTicket,OOP,SL,TP,0,White)) Print("OrderModify Error ",GetLastError());

}

}

}

}

}

if (IsTesting())

{

if (TimeBar!=Time[0])

{

OrderSend(Symbol(),OP_BUY,1,NormalizeDouble(Ask,Digits),3,0,0, "test",0,0,Blue);

OrderSend(Symbol(),OP_SELL,1,NormalizeDouble(Bid,Digits),3,0,0, "test",0,0,Red);

TimeBar=Time[0];

}

}

//Sleep(1000);

}

}

//--------------------------------------------------------------------

Könnte sie (theoretisch) in meine eingesetzt werden?

 
IRIP:


Bücher, das ist großartig. Aber ich habe zum Beispiel einen Berater gefunden, der im Allgemeinen das tut, was ich brauche

//+------------------------------------------------------------------+

//|                                            TrailingStopLight.mq4 |

//|                              Copyright © 2011, Khlystov Vladimir |

//|                                         http://cmillion.narod.ru |

//+------------------------------------------------------------------+

#property copyright "Copyright © 2011, cmillion@narod.ru"

#property link      "http://cmillion.narod.ru"

#property show_inputs

//--------------------------------------------------------------------
extern int Stoploss             = 0,//стоплосс, если 0 то не изменяется
           Takeprofit           = 0;//тейкпрофит, если 0 то не изменяется
extern int TrailingStop         = 20;//длинна тралла, если 0 то нет тралла
extern int StepTrall            = 0;//шаг тралла - перемещать стоплосс не ближе чем StepTrall
extern int NoLoss               = 10,//перевод в безубыток при заданном кол-ве пунктов прибыли, если 0 то нет перевода в безубыток
           MinProfitNoLoss      = 0//минимальная прибыль при переводе вбезубыток
//--------------------------------------------------------------------
int  STOPLEVEL,TimeBar;
//--------------------------------------------------------------------
int init()
{

}
//--------------------------------------------------------------------
int deinit()
{
   ObjectDelete("SLb");
   ObjectDelete("SLs");
}
//--------------------------------------------------------------------
int start()                                  
{
   //while(!IsStopped())
   {
      //RefreshRates();
      STOPLEVEL=MarketInfo(Symbol(),MODE_STOPLEVEL);
      double OSL,OTP,OOP,StLo,SL,TP;
      double Profit,ProfitS,ProfitB,LB,LS,NLb,NLs,price_b,price_s,OL,sl;
      int b,s,OT,OMN;
      for (int i=OrdersTotal()-1; i>=0; i--)
      {                                               
         if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
         {
            OMN = OrderMagicNumber();
            if (OrderSymbol() == Symbol())
            {
               OOP = NormalizeDouble(OrderOpenPrice(),Digits);

               OT = OrderType();
               OL = OrderLots();
               if (OT==OP_BUY)
               {
                  price_b = price_b+OOP*OL;
                  b++; LB+= OL;
                  ProfitB+=OrderProfit()+OrderSwap()+OrderCommission();
               }
               if (OT==OP_SELL)
               {
                  price_s = price_s+OOP*OL;

                  s++;LS+= OL;

                  ProfitS+=OrderProfit()+OrderSwap()+OrderCommission();

               }

            }

         }

      }

      ObjectDelete("SLb");

      ObjectDelete("SLs");

      if (b>0) 

      {

         NLb = NormalizeDouble(price_b/LB,Digits);

         ObjectCreate("SLb",OBJ_ARROW,0,Time[0],NLb,0,0,0,0);                     

         ObjectSet   ("SLb",OBJPROP_ARROWCODE,6);

         ObjectSet   ("SLb",OBJPROP_COLOR, Blue);

      }

      if (s>0) 

      {

         NLs = NormalizeDouble(price_s/LS,Digits);

         ObjectCreate("SLs",OBJ_ARROW,0,Time[0],NLs,0,0,0,0);                     

         ObjectSet   ("SLs",OBJPROP_ARROWCODE,6);

         ObjectSet   ("SLs",OBJPROP_COLOR, Red);

      }

      int OTicket;

      for (i=0; i<OrdersTotal(); i++)

      {    

         if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES))

         {

            if (OrderSymbol()==Symbol())

            { 

               OT = OrderType(); 

               OSL = NormalizeDouble(OrderStopLoss(),Digits);

               OTP = NormalizeDouble(OrderTakeProfit(),Digits);

               OOP = NormalizeDouble(OrderOpenPrice(),Digits);

               SL=OSL;TP=OTP;

               if (OT==OP_BUY)             

               {  

                  b++;

                  if (OSL==0 && Stoploss>=STOPLEVEL && Stoploss!=0)

                  {

                      SL = NormalizeDouble(Bid - Stoploss   * Point,Digits);

                  } 

                  else SL=OSL;

                  if (OTP==0 && Takeprofit>=STOPLEVEL && Takeprofit!=0)

                  {

                      TP = NormalizeDouble(Ask + Takeprofit * Point,Digits);

                  } 

                  else TP=OTP;

                  if (NoLoss>=STOPLEVEL && OSL<NLb && NoLoss!=0)

                  {

                     if (OOP<=NLb && NLb!=0 && NLb <= NormalizeDouble(Bid-NoLoss*Point,Digits)) 

                        SL = NormalizeDouble(NLb+MinProfitNoLoss*Point,Digits);

                  }

                  if (TrailingStop>=STOPLEVEL && TrailingStop!=0)

                  {

                     StLo = NormalizeDouble(Bid - TrailingStop*Point,Digits); 

                     if (StLo>=NLb && NLb!=0) if (StLo > OSL) SL = StLo;

                  }

                  if (SL != OSL || TP != OTP)

                  {  

                     OTicket=OrderTicket();

                     if (!OrderModify(OTicket,OOP,SL,TP,0,White)) Print("Error OrderModify ",GetLastError());

                  }

               }                                         

               if (OT==OP_SELL)        

               {

                  s++;

                  if (OSL==0 && Stoploss>=STOPLEVEL && Stoploss!=0)

                  {

                     SL = NormalizeDouble(Ask + Stoploss   * Point,Digits);

                  }

                  else SL=OSL;

                  if (OTP==0 && Takeprofit>=STOPLEVEL && Takeprofit!=0)

                  {

                      TP = NormalizeDouble(Bid - Takeprofit * Point,Digits);

                  }

                  else TP=OTP;

                  if (NoLoss>=STOPLEVEL && (OSL>NLs || OSL==0) && NoLoss!=0)

                  {

                     if (OOP>=NLs && NLs!=0 && NLs >= NormalizeDouble(Ask+NoLoss*Point,Digits)) 

                        SL = NormalizeDouble(NLs-MinProfitNoLoss*Point,Digits);

                  }

                  if (TrailingStop>=STOPLEVEL && TrailingStop!=0)

                  {

                     StLo = NormalizeDouble(Ask + TrailingStop*Point,Digits); 

                     if (StLo<=NLs && NLs!=0) if (StLo < OSL || OSL==0) SL = StLo;

                  }

                  if ((SL != OSL || OSL==0) || TP != OTP)

                  {  

                     OTicket=OrderTicket();

                     if (!OrderModify(OTicket,OOP,SL,TP,0,White)) Print("Error OrderModify ",GetLastError());

                  }

               } 

            }

         }

      }

      if (IsTesting())

      {

         if (TimeBar!=Time[0])

         {

            OrderSend(Symbol(),OP_BUY,1,NormalizeDouble(Ask,Digits),3,0,0,"тест",0,0,Blue);

            OrderSend(Symbol(),OP_SELL,1,NormalizeDouble(Bid,Digits),3,0,0,"тест",0,0,Red);

            TimeBar=Time[0];

         }

      } 

      //Sleep(1000);

   } 
}
//--------------------------------------------------------------------

Kann sie (theoretisch) in meine eingesetzt werden?

Lernen Sie zunächst, wie man Code mit einer SRC-Schaltfläche einfügt!

Dass "Bücher toll sind", muss noch bewiesen werden! In der Zwischenzeit überlegst du, ob du dich auf Hinweise einlassen sollst. Und "ohne Arbeit...", Sie kennen wahrscheinlich das Ergebnis oder Sie werden es herausfinden, und die Zeit wird knapp! Ohne Wissen nur ins Nirgendwo!