Wszystkie pytania dozwolone początkujących programistów

O jezykach programowania w platformach i nie tylko.
Awatar użytkownika
ninjaproject
Maniak
Maniak
Posty: 4944
Rejestracja: 30 lip 2019, 13:15

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

Nieprzeczytany post autor: ninjaproject »

Mistyfikator pisze:
27 kwie 2022, 14:26
Dlaczego wyświetla się komunikat "Zły TP i SL"?

Kod: Zaznacz cały


    if(Ask>SMAm1&&Ask>SMAm5&&Ask>SMAm15&&Ask>SMAm30&&Ask>SMAH1) { OrderSend(NULL,0,Ile,Ask,2.00,Tnij,Bierz,NULL,0,0,clrNONE);} 
    if(Bid<SMAm1&&Bid<SMAm5&&Bid<SMAm15&&Bid<SMAm30&&Bid<SMAH1) { OrderSend(NULL,1,Ile,Bid,2.00,Tnij,Bierz,NULL,0,0,clrNONE);} 
    
     
Dodam, że zmienne Tnij i Bierz mam zadeklarowane w inputs double, poza void, pod property.
Czy chodzi o to, żeby tą deklarowaną wartość dodatkowo odjąć/dodać od ceny otwarcia? Czy MQL4 sam to robi?

A może trzeba zadeklarować _Digits? Ja zrozumieałem, że jest to predefiniowalne...

Jak w takiej sytuacji deklaruje się SL? Bo widzę, że to jeden z argumentów OrderSend?
Czy służy do tego OrderStopLoss?

Będę potrzebował zapisać coś w tym stylu:

1. if ASK >= X, wtedy SL = OpenPrice+Y
2. if SL >= OpenPrice, wtedy OrderSend(NULL,0,Ile,Ask,2.00,Tnij,Bierz,NULL,0,0,clrNONE)


W ogóle jestem początkujący i tutaj pojawia się kolejne pytanie:

Strategia będzie umożliwiała otwarcie więcej niż jednej pozycji (coś w stylu piramidowania), czy w tej sytuacji konieczna jest identyfikacja każdej kolejnej pozycji przy pomocy jakiegoś Ticket, czy Magic Number?

Czy można to po prostu pominąć, jeśli parametry SL będą identyczne dla wszystkich otwartych pozycji (w zasadzie wszystkie parametry poza ceną otwarcia?
Tam je deklarujesz jako zmienne.
SL i TP to mają być konkretne ceny, nie punkty.
Jeżeli np. w inputs zadeklarowałeś SL = 200 pkt, to potrzebujesz policzyć cenę SL zanim ją wsadzisz do OrderSend(), no i nie zapomnij o znormalizowaniu do _Digits .
To samo z TP.

OrderStopLoss() służy do odczytu ceny SL dla istniejącej, lub historycznej pozycji.

PS. Czemu ty sobie nie ściągniesz jakiegokolwiek prostego EA i nie popatrzysz jak to jest zrobione?
Byłoby znacznie szybciej.
Trejder, Mentor/trener, aka. Dadas, fx-technik, obecnie ninjaproject.
Programuję wskaźniki i EA do MetaTrader 4/5.

Mistyfikator
Pasjonat
Pasjonat
Posty: 932
Rejestracja: 05 lip 2021, 20:35

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

Nieprzeczytany post autor: Mistyfikator »

Jak zadeklarować globalne SL i TP, dla całego EA w takim razie?
Na razie widzę SL i TP tylko jako argument dla otwieranej pozycji

Mistyfikator
Pasjonat
Pasjonat
Posty: 932
Rejestracja: 05 lip 2021, 20:35

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

Nieprzeczytany post autor: Mistyfikator »

ninjaproject pisze:
27 kwie 2022, 14:47

PS. Czemu ty sobie nie ściągniesz jakiegokolwiek prostego EA i nie popatrzysz jak to jest zrobione?
Byłoby znacznie szybciej.
Masz rację, ale co nie ściagałem do tej pory było zupełnie inaczej zrobione.

Ale spoko, jakie EA nauczy mnie funkcji transakcji?

Co do autobreakeven, mam EA zainstalowane, chciałem tam zajrzeć ale ma chyba jakieś zabezpieczenia, że metaeditor tego nie widzi???
Ostatnio zmieniony 27 kwie 2022, 15:27 przez Mistyfikator, łącznie zmieniany 1 raz.

Awatar użytkownika
ninjaproject
Maniak
Maniak
Posty: 4944
Rejestracja: 30 lip 2019, 13:15

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

Nieprzeczytany post autor: ninjaproject »

UniversalMACrossEA.mq4
To jest trochę w starszej konwencji, ale się kompiluje bez błędów.
Nie masz wymaganych uprawnień, aby zobaczyć pliki załączone do tego posta.
Trejder, Mentor/trener, aka. Dadas, fx-technik, obecnie ninjaproject.
Programuję wskaźniki i EA do MetaTrader 4/5.

Awatar użytkownika
ninjaproject
Maniak
Maniak
Posty: 4944
Rejestracja: 30 lip 2019, 13:15

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

Nieprzeczytany post autor: ninjaproject »

Mistyfikator pisze:
27 kwie 2022, 15:09
Jak zadeklarować globalne SL i TP, dla całego EA w takim razie?
Na razie widzę SL i TP tylko jako argument dla otwieranej pozycji
SL i TP zwykle deklarujesz jako input double SL, input double TP.
Może też być input int.
Dla ułatwienia podaje się wartości w punktach.
Potem się przelicza na cenę, normalizuje do _Digits i wtedy zapodaje do OrderSend(), albo OrderModify().
Trejder, Mentor/trener, aka. Dadas, fx-technik, obecnie ninjaproject.
Programuję wskaźniki i EA do MetaTrader 4/5.

Mistyfikator
Pasjonat
Pasjonat
Posty: 932
Rejestracja: 05 lip 2021, 20:35

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

Nieprzeczytany post autor: Mistyfikator »

ninjaproject pisze:
27 kwie 2022, 15:22
UniversalMACrossEA.mq4
To jest trochę w starszej konwencji, ale się kompiluje bez błędów.
Dzięki, będę dzisiaj oglądał

Co do autobreakeven, mam EA zainstalowane, chciałem tam zajrzeć ale ma chyba jakieś zabezpieczenia, że metaeditor tego nie widzi???

Mistyfikator
Pasjonat
Pasjonat
Posty: 932
Rejestracja: 05 lip 2021, 20:35

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

Nieprzeczytany post autor: Mistyfikator »

ninjaproject pisze:
27 kwie 2022, 15:26

SL i TP zwykle deklarujesz jako input double SL, input double TP.
Może też być input int.
Dla ułatwienia podaje się wartości w punktach.
Potem się przelicza na cenę, normalizuje do _Digits i wtedy zapodaje do OrderSend(), albo OrderModify().
Okej, to postaram się dzisiaj zrobić.

Zastanawia mnie, czy program od razu widzi tak zadeklarowane i przeliczone na punkty zmienne, jeśli podam je jako argument dla OrderSend?

Awatar użytkownika
ninjaproject
Maniak
Maniak
Posty: 4944
Rejestracja: 30 lip 2019, 13:15

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

Nieprzeczytany post autor: ninjaproject »

Mistyfikator pisze:
27 kwie 2022, 15:28
ninjaproject pisze:
27 kwie 2022, 15:22
UniversalMACrossEA.mq4
To jest trochę w starszej konwencji, ale się kompiluje bez błędów.
Dzięki, będę dzisiaj oglądał

Co do autobreakeven, mam EA zainstalowane, chciałem tam zajrzeć ale ma chyba jakieś zabezpieczenia, że metaeditor tego nie widzi???
Czytać i edytować możesz jedynie pliki źródłowe mq4.
Pliki skompilowane ex4 nie są edytowalne.
Trejder, Mentor/trener, aka. Dadas, fx-technik, obecnie ninjaproject.
Programuję wskaźniki i EA do MetaTrader 4/5.

Awatar użytkownika
ninjaproject
Maniak
Maniak
Posty: 4944
Rejestracja: 30 lip 2019, 13:15

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

Nieprzeczytany post autor: ninjaproject »

Mistyfikator pisze:
27 kwie 2022, 15:31
ninjaproject pisze:
27 kwie 2022, 15:26

SL i TP zwykle deklarujesz jako input double SL, input double TP.
Może też być input int.
Dla ułatwienia podaje się wartości w punktach.
Potem się przelicza na cenę, normalizuje do _Digits i wtedy zapodaje do OrderSend(), albo OrderModify().
Okej, to postaram się dzisiaj zrobić.

Zastanawia mnie, czy program od razu widzi tak zadeklarowane i przeliczone na punkty zmienne, jeśli podam je jako argument dla OrderSend?
W obecnej konwencji zmiennych z inputs nie można modyfikować. Trzeba sobie zadeklarować inną zmienną, którą potem zapodasz do OrderSend().
np.:

Kod: Zaznacz cały

input int         StopLoss_pts = 200;

double StopLoss;

void OnTick()
 {
 // dla OP_BUY
 StopLoss=NormalizeDouble(Bid-StopLoss_pts*_Point,_Digits); 
 // zmienną StopLoss zapodajesz do OrderSend()
 }
 
 // PS. To nadal nie gwarantuje, że rzeczywista odległość SL będzie dokładnie taka, jaką chcesz.


Trejder, Mentor/trener, aka. Dadas, fx-technik, obecnie ninjaproject.
Programuję wskaźniki i EA do MetaTrader 4/5.

Mistyfikator
Pasjonat
Pasjonat
Posty: 932
Rejestracja: 05 lip 2021, 20:35

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

Nieprzeczytany post autor: Mistyfikator »

ninjaproject pisze:
27 kwie 2022, 15:22
UniversalMACrossEA.mq4
To jest trochę w starszej konwencji, ale się kompiluje bez błędów.

Pięknie napisane, jestem pod wrażeniem

ODPOWIEDZ