Wszystkie pytania dozwolone początkujących programistów

O jezykach programowania w platformach i nie tylko.
GoAway
Stały bywalec
Stały bywalec
Posty: 32
Rejestracja: 15 sty 2012, 22:34

Nieprzeczytany post autor: GoAway »

o faktycznie jest w manualu o tym nawet, wypas

Dodano po 16 minutach:

To jeszcze pytanie natury ogólnej. Jakie podejście stosuje się przy pisaniu EA? Chodzi mi m.in. o to, że np otwieram zlecenie i zapisuje OpenPrice w jakims globalu. Dzieki temu mam szybki dostęp do tej wartości przy każdym kolejnym ticku, Jednak, przypadkiem mi żona zamknie platforme, to pomimo natychmiastowego jej uruchomienia, global juz stracił tą wartość, ale gdybym za każdym tickiem brał sobie tą wartość z ostatniego zlecenia, to EA pomimo chwilego wyłączenia i włączenia by działało dalej poprawnie. Jednak takie rozwiązanie powoduje rozrastanie się kodu, oraz wydłuża czas działania funkcji. Nie wiem też czy serwery brokera są zadowolone ciągłymi zapytaniami.
Czyli reasumując, czy dobrze napisane EA, to takie co przy wyłączeniu i włączeniu ponownie potrafi się "odnaleźć" w zastałęj sytuacji pozostawionej przez siebie i działać dalej jak gdyby nigdy nic, czy to takie które ma zminimalizowaną liczbę zapytań.

PS. Tak wiem, dobre EA to takie które zarabia, ale w tym pytaniu o coś innego mi chodzi ;)

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

Nieprzeczytany post autor: Pierz Andrzej »

zazwyczaj przeltauje sie petla otwarte zlecenia , wyszukuje sie to "nasze" i spradza OrderOpenPrice

zapytania do serwera robione sa wylacznie funkcjami :
OrderSend
OrderClose
OrderModify
OrderDelete

Wiec sprawdzenie ceny otwarcia pozycji nie wysyla zadnego zapytanie doserwera
z poważaniem
Andrzej Pierz
FOREX-SERVICE

forexsowicz91
Pasjonat
Pasjonat
Posty: 504
Rejestracja: 25 lis 2011, 17:55

Nieprzeczytany post autor: forexsowicz91 »

Mam pytanie, otóż czy dałoby się napisać taki skrypt który po kliknięciu "s" lub "l" zmykałby odpowiednio krótką bądź długą pozycję..?

GoAway
Stały bywalec
Stały bywalec
Posty: 32
Rejestracja: 15 sty 2012, 22:34

Nieprzeczytany post autor: GoAway »

dzieki, to wiele wyjasnia... jednak tez rodzi kolejne pytania.

Skoro funkcje typu OrderOpenPrice dzialaja lokalnie tzn, ze MT4 gdzies lokanie przechowuje te dane. Jesli wlaczam platrofme, to nie mam na wykresie, narysowanych otwartych zlecen, z tego wniosek ze przy nawizaniu polaczenia platforma sie "uaktualnia".
Zatem, czy mamy 100% pewnosc, ze platforma sie "uaktualni" zanim zacznie mi dzialac EA i skorzysta z tych "lokalnych funkcji" (nie dojdzie do wyscigu ?) ?
Co w przypadku gdy stracilem polaczenie z netem ? O ile EA dziala na ticki to nie ma problemu, nie ma ticka, nie ma sprawdzenia OrderOpenPrice, ale jak mam EA dzialajace np co 3 sekundy i stracilem polaczenie z netem to czy lokalne funkcje zadzialaja tak jak powinny ? (wydaje sie, że tak, ale wole się upewnic).

I jeszcze czy mozliwe sa takie skrajne sytuacje, ze np wysylam OrderClose i trace neta, w tym momencie zlecenia juz nie mam na serwerze brokera, jednak MT4 o tym nie wie, pewnie czeka na potwiedzenie ze polecenie sie wykonalo, ale stracilo polaczenie. Odzyskujemy polaczenie, przychodzi Tick, i moje EA zaczyna dzialac niepoprawnie? (chyba ze przy kazdym odzyskaniu polaczenia zanim zacznie dzialac EA nastepuje synchronizacja danych).

Panie Andrzeju ? :)

Awatar użytkownika
mikolaj2
Gaduła
Gaduła
Posty: 231
Rejestracja: 04 maja 2011, 14:37

Nieprzeczytany post autor: mikolaj2 »

Przepraszam, że idę na łatwiznę, ale szukam kodu, który tworzyłby tablicę zawierającą ceny zamknięcia z x świeczek. Z góry dziękuję za pomoc!

LowcaG
Pasjonat
Pasjonat
Posty: 1068
Rejestracja: 05 paź 2007, 15:39

Nieprzeczytany post autor: LowcaG »

mikolaj2 pisze:Przepraszam, że idę na łatwiznę, ale szukam kodu, który tworzyłby tablicę zawierającą ceny zamknięcia z x świeczek. Z góry dziękuję za pomoc!
hm.. w zasadzie to masz już taką tablicę
Close[x]

Awatar użytkownika
mikolaj2
Gaduła
Gaduła
Posty: 231
Rejestracja: 04 maja 2011, 14:37

Nieprzeczytany post autor: mikolaj2 »

Wszystko się zgadza - pytanie brzmi jak odnaleźć w tej specyficznej tablicy najmniejszą i największą wartość?

LowcaG
Pasjonat
Pasjonat
Posty: 1068
Rejestracja: 05 paź 2007, 15:39

Nieprzeczytany post autor: LowcaG »

mikolaj2 pisze:Wszystko się zgadza - pytanie brzmi jak odnaleźć w tej specyficznej tablicy najmniejszą i największą wartość?
iHighest(Symbol(),Period(),MODE_CLOSE,n,0);
i analogicznie
iLowest

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

Nieprzeczytany post autor: personov »

Mam prośbę. Czy mógłby ktoś mi pokazać jak dodać do robota obiekt w postaci linii poziomej poruszajacej się wraz z ceną ?
Prosiłbym o taki "łopatologiczny" przykład np. linia pozioma oddalona od Bid o 8 pips.
Solą życia jest kasa.

artur_ar
Stały bywalec
Stały bywalec
Posty: 22
Rejestracja: 09 gru 2009, 15:55

Nieprzeczytany post autor: artur_ar »

Kod: Zaznacz cały

init
ObjectCreate("LiniaNr1",  OBJ_HLINE,  0, Time[0], Open[0]);
ObjectSet("LiniaNr1", OBJPROP_STYLE, STYLE_SOLID);
ObjectSet("LiniaNr1", OBJPROP_COLOR, Red);

start
//co tick
ObjectSet("LiniaNr1", OBJPROP_PRICE1, Bid+8*Point);
Nie sprawdzałem, ale to będzie coś takiego

Edit: Jeszcze przesuwanie w poziomie, funkcja ObjectSet z argumentem OBJPROP_TIME1 równym np. Time[0] używana po nowym barze.
Ostatnio zmieniony 15 kwie 2012, 09:42 przez artur_ar, łącznie zmieniany 1 raz.
Obrazek

ODPOWIEDZ