Wszystkie pytania dozwolone początkujących programistów

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

Re: Wszystkie pytania dozwolone początkujących programistów

Nieprzeczytany post autor: MarcinMC »

Kod: Zaznacz cały

int start(){
       Print("Otwarcie" + Para1_BUY);
       int ticket = OrderSend(Para1_BUY,OP_BUY,Wolumen,Ask,Slip,NULL,NULL,Nazwa_EA,Magic_Numer,0,Blue);
         if (ticket<0){
            Print("OrderSend failed with error #", GetLastError());
  
                     }
       Print("Otwarcie" + Para2_SELL);
       int ticket2 = OrderSend(Para2_SELL,OP_SELL,Wolumen,Bid,Slip,NULL,NULL,Nazwa_EA,Magic_Numer,0,Red);
         if (ticket2<0){
            Print("OrderSend failed with error #", GetLastError());
  
                     }
      Print("Otwarcie" + Para3_BUY);
       int ticket3 = OrderSend(Para3_BUY,OP_BUY,Wolumen,Ask,Slip,NULL,NULL,Nazwa_EA,Magic_Numer+1,0,Blue);
         if (ticket3<0){
            Print("OrderSend failed with error #", GetLastError());
  
                     }
       Print("Otwarcie" + Para4_SELL);
       int ticket4 = OrderSend(Para4_SELL,OP_SELL,Wolumen,Bid,Slip,NULL,NULL,Nazwa_EA,Magic_Numer+1,0,Red);
         if (ticket4<0){
            Print("OrderSend failed with error #", GetLastError());
  
                     }                                           
   return(0);

Nadal otwiera pare na ktorej jest EA
Skype marcinmc92

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

Re: Wszystkie pytania dozwolone początkujących programistów

Nieprzeczytany post autor: bfx »

Wklej cały kod jak możesz.
"Ty też jesteś Bogiem! Tylko uświadom to sobie, sobie"

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

Re: Wszystkie pytania dozwolone początkujących programistów

Nieprzeczytany post autor: MarcinMC »

Kod: Zaznacz cały

//--- input parameters
extern string   Nazwa_EA="EA KOR";
extern int      Magic_Numer=1;
extern bool     Alarm=false;
extern string   Alarm_Plik;
extern double   Wolumen=0.01;
extern string   Para1_BUY="GBPUSD";
extern string   Para2_SELL="EURUSD";
extern string   Para3_BUY;
extern string   Para4_SELL;
extern int      TP_KOR_PIPS;
extern int      Slip=5;
 
 
   int start(){
       Print("Otwarcie" + Para1_BUY);
       int ticket = OrderSend(Para1_BUY,OP_BUY,Wolumen,Ask,Slip,NULL,NULL,Nazwa_EA,Magic_Numer,0,Blue);
         if (ticket<0){
            Print("OrderSend failed with error #", GetLastError());
  
                     }
       Print("Otwarcie" + Para2_SELL);
       int ticket2 = OrderSend(Para2_SELL,OP_SELL,Wolumen,Bid,Slip,NULL,NULL,Nazwa_EA,Magic_Numer,0,Red);
         if (ticket2<0){
            Print("OrderSend failed with error #", GetLastError());
  
                     }
      Print("Otwarcie" + Para3_BUY);
       int ticket3 = OrderSend(Para3_BUY,OP_BUY,Wolumen,Ask,Slip,NULL,NULL,Nazwa_EA,Magic_Numer+1,0,Blue);
         if (ticket3<0){
            Print("OrderSend failed with error #", GetLastError());
  
                     }
       Print("Otwarcie" + Para4_SELL);
       int ticket4 = OrderSend(Para4_SELL,OP_SELL,Wolumen,Bid,Slip,NULL,NULL,Nazwa_EA,Magic_Numer+1,0,Red);
         if (ticket4<0){
            Print("OrderSend failed with error #", GetLastError());
  
                     }                                           
   return(0);
   
   
              }
Skype marcinmc92

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

Re: Wszystkie pytania dozwolone początkujących programistów

Nieprzeczytany post autor: bfx »

U mnie śmiga. Otwiera jednocześnie na EURUSD i GBPUSD

extern string Para1_BUY="GBPUSD";
extern string Para2_SELL="EURUSD";
extern string Para3_BUY;
extern string Para4_SELL;

przy Para3_BUY i Para4_SELL też musisz dopisac nazwę symbolu.

Możliwe też, że masz jakieś końcówki przy symbolach. Jeśli tak to nazwa symbolu musi byc cała, np.
extern string Para3_BUY="GBPUSD.pro";
"Ty też jesteś Bogiem! Tylko uświadom to sobie, sobie"

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

Re: Wszystkie pytania dozwolone początkujących programistów

Nieprzeczytany post autor: MarcinMC »

Ale ladowales EA na ine pary niz GBPUSD i EURUSD ? Na Ironie na Demo sobie to testuje
Skype marcinmc92

z6yszko
Gaduła
Gaduła
Posty: 266
Rejestracja: 17 sty 2011, 10:09

Re: Wszystkie pytania dozwolone początkujących programistów

Nieprzeczytany post autor: z6yszko »

Podstawowy błąd - cena otwarcia zlecenia.
Na bieżącym wykresie masz Bid i Ask, ale na innej parze trzeba odczytać:

Kod: Zaznacz cały

ext_bid = MarketInfo("GBPUSD", MODE_BID);
ext_ask = MarketInfo("GBPUSD", MODE_ASK);
i dopiero tych odczytanych wartości użyć do otwierania zleceń.

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

Re: Wszystkie pytania dozwolone początkujących programistów

Nieprzeczytany post autor: MarcinMC »

Sorki ale nie bardzo wiem jak tego użyć i w którym miejscu to wklepać. Po int start()? Czy przed?

I zmodyfikowałem to po swojemu, wygląda to tak:

Kod: Zaznacz cały

ext_bid = MarketInfo(Para1_BUY, MODE_BID);
   ext_ask = MarketInfo(Para2_SELL, MODE_ASK);
   ext_bid2 = MarketInfo(Para3_BUY, MODE_BID);
   ext_ask2 = MarketInfo(Para4_SELL, MODE_ASK);
Dzięki za pomoc
Skype marcinmc92

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

Re: Wszystkie pytania dozwolone początkujących programistów

Nieprzeczytany post autor: bfx »

z6yszko pisze:Podstawowy błąd - cena otwarcia zlecenia.
Na bieżącym wykresie masz Bid i Ask, ale na innej parze trzeba odczytać:
Racja. Pewnie o to chodzi. Ale u mnie to działa mimo błędu. Otwiera mi również na GBPUSD mimo że odpaliłem tylko na EURUSD. :)

Możesz zrobic tak

Kod: Zaznacz cały

int ticket2 = OrderSend(Para2_SELL,OP_SELL,Wolumen,MarketInfo(Para2_SELL,MODE_BID),Slip,NULL,NULL,Nazwa_EA,Magic_Numer,0,Red);
       
"Ty też jesteś Bogiem! Tylko uświadom to sobie, sobie"

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

Re: Wszystkie pytania dozwolone początkujących programistów

Nieprzeczytany post autor: MarcinMC »

Dziekuje Wam obu :) Działa, jak dać pochwałę ? :)

Zabieram się za dalszą część
Skype marcinmc92

z6yszko
Gaduła
Gaduła
Posty: 266
Rejestracja: 17 sty 2011, 10:09

Re: Wszystkie pytania dozwolone początkujących programistów

Nieprzeczytany post autor: z6yszko »

MarcinMC pisze:Sorki ale nie bardzo wiem jak tego użyć i w którym miejscu to wklepać. Po int start()? Czy przed?

I zmodyfikowałem to po swojemu, wygląda to tak:

Kod: Zaznacz cały

ext_bid = MarketInfo(Para1_BUY, MODE_BID);
   ext_ask = MarketInfo(Para2_SELL, MODE_ASK);
   ext_bid2 = MarketInfo(Para3_BUY, MODE_BID);
   ext_ask2 = MarketInfo(Para4_SELL, MODE_ASK);
Napisałeś odwrotnie, BUY jest po MODE_ASK a SELL po MODE_BID.
Potem normalnie otwierasz zlecenia:

Kod: Zaznacz cały

ext_ask = MarketInfo(Para1_BUY, MODE_ASK);
ext_bid = MarketInfo(Para2_SELL, MODE_BID);
ext_ask2 = MarketInfo(Para3_BUY, MODE_ASK);
ext_bid2 = MarketInfo(Para4_SELL, MODE_BID);
OrderSend(Para1_BUY,OP_BUY,Wolumen,ext_ask,Slip,NULL,NULL,Nazwa_EA,Magic_Numer,0,Blue);
itd...

bfx pisze: Racja. Pewnie o to chodzi. Ale u mnie to działa mimo błędu. Otwiera mi również na GBPUSD mimo że odpaliłem tylko na EURUSD. :)
U Ciebie chodzi, bo to zależy od ustawień platformy brokera. Tak samo jak slippage - u brokerów pseudo "ECN" ten parametr nie ma znaczenia.

-- Dodano: śr 04-06-2014, 13:55 --
MarcinMC pisze:Dziekuje Wam obu :) Działa, jak dać pochwałę ? :)

Zabieram się za dalszą część
Teoretycznie pochwały daje się przy pomocy trójkąta z wykrzyknikiem obok przycisku "cytuj". Ale moderatorzy mają swoją politykę przyznawania pochwał, więc nie wiem czy tę pochwałę zobaczymy :)
Ostatnio zmieniony 04 cze 2014, 14:02 przez z6yszko, łącznie zmieniany 1 raz.

ODPOWIEDZ