prosba o proste przykladowe EA

O jezykach programowania w platformach i nie tylko.
2009
Stały bywalec
Stały bywalec
Posty: 31
Rejestracja: 13 sty 2009, 21:16

Nieprzeczytany post autor: 2009 »

witam
panowie jakbym wiedzial jak sie wysyla pochwaly, to rowniez bym wyslal ;)

bardzo dziekuje Tig3r
czekam na wiecej ... i rowniez zbieram pytania :)

Awatar użytkownika
Tig3r
Przyjaciel Forum
Przyjaciel Forum
Posty: 2310
Rejestracja: 02 sty 2008, 10:46

Nieprzeczytany post autor: Tig3r »

Do zarządzanie pozycją służą:

Kod: Zaznacz cały

OrderSend(...);
OrderModify(...);
OrderClose(...);
wystarczy wpisać którąś komendę w edytorze zaznaczyć treść komendy np.: OrderSend i mamy gotowy przykład jak użyć..

Co do powyższych kodów to pisane były z głowy więc nie wiem czy nie wkradł się jakiś błąd..

Myślę ze warto na początek edytować gotowe/standardowe już wrzucone EA i przeanalizować co i jak.
======================================================
Nie głupi ten co nie wie, lecz ten który nie chce się nauczyć..

2009
Stały bywalec
Stały bywalec
Posty: 31
Rejestracja: 13 sty 2009, 21:16

Nieprzeczytany post autor: 2009 »

witam
juz pierwsze EA mam za soba :) nawet i z modyfikacja

i teraz mam kilka pytan co do kolejnego EA, i nadzorowania zlecen
chcialbym zrobic zmienny SL dla kilku zlecen ... ale najpierw chcialbym nauczyc sie kontrolowac jedno zlecenie


zalozenia mojego kolejnego EA wygladaja nastepujaco

1. sprawdzic czy sa zlecenia, jesli nie ma wykonac kod (np. otworzyc BUY...)

Kod: Zaznacz cały

if(OrdersTotal() == 0) 
  {
    OrderSend(Symbol(), OP_BUY,0.1, Ask,3, Ask - 5 * Point, Ask + 152 * Point, "", 1024, 0, Red);

jesli sa zlecenia
2. kolejnym zalozeniem jest sprawdzic czy otworzone zlecenia sa pozycjami krotkimi czy dlugimi

szukajac znalazlem

Kod: Zaznacz cały

     OrderType()
int OrderType()


Funkcja OrderType zwraca typ aktualnie wybranego zlecenia.

Przykład:
if(OrderSelect(0, SELECT_BY_POS)) int typ = OrderType();

ale pojecia nie mam co z tym zrobic ...

nie wiem co to jest SELECT_BY_POS
nie rozumiem dzialania OrderSelect()
nie wiem jak wybiera zleceia ?

nie wiem typ ktorego zlecenia mi zwroci ta funkcja jak bede mial otworzone kilka zlecen

//Edit....
OrderSelect(0, SELECT_BY_POS))
SELECT_BY_POS ... jest to kolejne czytanie kolejno otworzonych zlecen...
a 0 przed SELECT_BY_POS jest kolejnym numerem zlecenia ?
otwieranymi kolejno w czasie i numreowanymi od 0,1,2,3.... itd??




3. sprawdzic czy

Kod: Zaznacz cały

close[0] > SL
nie wiem jak pobrac do porownania wartosc SL ...
trzeba kopiowac i przerzucac do porownania przez jakies zmienne ? w pamieci
czy cos takiego...?

Awatar użytkownika
Tig3r
Przyjaciel Forum
Przyjaciel Forum
Posty: 2310
Rejestracja: 02 sty 2008, 10:46

Nieprzeczytany post autor: Tig3r »

[quote]
jak już dasz OrderSelest (wybierzesz zlecenie, to:
1. przydałoby się sprawdzić czy to odpowiedni instrument
OrdersSymbol()
sprawdzić numer Magic:
Ordersmagic

a potem możęsz sprawdzać SL:
OrdersStopLoss()

Właściwie wszystkie komendy zaczynają się od Orders...
======================================================
Nie głupi ten co nie wie, lecz ten który nie chce się nauczyć..

2009
Stały bywalec
Stały bywalec
Posty: 31
Rejestracja: 13 sty 2009, 21:16

Nieprzeczytany post autor: 2009 »

troche mi nie idzie

jesli mozna
Prosze o dzialajacy przyklad z

OrderSelect i jakas inna funkcja np. jak wyfiltorwac ktore zlecenia sa oczekujace a ktore aktulanie otworzone ...


z gory dziekuje

Awatar użytkownika
Tig3r
Przyjaciel Forum
Przyjaciel Forum
Posty: 2310
Rejestracja: 02 sty 2008, 10:46

Nieprzeczytany post autor: Tig3r »

Przeszukaj ten dział sporo jest przykładów.. Nawet obojętnie jaki wskaźnik czy cokolwiek..
======================================================
Nie głupi ten co nie wie, lecz ten który nie chce się nauczyć..

2009
Stały bywalec
Stały bywalec
Posty: 31
Rejestracja: 13 sty 2009, 21:16

Nieprzeczytany post autor: 2009 »

a moze ktos mi powiedziec dlaczego to mi nie dziala w moim MT ...?

jak testuje w testerze to otwiera zlecenie(nie na tabelki)
na demo nie ... otwiera (co tick tabelka "otworzony buy")

Kod: Zaznacz cały

int start() 
{

OrderSend(Symbol(), OP_SELL, 0.1, Ask, 3, Ask + 92  * Point, Ask - 1522 * Point, "", 1025, 0, Blue);

   OrderSelect(1,SELECT_BY_POS); // 1 czy 0 ? dla pierwszego zlecenia?
   
           if(OrderType()==OP_BUY)
             {
              Alert("otworzony buy");   
             } 
      
   
            if(OrderType()==OP_SELL)
               { 
               Alert("otworzony sell");
               }
   return(0); 
   
  }


edit 1..
nie dziala na every tick .. otwierania pozycji na pozostalych metodach testu ... ale nie wyswietla alertu

prosze mi wytlumaczyc dlaczego nie dziala na pierwszej metodzie testowania taki kod?
czy taki kod otwierajacy zlecenie na kazdym ticku ... nie moze byc testowany metoda every tick ?


Edit 2...
przepraszam, za te ciagle pytania,

czy sadzicie ze kurs c+ ... poczatkujacy
bylby wskazany dla osoby chcacej nauczyc sie mql4 ??


dziekuje
dziekuje za pomoc :) pozdrawiam
Ostatnio zmieniony 09 cze 2009, 11:45 przez 2009, łącznie zmieniany 1 raz.

Awatar użytkownika
Tig3r
Przyjaciel Forum
Przyjaciel Forum
Posty: 2310
Rejestracja: 02 sty 2008, 10:46

Nieprzeczytany post autor: Tig3r »

1. Sell się robi po BID a buy po ASK

2.

Zamist tego:

Kod: Zaznacz cały

OrderSelect(1,SELECT_BY_POS); // 1 czy 0 ? dla pierwszego zlecenia? 
Osobiście nie ufam wybieraniu przez pozycje bo nie wiem do końca (a nie zamierzam się domyślać) co się stanie jak np któraś pozycja zostanie usunięta (dajmy na to środkowa), czy wartości indeksów zostaną jakie były czy się zmienią, wolę wybierać przez TICKET wtedy mam pewność:

Dałbym to:

Kod: Zaznacz cały

int start()
{

int ticket=OrderSend(Symbol(), OP_SELL, 0.1, Bid, 3, Ask + 92  * Point, Ask - 1522 * Point, "", 1025, 0, Blue); // zwrata nr ticket, lub -1 jeśli był błąd

   OrderSelect(ticket,SELECT_BY_TICKET); 
           if(OrderType()==OP_BUY)
             {
              Alert("otworzony buy");   
             }
     
   
            if(OrderType()==OP_SELL)
               {
               Alert("otworzony sell");
               }
   return(0);
   
  }
Ostatnio zmieniony 09 cze 2009, 12:06 przez Tig3r, łącznie zmieniany 1 raz.
======================================================
Nie głupi ten co nie wie, lecz ten który nie chce się nauczyć..

2009
Stały bywalec
Stały bywalec
Posty: 31
Rejestracja: 13 sty 2009, 21:16

Nieprzeczytany post autor: 2009 »

Tig3r pisze:1. Sell się robi po BID a buy po ASK

2.

Zamist tego:

Kod: Zaznacz cały

OrderSelect(1,SELECT_BY_POS); // 1 czy 0 ? dla pierwszego zlecenia? 
Osobiście nie ufam wybieraniu przez pozycje bo nie wiem do końca (a nie zamierzam się domyślać) co się stanie jak np któraś pozycja zostanie usunięta (dajmy na to środkowa), czy wartości indeksów zostaną jakie były czy się zmienią, wolę wybierać przez TICKET wtedy mam pewność:

Dałbym to:

Kod: Zaznacz cały

int start()
{

int ticket=OrderSend(Symbol(), OP_SELL, 0.1, Ask, 3, Ask + 92  * Point, Ask - 1522 * Point, "", 1025, 0, Blue); // zwrata nr ticket, lub -1 jeśli był błąd

   OrderSelect(ticket,SELECT_BY_TICKET); 
           if(OrderType()==OP_BUY)
             {
              Alert("otworzony buy");   
             }
     
   
            if(OrderType()==OP_SELL)
               {
               Alert("otworzony sell");
               }
   return(0);
   
  }

kod wyslany przez kolege :) w moich MT dziala tak
na demo nie otwiera zlecen tylko co tick wyswietla "otworzony buy""

w testerze nie robi nic na zadnej metodzie testu
? czy powinno byc inaczej,

Awatar użytkownika
Tig3r
Przyjaciel Forum
Przyjaciel Forum
Posty: 2310
Rejestracja: 02 sty 2008, 10:46

Nieprzeczytany post autor: Tig3r »

Poprawione:
int ticket=OrderSend(Symbol(), OP_SELL, 0.1, Bid, 3, Ask + 92 * Point, Ask - 1522 * Point, "", 1025, 0, Blue);


Zawsze w logu masz przyczyny błędów..
======================================================
Nie głupi ten co nie wie, lecz ten który nie chce się nauczyć..

ODPOWIEDZ