Wszystkie pytania dozwolone początkujących programistów

O jezykach programowania w platformach i nie tylko.
Awatar użytkownika
bud fox
Gaduła
Gaduła
Posty: 168
Rejestracja: 01 lip 2011, 19:24

Nieprzeczytany post autor: bud fox »

Witajcie.

Mam pytanie co to jest slippage, zgodnie z definicją:
Slippage
Różnica pomiędzy oczekiwaną i rzeczywista ceną realizacji zlecenia
Mogę prosić o wytłumaczenie na jakimś prostym przykładzie? Czy slippage w przypadku otwartego już zlecenia na funcie to jest 5 punktów, czy chodzi tutaj o coś innego?



Obrazek
Życzę wszystkim wolności i sukcesów!

Awatar użytkownika
personov
Pasjonat
Pasjonat
Posty: 1525
Rejestracja: 09 sie 2009, 21:27

Nieprzeczytany post autor: personov »

To pytanie raczej nie w tym dziale.
Slippage występuje np. jak zlożysz zlecenie i zanim zostanie ono zrealizowane to zmieni się cena. I teraz jakby broker sie Ciebie pyta : "czy taka nowa cena też może być ?" Jak masz slippage na 0 to już w tym momencie nie otworzy zlecenia. Jak masz ustawione na 2 to jak cena by się zmieniła o 2 pipsy to jeszcze mimo zmiany ceny otworzy to zlecenie.
To co zaznaczyłeś to min. poziom ustawienia TakeProfit i StopLoss. Poniżej 5 pipsów od ceny nie można ustawić TP i SL. Nie ma to nic wspólnego z slippage.
Solą życia jest kasa.

Awatar użytkownika
bud fox
Gaduła
Gaduła
Posty: 168
Rejestracja: 01 lip 2011, 19:24

Nieprzeczytany post autor: bud fox »

personov pisze:To pytanie raczej nie w tym dziale.
Slippage występuje np. jak zlożysz zlecenie i zanim zostanie ono zrealizowane to zmieni się cena. I teraz jakby broker sie Ciebie pyta : "czy taka nowa cena też może być ?" Jak masz slippage na 0 to już w tym momencie nie otworzy zlecenia. Jak masz ustawione na 2 to jak cena by się zmieniła o 2 pipsy to jeszcze mimo zmiany ceny otworzy to zlecenie.
To co zaznaczyłeś to min. poziom ustawienia TakeProfit i StopLoss. Poniżej 5 pipsów od ceny nie można ustawić TP i SL. Nie ma to nic wspólnego z slippage.
Dziękuję za odp. personov :)

Mam jeszcze jedno pytanie, odnośnie parametru magic funkcji OrderSend
magic is the magic number of the order. It can be used as the user-defined order identifier. In some cases, it is the only information that helps you to find out about that the order belongs to one or another program that has opened it. The parameter is set by the user; its value can be the same or other than the value of this parameter of other orders.
Czyli jest to jakiś numer dzięki któremu możemy rozpoznać jaka strategia otworzyła dane zlecenie, coś jakby komentarz?
Życzę wszystkim wolności i sukcesów!

Awatar użytkownika
personov
Pasjonat
Pasjonat
Posty: 1525
Rejestracja: 09 sie 2009, 21:27

Nieprzeczytany post autor: personov »

Nie. Za to co piszesz odpowiedzialny jest "komentarz". Numer Magic służy do odróżniania między sobą robotów, tak aby nie wchodziły sobie w paradę swoimi warunkami.
Solą życia jest kasa.

stad
Stały bywalec
Stały bywalec
Posty: 29
Rejestracja: 01 sie 2010, 11:39

Nieprzeczytany post autor: stad »

Witam
Poproszę o pomoc. Co tu jest nie tak?

---------------------------------------------
//+------------------------------------------------------------------+
//| close_TP_SL_cykl.mq4 |
//| Copyright © 2012, MetaQuotes Software Corp. |
//| http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2012, MetaQuotes Software Corp."
#property link "http://www.metaquotes.net"

//--- input parameters
extern double TP_cyklu=10.0;
extern double SL_cyklu=30.0;
//+------------------------------------------------------------------+
//| expert initialization function |
//+------------------------------------------------------------------+
int init()
{
//----

//----
return(0);
}
//+------------------------------------------------------------------+
//| expert deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//----

//----
return(0);
}
//+------------------------------------------------------------------+
//| expert start function |
//+------------------------------------------------------------------+
int start()
{
//----
double eq, eqcur;


{


//----
if(OrdersTotal() == 0)
eq = AccountEquity();// przypisuje equity jeśli brak otwartych pozycji

eqcur = AccountEquity();// przypisuje bieżące equity

if (
((eqcur - eq) >= TP_cyklu)
||
((eq - eqcur) >= SL_cyklu)
)
//jeżeli zamyka wszystkie pozycje
{
int i;

for (i = 0; i < OrdersTotal(); i++)
{
OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
OrderClose(OrderTicket(), OrderLots(), Bid, 3, Orange);
}
}


}

//----
return(0);
}
//+------------------------------------------------------------------+

Gra polega na składaniu zleceń wg różnych strategii z ręki.
Chciałem uzyskać efekt TP i SL ze wszystkich pozycji.
To EA zamyka wszystkie pozycje, tylko wtedy kiedy w pozycjach otwieranych z ręki pojawi się zlecenie BUY. I zamyka wszstko właśnie w tym momencie kiedy to zlecenie się pojawi, nie uwzględnia TP i SL.
Poproszę o pomoc.

Awatar użytkownika
bbq
Pasjonat
Pasjonat
Posty: 604
Rejestracja: 10 maja 2011, 17:12

Nieprzeczytany post autor: bbq »

Co to ma być, wspólny sl lub tp po proficie?
“Look deep into nature, and then you will understand everything better.” A. Einstein

stad
Stały bywalec
Stały bywalec
Posty: 29
Rejestracja: 01 sie 2010, 11:39

Nieprzeczytany post autor: stad »

bakubaq pisze:Co to ma być, wspólny sl lub tp po proficie?
to ma być coś takiego
przykład:
mam 1000
uruchamiam ea, TP = 50, SL = 100
zaczynam składać zlecenia
suma zysków od czasu włączenia ea wynosi 50 (aktualne equity = 1050)
zamykane są wszystkie pozycje
suma strat od czasu włączenia ea wynosi 1000 (aktualne equity = 900)
zamykane są wszystkie pozycje

?

Awatar użytkownika
bbq
Pasjonat
Pasjonat
Posty: 604
Rejestracja: 10 maja 2011, 17:12

Nieprzeczytany post autor: bbq »

Kod: Zaznacz cały

extern double Zamkniecie_przy_zysku=300;     
extern double Zamkniecie_przy_stracie=100;                                         
int Slippage=5;
int i;

//+------------------------------------------------------------------+
//| expert initialization function                                   |
//+------------------------------------------------------------------+
int init()
  {

   return(0);
  }
//+------------------------------------------------------------------+
//| expert deinitialization function                                 |
//+------------------------------------------------------------------+
int deinit()
  {

   return(0);
  }
//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+

int start()
{
if (AccountProfit()>=  Zamkniecie_przy_zysku  || AccountProfit()<= - Zamkniecie_przy_stracie) 
   {
    for(i=OrdersTotal()-1;i>=0;i--)
       {
       OrderSelect(i, SELECT_BY_POS);
       int type   = OrderType();
               
       bool result = false;
              
       switch(type)
          {
     
          case OP_BUY  : result = OrderClose(OrderTicket(),OrderLots(),MarketInfo(OrderSymbol(),MODE_BID),Slippage,Pink);
                         break;
               
     
          case OP_SELL : result = OrderClose(OrderTicket(),OrderLots(),MarketInfo(OrderSymbol(),MODE_ASK),Slippage,Pink);
                          
          }
          
       if(result == false)
          {
            Sleep(300);
          }  
       }
      
      return(0);
   }  
   
   Comment("Balance: ",AccountBalance(),", Account Equity: ",AccountEquity(),", Bilans otwartych pozycji: ",AccountProfit(), 
           "\nZamkniecie pozycji przy: +",Zamkniecie_przy_zysku,
           "\nZamkniecie pozycji przy: -",Zamkniecie_przy_stracie);
   
  return(0);
}

stad
Stały bywalec
Stały bywalec
Posty: 29
Rejestracja: 01 sie 2010, 11:39

Nieprzeczytany post autor: stad »

bakubaq
Dziękuję bardzo, ale niestety nie działa.
Zrobiłem taki test, uruchomiłem 3 różne strategie w 3 oknach, w czwartym oknie powyższe ea i niestety nie działa.
Otwierało się dużo zleceń, od początkowych 10tys był osiągany poziom Zamkniecie_przy_zysku i Zamkniecie_przy_stracie i nic, brak reakcji.
Ja wyobrażałem sobie to tak, że bedzie zamykały się wszystkie zlecenia, nastepnie te inne EA znowu otwierają mi zlecenia, a to moje ea będzie dalej działało, tylko, że poziomem odniesienia jest aktualne equity, po zamknieciu wszytkich zleceń.
Acha.
Te różne strategie otwierają i zamykają zlecenia, dlatego odnoszę się do equity, a nie do balance (balance jest zazwyczaj na dużym plusie, zysk zazwyczaj na minusie).

Awatar użytkownika
CoVal
Gaduła
Gaduła
Posty: 320
Rejestracja: 06 paź 2005, 22:45

Nieprzeczytany post autor: CoVal »

bud fox pisze: Mam jeszcze jedno pytanie, odnośnie parametru magic funkcji OrderSend
Czyli jest to jakiś numer dzięki któremu możemy rozpoznać jaka strategia otworzyła dane zlecenie, coś jakby komentarz?
dokladnie tak jak piszesz:

Magic Number, to dowolna liczba calkowita ustawiana w czasie otwierania pozycji i pozwalajaca nam pozniej na identyfikacje pojedynczego zlecenia, grupy zlecen (np. wygenerowanych przez jedno EA - jak podpowiada Personov) albo np. wszystkich pozycji otwieranych automatycznie - robisz potem z nia to co chcesz.
Pojedyncze zlecenia mozna tez identyfikowac po numerze zlecenia, jest to naljepszy, jednak nie zawsze wygodny sposob.
Ostatnia z mozliwosci jest identyfikacja przez komentarz....
Z tych wszystkich mozliwosci polecam wlasnie Magic ... :)

ODPOWIEDZ