Dax/Nasdaq Daytrading

Miejsce, gdzie każdy może prowadzić swój własny dziennik gry na FX.
Mistyfikator
Pasjonat
Pasjonat
Posty: 932
Rejestracja: 05 lip 2021, 20:35

Re: Dax/Nasdaq Daytrading

Nieprzeczytany post autor: Mistyfikator »

Czy indeks świec to już coś predefiniowalnego?
Wraz z każdą nową świecą numerki zostają przyporządkowane na OnTick?

Już zastanawiałem się, czy coś trzeba kombinować z dodatkową pętlą if w środku while

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

Re: Dax/Nasdaq Daytrading

Nieprzeczytany post autor: Mistyfikator »

No nic. W testerze dalej otwiera kolejną pozycję po zamknięciu poprzedniej.

Muszę zrobić sobie przerwę od tego i jeszcze raz wszystko przemyślę za parę godzin, bo pewnie nie widzę czegoś oczywistego.

Oczywiście będę niezmiernie wdzięczny za każdą podpowiedź, która mnie nakieruje na rozwiązanie zagadnienia

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

Re: Dax/Nasdaq Daytrading

Nieprzeczytany post autor: ninjaproject »

Mistyfikator pisze:
06 maja 2022, 15:13
Czy indeks świec to już coś predefiniowalnego?
Wraz z każdą nową świecą numerki zostają przyporządkowane na OnTick?

Już zastanawiałem się, czy coś trzeba kombinować z dodatkową pętlą if w środku while
Tak, indeks świecy to zawsze : bieżąca = 0, pierwsza po niej = 1, itd.
Dla EA nie ma potrzeby badać więcej, chyba że się pisze jakieś złożone warunki, które liczą jakiś okres w przeszłości.
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: Dax/Nasdaq Daytrading

Nieprzeczytany post autor: ninjaproject »

Mistyfikator pisze:
06 maja 2022, 15:16
No nic. W testerze dalej otwiera kolejną pozycję po zamknięciu poprzedniej.

Muszę zrobić sobie przerwę od tego i jeszcze raz wszystko przemyślę za parę godzin, bo pewnie nie widzę czegoś oczywistego.

Oczywiście będę niezmiernie wdzięczny za każdą podpowiedź, która mnie nakieruje na rozwiązanie zagadnienia
Kuźwa, wykryłem błąd!
Ty miałeś

Kod: Zaznacz cały

if(S=true)
a to zawsze jest spełnione!
Powinno być

Kod: Zaznacz cały

if(S==true)
albo po prostu

Kod: Zaznacz cały

if(S)
Ja zawsze piszę

Kod: Zaznacz cały

if(S)
albo

Kod: Zaznacz cały

if(!S)
dla bool, więc nie zwróciłem nawet uwagi na to, a ME nie wyrzucił błędu.
Ostatnio zmieniony 06 maja 2022, 16:03 przez ninjaproject, łącznie zmieniany 1 raz.
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: Dax/Nasdaq Daytrading

Nieprzeczytany post autor: ninjaproject »

Mistyfikator_EA.mq4
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.

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

Re: Dax/Nasdaq Daytrading

Nieprzeczytany post autor: Mistyfikator »

ninjaproject pisze:
06 maja 2022, 15:57
Mistyfikator pisze:
06 maja 2022, 15:16
No nic. W testerze dalej otwiera kolejną pozycję po zamknięciu poprzedniej.

Muszę zrobić sobie przerwę od tego i jeszcze raz wszystko przemyślę za parę godzin, bo pewnie nie widzę czegoś oczywistego.

Oczywiście będę niezmiernie wdzięczny za każdą podpowiedź, która mnie nakieruje na rozwiązanie zagadnienia
Kuźwa, wykryłem błąd!
Ty miałeś

Kod: Zaznacz cały

if(S=true)
a to zawsze jest spełnione!
Powinno być

Kod: Zaznacz cały

if(S==true)
albo po prostu

Kod: Zaznacz cały

if(S)
Ja zawsze piszę

Kod: Zaznacz cały

if(S)
albo

Kod: Zaznacz cały

if(!S)
dla bool, więc nie zwróciłem nawet uwagi na to, a ME nie wyrzucił błędu.
Dzięki!

Tego jeszcze nie rozgryzłem, kiedy pisać ==, a kiedy !

Znaczy się, próbowałem i z "==" wcześniej, ale widocznie błąd był gdzieś indziej.


Najlepiej to bym się zapisał na lekcje z MQL4, ale najpierw przejrzę dokumentację jeszcze z kilka razy i przerobię podstawy C++, bo moje błędy wynikają po prostu z niezrozumienia podstaw, braku wiedzy i usiłowania zrobienia czegoś "na szybko".

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

Re: Dax/Nasdaq Daytrading

Nieprzeczytany post autor: Mistyfikator »

PS. Pewnie takie EA powstały już tysiące razy, bo to jest chyba najprostsze, co można napisać.
Ale wklejam kod, jeśli kiedyś ktoś przyjdzie początkujący, żeby sobie przekopiował lub zobaczył, na wszelki wypadek jakby ten załącznik powyżej zniknął:

Kod: Zaznacz cały

//+------------------------------------------------------------------+
//|                                              Mistyfikator_EA.mq4 |
//|                        Copyright 2022, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "MSTFKTR"
#property link      "https://www.mql5.com"
#property version   "1.00"
#property strict

input int SMA1=5;
input int SMA2=30;
input int SL=5;
input int TP=5;
input ENUM_TIMEFRAMES    PERIOD=PERIOD_M1;
input double Lot=0.1;

bool L=false;
bool S=false;

//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---
   
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
  
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
  L=false;S=false;
  
  
  double aStopLoss = Ask - SL*_Point;  
  double bStopLoss = Bid + SL*_Point;
  double aTakeProfit = Ask + TP*_Point;
  double bTakeProfit = Bid - TP*_Point;
  
  aStopLoss=NormalizeDouble(aStopLoss,_Digits);
  bStopLoss=NormalizeDouble(bStopLoss,_Digits);
  aTakeProfit=NormalizeDouble(aTakeProfit,_Digits);
  bTakeProfit=NormalizeDouble(bTakeProfit,_Digits);
  
  double NOW1 = iMA(NULL, PERIOD, SMA1, 0, 0, 0, 1);
  double NOW2 = iMA(NULL, PERIOD, SMA2, 0, 0, 0, 1);
  double PRE1 = iMA(NULL, PERIOD, SMA1, 0, 0, 0, 2);
  double PRE2 = iMA(NULL, PERIOD, SMA2, 0, 0, 0, 2);
  if((NOW1>NOW2)&&(PRE1<PRE2)){L=true;S=false;}
  else
  if((NOW1<NOW2)&&(PRE1>PRE2)){S=true;L=false;}
  else
   {L=false;S=false;}
  
  
  if(OrdersTotal()<1){
  Print("S=",S," L=",L);
  if(L&&Ask>NOW2){
   if(OrderSend(NULL,OP_BUY,Lot,Ask,0,aStopLoss,aTakeProfit,NULL,0,0,clrNONE)<0)
     Print("Zakup nieudany ",GetLastError());
   else
     Print("kupiono za",Ask);}
     
  if(S&&Bid<NOW2){
   if(OrderSend(NULL,OP_SELL,Lot,Bid,0,bStopLoss,bTakeProfit,NULL,0,0,clrNONE)<0) 
     Print("Sprzedaż nieudana ",GetLastError());
   else
     Print("sprzedano za",Bid);}
  
//---
  }
  
  }
//+------------------------------------------------------------------+
Mozna ustawić Timeframe, SL i TP, a także ilu okresowe średnie kroczące zostały wykorzystane jako sygnał wejścia w transakcję.
Wiadomo, samo nie zarobi, ale jeśli ktoś będzie potrafił ustawić właściwe parametry, znaleźć odpowiedni instrument i odpowiednie warunki rynkowe, to czemu nie.
Oczywiście działa dzięki pomocy Ninjaproject ;)

Edit: Testy na S&P500, przy uzyciu powyższych parametrów pokazują, że są plusy tak wąskiego TP.
Przy wyższym ATR na granym TF, EA może otworzyć kolejną pozycję po wzięciu TP. Tak więc EA może wyłapać pewne ekstremalne sytuacje, jak świeca o niespotykanie dużym zasięgu (tzw. wodospad, lub fanga w górę), co za tym idzie widzę szanse na TP>SL nawet przy parametrach mówiących coś innego (tzw. TP "łączony"). Na moje oko lepiej będzie grać na m5, otworzy to szanse na większe profity. Ale oczywiście faza testów sporo powie.

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

Re: Dax/Nasdaq Daytrading

Nieprzeczytany post autor: ninjaproject »

Mistyfikator pisze:
06 maja 2022, 17:42
PS. Pewnie takie EA powstały już tysiące razy, bo to jest chyba najprostsze, co można napisać.
Ale wklejam kod, jeśli kiedyś ktoś przyjdzie początkujący, żeby sobie przekopiował lub zobaczył, na wszelki wypadek jakby ten załącznik powyżej zniknął:

Mozna ustawić Timeframe, SL i TP, a także ilu okresowe średnie kroczące zostały wykorzystane jako sygnał wejścia w transakcję.
Wiadomo, samo nie zarobi, ale jeśli ktoś będzie potrafił ustawić właściwe parametry, znaleźć odpowiedni instrument i odpowiednie warunki rynkowe, to czemu nie.
Oczywiście działa dzięki pomocy Ninjaproject ;)

Edit: Testy na S&P500, przy uzyciu powyższych parametrów pokazują, że są plusy tak wąskiego TP.
Przy wyższym ATR na granym TF, EA może otworzyć kolejną pozycję po wzięciu TP. Tak więc EA może wyłapać pewne ekstremalne sytuacje, jak świeca o niespotykanie dużym zasięgu (tzw. wodospad, lub fanga w górę), co za tym idzie widzę szanse na TP>SL nawet przy parametrach mówiących coś innego (tzw. TP "łączony"). Na moje oko lepiej będzie grać na m5, otworzy to szanse na większe profity. Ale oczywiście faza testów sporo powie.
No to, może jak tak ciasno chcesz, to nie stawiaj TP, tylko napisz, żeby robił OrderClose() jeżeli profit>0.
Wtedy mogą być fajne bonusiki.
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: Dax/Nasdaq Daytrading

Nieprzeczytany post autor: Mistyfikator »

ninjaproject pisze:
06 maja 2022, 18:26

No to, może jak tak ciasno chcesz, to nie stawiaj TP, tylko napisz, żeby robił OrderClose() jeżeli profit>0.
Wtedy mogą być fajne bonusiki.
Aż tak to chyba nie, za dużo straciłoby na spreadach :(
Ale dzięki za podsunięcie pomysłu, na pewno się przyda w przyszłości.

Na razie testy od 27 kwietnia pokazują, że zarabia. Dałem tylko minimalnie większy TP, żeby SL<TP
Nie są to setki%, raczej groszowe sprawy, wiadomo liczy się to, co wydarzy się w perspektywie wielu miesięcy i kilku tradowanych instrumentów.

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

Re: Dax/Nasdaq Daytrading

Nieprzeczytany post autor: Mistyfikator »

Tutaj fragment backtestów. S&P500 ostatni tydzień kwietnia.
Jeżeli uznać, że około 100 transakcji to już wiarygodny materiał statystyczny, to można uwierzyć, że to prawda, co mówią:
Gra wg wskaźnika, który teoretycznie powinien dać przewagę plus odpowiedni money managment powinny dać już możliwość zarabiania w tym kasynie. Niewielką, ale wystarczającą.

Dobre ćwiczenie dla tradera: obserwacja backtestów. Ja dzięki temu wpadłem na pomysł kolejnego EA.
Tym razem znacznie prostszego.
Ale najpierw backtesty indeksów amerykańskich.
Tutaj przecięcie się średnich na m1. SL=5, TP=6:
SP backtest m1.png
Wnioski są dwa:

1. Trzeba będzie zezwolić na zawieranie przeciwnych transakcji w tym samym czasie. Dużo wejść profitowych straconych w związku z limitem jednej transakcji.

2. Pewnie warto przesunąć średnie na wykresie. Na razie nie mam pojęcia jak. Wiem, że jest wartość dla funkcji iMa. Ale to niewystarczająca wiedza. Bo o ile przesunąć średnią, żeby złapać korzystniejsze ceny?
Nie masz wymaganych uprawnień, aby zobaczyć pliki załączone do tego posta.
Ostatnio zmieniony 07 maja 2022, 00:48 przez Mistyfikator, łącznie zmieniany 1 raz.

Zablokowany