Symulacja ręczna na MT4

O jezykach programowania w platformach i nie tylko.
lekarz
Gaduła
Gaduła
Posty: 106
Rejestracja: 06 maja 2010, 07:53

Symulacja ręczna na MT4

Nieprzeczytany post autor: lekarz »

Ponieważ chciałem przeprowadzić symulacje ręczną na platformie MT4, a obecne na rynku mi nie odpowiadają (darmowe nie posiadają odpowiednich dla mnie funkcji, a płatne są za drogie) postanowiłem stworzyć własny skrypt. Jest on już na dość zaawansowanym etapie. Ale mam problem.
Chciałbym zrobić listę otwartych zleceń. Taką przewijaną aby można było śledzić dużą ilość zleceń. Problem w tym że nie mam pomysłu jak to zrobić.
Prosiłbym kolegów o jakieś naprowadzenie lub przykład:)

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

Re: Symulacja ręczna na MT4

Nieprzeczytany post autor: ninjaproject »

Lista otwartych zleceń jest w MT4 w Terminalu na dole.
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: Symulacja ręczna na MT4

Nieprzeczytany post autor: ninjaproject »

Natomiast, listę tradów otwartych wywołujemy tak:

Kod: Zaznacz cały


   for(i=0; i<OrdersTotal(); i++)
     {
    if(OrderSelect(i, SELECT_BY_POS,MODE_TRADES))
     {
     Funkcja_Wykonawcza();
     }
     }
Trejder, Mentor/trener, aka. Dadas, fx-technik, obecnie ninjaproject.
Programuję wskaźniki i EA do MetaTrader 4/5.

lekarz
Gaduła
Gaduła
Posty: 106
Rejestracja: 06 maja 2010, 07:53

Re: Symulacja ręczna na MT4

Nieprzeczytany post autor: lekarz »

@ninjaproject to wszystko ja wiem. Pytanie jak stworzyć przewijaną listę.

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

Re: Symulacja ręczna na MT4

Nieprzeczytany post autor: ninjaproject »

A, to normalnie w MQL4 nie ma takiej opcji. Możesz skorzystać z MT4GUI:
https://fx1.net/products.php
Trejder, Mentor/trener, aka. Dadas, fx-technik, obecnie ninjaproject.
Programuję wskaźniki i EA do MetaTrader 4/5.

lekarz
Gaduła
Gaduła
Posty: 106
Rejestracja: 06 maja 2010, 07:53

Re: Symulacja ręczna na MT4

Nieprzeczytany post autor: lekarz »

A jak zrobić żeby algorytm był wykonywany nie tylko w momencie Ticku-u ale w każdej dowolnej chwili?

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

Re: Symulacja ręczna na MT4

Nieprzeczytany post autor: ninjaproject »

W MQL4 masz funkcję OnTimer().
https://docs.mql4.com/basis/function/events
Z tym, że operacji na transakcjach nie można wykonać OnTimer().
Trejder, Mentor/trener, aka. Dadas, fx-technik, obecnie ninjaproject.
Programuję wskaźniki i EA do MetaTrader 4/5.

lekarz
Gaduła
Gaduła
Posty: 106
Rejestracja: 06 maja 2010, 07:53

Re: Symulacja ręczna na MT4

Nieprzeczytany post autor: lekarz »

Ok. Zabieram się za kodowanie. W międzyczasie wyskoczył jeszcze jeden problem. Otóż nie wiem dlaczego ale kurs wyświetla mi się czasami jako bardzo długa liczba po przecinku. Co zrobić żeby tak nie było i jednocześnie, abym mógł spokojnie operować na różnych instrumentach bez zmiany kodu (patrz załącznik)?
Nie masz wymaganych uprawnień, aby zobaczyć pliki załączone do tego posta.

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

Re: Symulacja ręczna na MT4

Nieprzeczytany post autor: ninjaproject »

Kod: Zaznacz cały

NormalizeDouble(double, Digits);
Bez tego też ci EA pozycji nie otworzy, ani SL, ani TP.
A, dla string:

Kod: Zaznacz cały

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

lekarz
Gaduła
Gaduła
Posty: 106
Rejestracja: 06 maja 2010, 07:53

Re: Symulacja ręczna na MT4

Nieprzeczytany post autor: lekarz »

NormalizeDouble(double, Digits);
z tego co pamiętam to określa ilość miejsc po przecinku, a więc nie do końca rozwiązuje to mój problem bo mogą być kursy z miejscami po przecinku w różnych miejscach:
1. 12222.0
2. 0.9888
Chyba, że mogę np. zostawić sobie np. dla EURUSD powiedzmy 10 miejsc po przecinku i to przejdzie?

ODPOWIEDZ