Proszę o poprawkę EA

O jezykach programowania w platformach i nie tylko.
Awatar użytkownika
MarcinMC
Stały bywalec
Stały bywalec
Posty: 78
Rejestracja: 01 kwie 2014, 16:56

Proszę o poprawkę EA

Nieprzeczytany post autor: MarcinMC »

Witam, chcialem napisac EA ktory zamyka wszystkie pozycje kiedy equity przekracza w danym przykladzie 30% straty lub 5% zysku, narazie EA dziala tak ze zamyka tylko czesc pozycji, nie wiem co moze byc zle.

Kod: Zaznacz cały

//--- input parameters
input string   StopOut="% straty konta";
input double   ProSL=30;
extern bool    AlarmSL = True;
extern string  AlarmSl = "timeout.wav";
input string   TP="% zysku konta";
input double   ProTP=5;
extern bool    AlarmTP = True;
extern string  AlarmTp ="news.wav";
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int start()
{     
    double  sl = ProSL*0.01;
    double tp = ProTP*0.01;
    int    Slip = 5;
    double Balance = AccountBalance();
    double EQ = AccountEquity();
    double BSL = AccountBalance()*(1-sl);
    double BTP = AccountBalance()*(1+tp); 
    
      if(BSL<=AccountEquity())
         { for(int P=OrdersTotal()-1;P>0;P--)
           { OrderSelect(P,SELECT_BY_POS);
            int type = OrderType();
            
            bool ON = false;
            
               switch(type)
               {  case OP_BUY    : ON = OrderClose(OrderTicket(),OrderLots(),MarketInfo(OrderSymbol(),MODE_BID),Slip,Gold);
                                    break;
                  case OP_SELL   : ON = OrderClose(OrderTicket(),OrderLots(),MarketInfo(OrderSymbol(),MODE_ASK),Slip,Gold);
               }
               return(0);
            }
            if(AlarmSL) PlaySound(AlarmSl);
            Print("Stop określonego OUT konta niestety bardzo mi przykro");
                                    
         }
         else
            if(BTP>=AccountEquity())
            {  for(int P=OrdersTotal()-1;P>0;P--)
               {   OrderSelect(P,SELECT_BY_POS);
                  int type = OrderType();
            
                   bool ON = false;
            
                     switch(type)
                     {  case OP_BUY    : ON = OrderClose(OrderTicket(),OrderLots(),MarketInfo(OrderSymbol(),MODE_BID),Slip,Gold);
                                    break;
                       case OP_SELL   : ON = OrderClose(OrderTicket(),OrderLots(),MarketInfo(OrderSymbol(),MODE_ASK),Slip,Gold);
                     }  
                     return(0); 
               }
             if (AlarmTP) PlaySound(AlarmTp);
             Print("Gratuluje zamkniecie na zysku");        
             }
          else
          Sleep(1);            
             
     return(0);
}
Skype marcinmc92

Awatar użytkownika
marek8
Gaduła
Gaduła
Posty: 288
Rejestracja: 26 lis 2011, 17:17

Re: Proszę o poprawkę EA

Nieprzeczytany post autor: marek8 »

tu jest inne gotowe i działa ok. po poprawkach Dadasa ,
masz procentowy SL i kwotowy,
http://forex-nawigator.biz/forum/equity ... 25199.html
Mk 9.23 - "....Wszystko możliwe jest dla tego kto wierzy".

Awatar użytkownika
MarcinMC
Stały bywalec
Stały bywalec
Posty: 78
Rejestracja: 01 kwie 2014, 16:56

Re: Proszę o poprawkę EA

Nieprzeczytany post autor: MarcinMC »

ok Dzieki na podstawie tego sprobuje cos pozmieniac :)
Skype marcinmc92

Awatar użytkownika
marek8
Gaduła
Gaduła
Posty: 288
Rejestracja: 26 lis 2011, 17:17

Re: Proszę o poprawkę EA

Nieprzeczytany post autor: marek8 »

możesz nic nie kombinować, masz w nim wszystko, nawet email po wyłączeniu,
Mk 9.23 - "....Wszystko możliwe jest dla tego kto wierzy".

Awatar użytkownika
MarcinMC
Stały bywalec
Stały bywalec
Posty: 78
Rejestracja: 01 kwie 2014, 16:56

Re: Proszę o poprawkę EA

Nieprzeczytany post autor: MarcinMC »

Jako że uczę się programować też chciałbym aby ktoś kto potrafi wytknął mi mój błąd w tym EA.
Skype marcinmc92

ODPOWIEDZ