BE pierwsze starcie

O jezykach programowania w platformach i nie tylko.
Awatar użytkownika
siersciuch
Pasjonat
Pasjonat
Posty: 407
Rejestracja: 06 kwie 2010, 20:31

BE pierwsze starcie

Nieprzeczytany post autor: siersciuch »

Jak w temacie moje pierwsze podejscie do napisanie BE.
Na sam poczatek chciałbym, zeby ktoś sprawdził tą koncepcje czy wogule jest słuszna, albo czy nie próbuje isc jakąś zawiłą droga zeby zrobić BE.

Tak pozatym zawiesiłem sie przy OrderModify, niemam pojecia jak z modyfikowąc juz to zlecenie zeby przestawić na be lub +1 pips.


Kod: Zaznacz cały

int BEbuy(int cmd)
{
   int be = 0;

   for (int i=0;i<=OrderSelect();i++)
   { 
      OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
      double cena_otwarcia=OrderOpenPrice(i, SELECT_BY_POS)
         {
         return ( cena_otwarcia); 
         }
      
      if (cena_otwarcia + 30*Point == Bid)
         {
         bool OrderModify( i, double price, double stoploss, double
         takeprofit, datetime expiration, color arrow_color=CLR_NONE);
         }
   }
   return(be);
}
jeżeli będziesz uparty, prawdopodobnie częściej odniesiesz sukces, niż doznasz porażki.

Awatar użytkownika
Pierz Andrzej
Przyjaciel Forum
Przyjaciel Forum
Posty: 1200
Rejestracja: 02 lip 2006, 14:17

Nieprzeczytany post autor: Pierz Andrzej »

Kod: Zaznacz cały


double price = OrderOpenPrice();
dla OP_BUY double stoploss = OrderOpenPrice()+be*Point;
dla OP_SELLdouble stoploss = OrderOpenPrice()-be*Point;
double takeprofit = OrderTakeProfit();

Andrzej Pierz

Dodano po 2 minutach:

a tak po zatym to po co to ??

Kod: Zaznacz cały

return ( cena_otwarcia); 


Dodano po 1 minutach:

a no i nie tak :

Kod: Zaznacz cały

double cena_otwarcia=OrderOpenPrice(i, SELECT_BY_POS) 
tylko

Kod: Zaznacz cały

double cena_otwarcia=OrderOpenPrice() ;
;)

Dodano po 1 minutach:

i nie :

Kod: Zaznacz cały

bool OrderModify( i,.....
tylko :

Kod: Zaznacz cały

bool OrderModify( OrderTicket(),....
korzystajcie z F1 .... naprawde jest bardzo pomocne ;)

Andrzej Pierz

Awatar użytkownika
siersciuch
Pasjonat
Pasjonat
Posty: 407
Rejestracja: 06 kwie 2010, 20:31

Nieprzeczytany post autor: siersciuch »

Pierz Andrzej pisze: Dodano po 2 minutach:

a tak po zatym to po co to ??

Kod: Zaznacz cały

return ( cena_otwarcia); 
myslałem, ze jak bedzie cena otwarcia + np 30 pipsów , wtedy na BE zeby przestawiło
jeżeli będziesz uparty, prawdopodobnie częściej odniesiesz sukces, niż doznasz porażki.

Awatar użytkownika
Pierz Andrzej
Przyjaciel Forum
Przyjaciel Forum
Posty: 1200
Rejestracja: 02 lip 2006, 14:17

Nieprzeczytany post autor: Pierz Andrzej »

tyle ze po tym returnie reszta kodu nie jest nigdy wykonana ...
poniewaz po doczytaniu wartosci

Kod: Zaznacz cały

OrderOpenPrice()
odrazu zakanczasz dzialanie funkcji i zwracasz wartsoc

Kod: Zaznacz cały

cena_otwarcia
pomijajac juz fakt ze zwracasz doble w funkcji int ;) ... ten return nie pwinen tam byc ;)

Andrzej Pierz

Dodano po 14 minutach:

prosze do celow edukacyjnych ;)

Kod: Zaznacz cały

int start()
{
   BE_long();// wywolujemy funkcje do sprawdzenia i przestawienia BE w zleceniach Long
}

void BE_long()
{
   int be = 1;// ile pipsow zysku ma wziac na BE
   int beStep = 30;// przy jakim zysku ma przestawic na BE
   for (int i=0;i<=OrdersTotal();i++) // nie OrderSelect ;) tyloko OrdersTotal zwraca ilosc aktualnie otwartych zlecen na wszystkich instrumnetach
   {
      OrderSelect(i,SELECT_BY_POS,MODE_TRADES);// teraz za pomoca OrderSelect zaznaczamy jakiemu zleceniu z kolei bedziemy sie przygladac 
      if (OrderType()==OP_BUY)// sprawdzamy czy zaznaczone zlecenie jest zleceniem BUY
      {
         // jezeli to jest zlecenie BUY 
         if (OrderStopLoss()<OrderOpenPrice())// teraz sprawdzamy czy aktulnie ustawinoy stoploss jest ponizej ceny otwarcia 
         {
            //jezeli stoploss jest ponizej ceny otwarcia
            if (Bid-OrderOpenPrice()>=beStep*Point)// czy aktualny zysk jest oczekiwanym zyskiem po ktorym chcemy przestawic sl
            {
               // modyfikujemy zlecenie
               OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice()+beStep*Point,OrderTakeProfit(),OrderExpiration(),CLR_NONE);
            }
         }
      }
   }
}
spróbuj na podstawie tego napisac BE_short a ja sprawdze :P ....
staralem sie w miare czytelnie to opisac ;)

Andrzej Pierz

Awatar użytkownika
siersciuch
Pasjonat
Pasjonat
Posty: 407
Rejestracja: 06 kwie 2010, 20:31

Nieprzeczytany post autor: siersciuch »

Pierz Andrzej pisze:tyle ze po tym returnie reszta kodu nie jest nigdy wykonana ...
poniewaz po doczytaniu wartosci

Kod: Zaznacz cały

OrderOpenPrice()
odrazu zakanczasz dzialanie funkcji i zwracasz wartsoc

Kod: Zaznacz cały

cena_otwarcia
pomijajac juz fakt ze zwracasz doble w funkcji int ;) ... ten return nie pwinen tam byc ;)

Andrzej Pierz

Dodano po 14 minutach:

prosze do celow edukacyjnych ;)

Kod: Zaznacz cały

int start()
{
   BE_long();// wywolujemy funkcje do sprawdzenia i przestawienia BE w zleceniach Long
}

void BE_long()
{
   int be = 1;// ile pipsow zysku ma wziac na BE
   int beStep = 30;// przy jakim zysku ma przestawic na BE
   for (int i=0;i<=OrdersTotal();i++) // nie OrderSelect ;) tyloko OrdersTotal zwraca ilosc aktualnie otwartych zlecen na wszystkich instrumnetach
   {
      OrderSelect(i,SELECT_BY_POS,MODE_TRADES);// teraz za pomoca OrderSelect zaznaczamy jakiemu zleceniu z kolei bedziemy sie przygladac 
      if (OrderType()==OP_BUY)// sprawdzamy czy zaznaczone zlecenie jest zleceniem BUY
      {
         // jezeli to jest zlecenie BUY 
         if (OrderStopLoss()<OrderOpenPrice())// teraz sprawdzamy czy aktulnie ustawinoy stoploss jest ponizej ceny otwarcia 
         {
            //jezeli stoploss jest ponizej ceny otwarcia
            if (Bid-OrderOpenPrice()>=beStep*Point)// czy aktualny zysk jest oczekiwanym zyskiem po ktorym chcemy przestawic sl
            {
               // modyfikujemy zlecenie
               OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice()+beStep*Point,OrderTakeProfit(),OrderExpiration(),CLR_NONE);
            }
         }
      }
   }
}
spróbuj na podstawie tego napisac BE_short a ja sprawdze :P ....
staralem sie w miare czytelnie to opisac ;)

Andrzej Pierz
dzieki za pomoc!, przerobie to na dniach, narazie mi czacha dymi od tych kodów :) mozesz sobie sam pochwałę dać?
jeżeli będziesz uparty, prawdopodobnie częściej odniesiesz sukces, niż doznasz porażki.

Awatar użytkownika
Pierz Andrzej
Przyjaciel Forum
Przyjaciel Forum
Posty: 1200
Rejestracja: 02 lip 2006, 14:17

Nieprzeczytany post autor: Pierz Andrzej »

siersciuch pisze: mozesz sobie sam pochwałę dać?
przeciez to Twoj temat ;) to mozesz sam mi dac pochwale ;)

Andrzej Pierz
z poważaniem
Andrzej Pierz
FOREX-SERVICE

Awatar użytkownika
siersciuch
Pasjonat
Pasjonat
Posty: 407
Rejestracja: 06 kwie 2010, 20:31

Nieprzeczytany post autor: siersciuch »

Kod: Zaznacz cały

 
int start()
{
   Be_short();    // zmnienilem nazwe
}

void BE_short()   // zmnienilem nazwe
{
   int be = 1;
   int beStep = 30;
   for (int i=0;i<=OrdersTotal();i++)
   {
      OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
      if (OrderType()==OP_SELL)     // zmnienilem na OP_SELL
      {
         
         if (OrderStopLoss()>OrderOpenPrice())  // zmienilem znak, Sl w Short ma być powyzej ceny otwarcia
         {
            
            if (Bid-OrderOpenPrice()>=beStep*Point)  // Tu niewiem, niezmieniłęm, bo ma być to róznica, ale ta różnica wyjdzie na minusie, a beStep jest wartośćia na plus, wiec niewiem co tu zrobic
            {
            
               OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice()-beStep*Point,OrderTakeProfit(),OrderExpiration(),CLR_NONE);    // tu daj minus bo tp jest ponizej otwarcia
            }
         }
      }
   }
}


jeżeli będziesz uparty, prawdopodobnie częściej odniesiesz sukces, niż doznasz porażki.

Awatar użytkownika
Pierz Andrzej
Przyjaciel Forum
Przyjaciel Forum
Posty: 1200
Rejestracja: 02 lip 2006, 14:17

Nieprzeczytany post autor: Pierz Andrzej »

Kod: Zaznacz cały

if (Bid-OrderOpenPrice()>=beStep*Point)
zamien na

Kod: Zaznacz cały

if (OrderOpenPrice()-Ask>=beStep*Point)
i gitara

pzdr Andrzej
z poważaniem
Andrzej Pierz
FOREX-SERVICE

Awatar użytkownika
siersciuch
Pasjonat
Pasjonat
Posty: 407
Rejestracja: 06 kwie 2010, 20:31

Nieprzeczytany post autor: siersciuch »

Kod: Zaznacz cały

OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice()+beStep*Point,OrderTakeProfit(),OrderExpiration(),CLR_NONE);
tam gdzie jest beStep przypadkiem nie powinno być be ? bo przestawiam na BE stoplossa, anie na 30 pipsow . Dobrze rozumuje?[/code]
jeżeli będziesz uparty, prawdopodobnie częściej odniesiesz sukces, niż doznasz porażki.

Awatar użytkownika
Pierz Andrzej
Przyjaciel Forum
Przyjaciel Forum
Posty: 1200
Rejestracja: 02 lip 2006, 14:17

Nieprzeczytany post autor: Pierz Andrzej »

siersciuch pisze:

Kod: Zaznacz cały

OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice()+beStep*Point,OrderTakeProfit(),OrderExpiration(),CLR_NONE);
tam gdzie jest beStep przypadkiem nie powinno być be ? bo przestawiam na BE stoplossa, anie na 30 pipsow . Dobrze rozumuje?[/code]
dobrze rozumejesz :) ... rutyna czasami gubi :)

Andrzej Pierz

ODPOWIEDZ