pomocy - zmiana w kodzie z TrailingStop na Breakeven

O jezykach programowania w platformach i nie tylko.
marcin76
Gaduła
Gaduła
Posty: 300
Rejestracja: 14 lis 2012, 12:42

pomocy - zmiana w kodzie z TrailingStop na Breakeven

Nieprzeczytany post autor: marcin76 »

proszę o pomoc w zmianie w kodzie z TrailingStop na Breakeven

pozdr


for(int cnt=0;cnt<OrdersTotal();cnt++)
{
OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
if(OrderType()<=OP_SELL &&
OrderSymbol()==Symbol() &&
OrderMagicNumber()==MagicNumber
)
{
if(OrderType()==OP_BUY)
{
if(TrailingStop>0)
{
if(Bid-OrderOpenPrice()>MyPoint*TrailingStop)
{
if(OrderStopLoss()<Bid-MyPoint*TrailingStop)
{
OrderModify(OrderTicket(),OrderOpenPrice(),Bid-TrailingStop*MyPoint,OrderTakeProfit(),0,Green);
return(0);
}
}
}
}
else
{
if(TrailingStop>0)
{
if((OrderOpenPrice()-Ask)>(MyPoint*TrailingStop))
{
if((OrderStopLoss()>(Ask+MyPoint*TrailingStop)) || (OrderStopLoss()==0))
{
OrderModify(OrderTicket(),OrderOpenPrice(),Ask+MyPoint*TrailingStop,OrderTakeProfit(),0,Red);
return(0);
}
}
}
}
}
}
return(0);
}

Awatar użytkownika
bfx
Pasjonat
Pasjonat
Posty: 1260
Rejestracja: 11 sty 2013, 15:49

Re: pomocy - zmiana w kodzie z TrailingStop na Breakeven

Nieprzeczytany post autor: bfx »

Co to jest MyPoint a co TrailingStop? Wieczorem popatrzę.
"Ty też jesteś Bogiem! Tylko uświadom to sobie, sobie"

marcin76
Gaduła
Gaduła
Posty: 300
Rejestracja: 14 lis 2012, 12:42

Re: pomocy - zmiana w kodzie z TrailingStop na Breakeven

Nieprzeczytany post autor: marcin76 »

TrailingStop to jeden z parametrów do wyboru


extern string s1 = " Parametry TP SL TS ";
extern double StopLoss =158;
extern double TakeProfit =121;
extern int TrailingStop =30;
extern int Slippage =3;
extern double MaxSpread = 3.0;

natomiast MyPoint to

int start()
{
double MyPoint=Point;
if(Digits==3 || Digits==5) MyPoint=Point*10;

double TheStopLoss=0;
double TheTakeProfit=0;
if( TotalOrdersCount()==0 )

dzięki za pomoc

JAREK67
Maniak
Maniak
Posty: 2143
Rejestracja: 13 lip 2006, 11:21

Re: pomocy - zmiana w kodzie z TrailingStop na Breakeven

Nieprzeczytany post autor: JAREK67 »

marcin76 pisze:proszę o pomoc w zmianie w kodzie z TrailingStop na Breakeven

pozdr


for(int cnt=0;cnt<OrdersTotal();cnt++)
{
OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
if(OrderType()<=OP_SELL &&
OrderSymbol()==Symbol() &&
OrderMagicNumber()==MagicNumber
)
{
if(OrderType()==OP_BUY)
{
if(TrailingStop>0)
{
if(Bid-OrderOpenPrice()>MyPoint*TrailingStop)
{
if(OrderStopLoss()<Bid-MyPoint*TrailingStop)
{
OrderModify(OrderTicket(),OrderOpenPrice(),Bid-TrailingStop*MyPoint,OrderTakeProfit(),0,Green);
return(0);
}
}
}
}
else
{
if(TrailingStop>0)
{
if((OrderOpenPrice()-Ask)>(MyPoint*TrailingStop))
{
if((OrderStopLoss()>(Ask+MyPoint*TrailingStop)) || (OrderStopLoss()==0))
{
OrderModify(OrderTicket(),OrderOpenPrice(),Ask+MyPoint*TrailingStop,OrderTakeProfit(),0,Red);
return(0);
}
}
}
}
}
}
return(0);
}

Kod: Zaznacz cały

extern int BE_distance;
extern int BE_profit;
for(int cnt=0;cnt<OrdersTotal();cnt++)
     {
      OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
      if(OrderType()<=OP_SELL &&   
         OrderSymbol()==Symbol() &&
         OrderMagicNumber()==MagicNumber 
         )  
        {
         if(OrderType()==OP_BUY)  
           {
            if(BE_distance>0)  
              {                 
               if(Bid-OrderOpenPrice()>MyPoint*BE_distance)
                 {
                  if(OrderStopLoss()<Bid-MyPoint*BE_distance)
                    {
                     OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice()+BE_profit*MyPoint,OrderTakeProfit(),0,Green);
                     return(0);
                    }
                 }
              }
           }
         else 
           {
            if(BE_distance>0)  
              {                 
               if((OrderOpenPrice()-Ask)>(MyPoint*BE_distance))
                 {
                  if((OrderStopLoss()>(Ask+MyPoint*BE_distance)) || (OrderStopLoss()==0))
                    {
                     OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice-MyPoint*BE_profit,OrderTakeProfit(),0,Red);
                     return(0);
                    }
                 }
              }
           }
        }
     }
   return(0);
}
Tak bez weryfikacji, ale powinno działać.

marcin76
Gaduła
Gaduła
Posty: 300
Rejestracja: 14 lis 2012, 12:42

Re: pomocy - zmiana w kodzie z TrailingStop na Breakeven

Nieprzeczytany post autor: marcin76 »

dzięki JAREK67 za pomoc

w tej lini wywalało błąd , ale ustaliłem że brakuje mu nawiasów () po OrderOpenPrice
wstawiłem je i skompilowało prawidłowo

OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice-MyPoint*BE_profit,OrderTakeProfit(),0,Red);

wielkie dzięki - działa

JAREK67
Maniak
Maniak
Posty: 2143
Rejestracja: 13 lip 2006, 11:21

Re: pomocy - zmiana w kodzie z TrailingStop na Breakeven

Nieprzeczytany post autor: JAREK67 »

marcin76 pisze:dzięki JAREK67 za pomoc

w tej lini wywalało błąd , ale ustaliłem że brakuje mu nawiasów () po OrderOpenPrice
wstawiłem je i skompilowało prawidłowo

OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice-MyPoint*BE_profit,OrderTakeProfit(),0,Red);

wielkie dzięki - działa
"Edytowałem" z poziomu forum. Stąd błąd. :wink:

ODPOWIEDZ