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 »

Patrząc na powyższą strategię, która daje przewagę w konsolidacjach, ale pomija momenty "rajdów" utwierdzam się w przekonaniu, że trzeba działać dwutorowo:

Jedna strategia działająca w konsolidacjach, druga w trendach. Ot tak, żeby nie marnować czasu życia.

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

Re: Dax/Nasdaq Daytrading

Nieprzeczytany post autor: Mistyfikator »

Nieznaczna przewaga to już przewaga. Zysk nie powala, bo test zrobiony na najniższym możliwym wolumenie, spokojnie można grać 10-krotnie, a nawet 30-krotnie wyższą stawką. Wtedy niecałe 3 stówki w dwa tygodnie na jednym instrumencie? Do tego dojdzie NASDAQ plus GOLD i dwa majorsy? Takie coś może mieć już sens i jeżeli okaże się realne, to zyski z FX mogłyby stać się już znaczącym składnikiem domowego budżetu.
Stats Backtest S&P500.png
Oczywiście trzeba brać pod uwagę, że prawdziwe statystyki wyjdą dopiero po kilku tysiącach transakcji.
W związku z tym trzeba koniecznie znaleźć dodatkową przewagę
Nie masz wymaganych uprawnień, aby zobaczyć pliki załączone do tego posta.

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

Re: Dax/Nasdaq Daytrading

Nieprzeczytany post autor: Mistyfikator »

NASDAQ wygląda o wiele lepiej w tych testach:
BackTest NASDAQ100.png
Dodatkowo gra większym wolumenem (test na 0.01) i może to już mieć sens


Edit: patrząc na wejścia, trochę spóźnione sygnały daje ta strategia.
Trzeba wchodzić od razu jak cena przebije SMA, a nie czekać na średnią. Tyle w temacie.
MT4 daje możliwość reakcji na każdy tick, a powyższe EA czeka niepotrzebnie aż dwie świece i wtedy cena zdąży nieraz podejść za wysoko/za nisko.

W ogóle to dużo tutaj jest szczegółów do dopracowania, ale pozostałe warunki, czyli te zwiększające przewagę o kolejne promile, zostają do doprecyzowania. Choć jeden, ten najważniejszy, będzie zadziwiająco łatwy do zapisania.
Nie masz wymaganych uprawnień, aby zobaczyć pliki załączone do tego posta.

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

Re: Dax/Nasdaq Daytrading

Nieprzeczytany post autor: Mistyfikator »

Kolejny dzień oglądania "symulacji" przynosi nowe wnioski.
Przecięcie się średnich to jednak strategia bardziej na wyższy TF, na M1 i M5 potrzeba szybszych sygnałów.

Średnie kroczące tak, ale tylko w odniesieniu do trendu wyższego rzędu.
Granie nawet na m1, czy m5, ale otwierając pozycje zgodne z trendem wyższego rzędu - to, przynajmniej wg backtestów daje dodatkowe kilka procent przewagi, ale raczej są to wartości poniżej 5%. A to już powinno zmienić postać rzeczy.

Na poziomie mikro natomiast, warunek wejścia mógłby być znacznie prostszy.
Różnica pomiędzy obecną ceną, a ceną otwarcia świecy.
Z tym, że ten warunek można rozłożyć również na różne opcje:
Np kiedy jest rozłożony na 3 ostatnie świece m1.

Gdzieś już słyszałem taką strategię :D :D :D


BTW nie będę się czaił na DEMO. Przelew poszedł, skoro strategia wg testów pozwala nie wyzerować nawet konta rzędu 200PLN, to szkoda nie spróbować inauguracji nowego rozdziału w moim tradingu. Widzę, że takie strategie mają pewien znaczący plus: mianowicie nie angażują emocjonalnie tradera w wydarzenia na rynkach. A to jest kolejna przewaga

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

Re: Dax/Nasdaq Daytrading

Nieprzeczytany post autor: Mistyfikator »

Wczoraj zamieściłem kawałek swojego kodu w dziale "Programowanie" i jestem winien sprostowanie.
Testy na demo i backtesty pokazały, że mój robot zawiera tylko transakcje sprzedaży.

Szukałem dzisiaj przyczyny tego stanu rzeczy i okazało się, że problem był spowodowany niewłaściwym zagnieżdzeniem warunków.
Tak więc poprawiłem temat:

Kod: Zaznacz cały


//+------------------------------------------------------------------+
//|                                                 DlugoscSwiec.mq4 |
//|                                                          MSTFKTR |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "MSTFKTR"
#property link      "https://www.mql5.com"
#property version   "1.00"
#property strict

input int SMA=30;
input int SL=1500;
input int TP=3050;
input ENUM_TIMEFRAMES    PERIOD=PERIOD_M30;
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()
  {
 
  if((OrdersTotal()>=1)&&(OrderType()==OP_BUY))
  {
  for(int i=0;i<OrdersTotal();i++){
  if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES)){
  Print("wybrano pozycję nr",i);
  double PoziomBE = OrderOpenPrice()+5;
  Print("poziom BE to",PoziomBE);
  if((Ask>OrderOpenPrice()+5))
  {double NEW_SL=OrderOpenPrice()+2;
  if(OrderModify(OrderTicket(),OrderOpenPrice(),NEW_SL,OrderTakeProfit(),0,clrNONE))
  {Print("przestawiono SL na poziom",NEW_SL);}
  else Print("czekamy na poziom BE",GetLastError());
  }
  }
  else
  Print("Czekamy na wybór pozycji ",OrderTicket(),". Błąd = ",GetLastError());
  
  }
  }
  
  if((OrdersTotal()>=1)&&(OrderType()==OP_SELL))
  {
  for(int i=0;i<OrdersTotal();i++){
  if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES)){
  Print("wybrano pozycję nr",i);
  double PoziomBE = OrderOpenPrice()-5;
  Print("poziom BE to",PoziomBE);
  if((Ask>OrderOpenPrice()-5))
  {double NEW_SL=OrderOpenPrice()-2;
  if(OrderModify(OrderTicket(),OrderOpenPrice(),NEW_SL,OrderTakeProfit(),0,clrNONE))
  {Print("przestawiono SL na poziom",NEW_SL);}
  else Print("czekamy na poziom BE",GetLastError());
  }
  }
  else
  Print("Czekamy na wybór pozycji ",OrderTicket(),". Błąd = ",GetLastError());
  
  }
 
  }
  
   if(OrdersTotal()<1){
   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 SMA_M30 = iMA(NULL, PERIOD_M30, SMA, 0, 0, 0, 1);
  Print("SMA=",SMA_M30);
  if(Ask>SMA_M30){Print("dozwolone jest kupno");
  if((Ask>iLow(NULL, PERIOD_M5, 0)+5)&&(Ask>SMA_M30)){L=true;S=false;}
  else{L=false;S=false;}
  if(L){
   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(Bid<SMA_M30){Print("dozwolona jest sprzedaż");
  if((Bid<iHigh(NULL, PERIOD_M5, 0)-5)&&(Bid<SMA_M30)){S=true;L=false;}
  else{L=false;S=false;}
  }
  
  
 
  
  
  Print("S=",S," L=",L);
  Print("Ask+1000=",Ask+10);
  
     
  if(S){
   if(OrderSend(NULL,OP_SELL,Lot,Bid,0,bStopLoss,bTakeProfit,NULL,0,0,clrNONE)<0) 
     Print("Sprzedaż nieudana ",GetLastError());
   else
     Print("sprzedano za",Bid);}
  
  
//---
  }
//---
   
  }
//+------------------------------------------------------------------+
iOpen zamienione na iHigh oraz iLow.
Jak pisałem, w obecnym kształcie to nie zarobi, co zresztą udowadnia konto demo i backtesty.
Potrzebne są bardziej złożone, dające przewagę warunki.

Kolejnym istotnym warunkiem jest wejście wtedy, kiedy nakazuje AT.
Czyli sprzedajemy na korektach w spadkowym, kupujemy na korektach we wzrostowym.

Droga jeszcze daleka, ale wejście na BE będzie już sporym osiągnięciem.
Skoro same średnie kroczące pozwoliły wejść na okolice BE?
Wprowadzę dodatkowe średnie kroczące, tym razem testowane będą warunki w stylu:
Sprzedaż wtedy gdy SMA30>Bid ale SMA1<Bid.
Nie obędzie się także bez badania, czy ostatnie świece były wzrostowe, czy spadkowe.

Dodam, że strategia nie będzie opierać się na klasycznym rozumieniu AT w postaci formacje itp. Bardziej chodzi o skupienie się na aktualnej sytuacji na wykresie z uwzględnieniem trendu średnioterminowego

Zachęcam do podzielenia się swoimi przemyśleniami, jeżeli ktokolwiek bardziej doświadczony szedł podobnym tropem.

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

Re: Dax/Nasdaq Daytrading

Nieprzeczytany post autor: ninjaproject »

No, ci bardziej doświadczeni się tylko uśmiechają, bo ty i tak musisz to sam przeżyć...
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:
10 maja 2022, 15:16
No, ci bardziej doświadczeni się tylko uśmiechają, bo ty i tak musisz to sam przeżyć...

Akurat to możesz sobie darować, bo tak się składa, że mam internet i google, więc widzę jakie są opinie na temat skutecznych EA.

Ale nie zaszkodzi się zapytać, może ktos zyczliwy mnie nakieruje w jakiś sposób, bo nie liczę że ktokolwiek poda mi system.
Tak samo zresztą postąpiłbym i ja, mając zarabiający system. Wskazówki tak, gotowy przepis nie.

Ale statystyki z konta podam chętnie, jak napiszę już to, co mam na myśli.

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

Re: Dax/Nasdaq Daytrading

Nieprzeczytany post autor: Mistyfikator »

Moje zdanie jest takie, że strategię można zaprogramować. A nawet trzeba.
Kwestia jest taka, że warto umieć zrobić to samodzielnie. Bo sprawa jest dynamiczna, wszystko się zmienia, warunki handlowe również.
Dlatego bez MQL4 się nie obejdzie. No chyba, że ktoś woli siedzieć przed monitorem i sam pilnować słupków.

Skoro trader powinien mieć sprecyzowane wszystkie swoje ruchy i musi postępować według zasad?

Maszyna również może pilnować tego, czy wartości maleją, czy rosną.
Inny temat, że nie jest łatwo zaprogramować coś takiego. I raczej trzeba wyłapać charakterystykę konkretnego instumentu.

Wychodzi na to, że trading jest o wiele bardziej złożony.
Bo jak wytłumaczyć to, że są opinie że EA prędzej czy później wyzeruje depozyt?

Przecież programując EA mamy wpływ na mnóstwo czynników: od money managmentu po rozpoznanie trendu.
Są narzędzia,które potrafią określić wartości poszczególnych świec, rozłożone w czasie. Można przerwać handel po X strat.
Na pewno EA, od strony technicznej może mieć dostęp do tych samych danych co trader.
A fundamenty pominę, zależy mi na tym co jest, a nie to co moim zdaniem powinno być.

Jedno jest pewne: dużo zależy od parametrów.
I tu pojawia się następująca kwestia: czy parametry MM powinny zostać obliczone przez EA na podstawie wykresu, czy mają zostać określone jako inputs przez tradera?
Coraz bardziej prawdopodobna wydaje się mi ta pierwsza wersja. Oznaczać to będzie dodatkową funkcję mojego EA.
Pracy jest dużo, szkoda że nie zająłem się tym jak miałem więcej czasu, bo obecnie mogę poświęcić na temat 1-2 godziny dziennie. A testy są jednak czasochłonne...

Podsumowując, zgadzam się z tym: sam muszę się przekonać.
Nie spodziewałem się, że temat programowania EA jest aż tak pasjonujący.
Zejdzie się trochę, ale będę tworzył z entuzjazmem

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

Re: Dax/Nasdaq Daytrading

Nieprzeczytany post autor: ninjaproject »

Kryterium Kellego (Kelly Criterion) w zastosowaniu do tradingu (nie zapomnieć o dźwigni jako koszt).
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 »

Są argumenty za tym, żeby pozwolić EA obliczać wielkość pozycji i poziom SL.
Na razie będzie to jednak tylko limit SL, którego nie wolno przekroczyć
Ale ostateczna decyzja jeszcze nie jest podjęta.

Nie ma sensu zresztą mówić o ostatecznym kształcie czegokolwiek. Testy na demo i backtesty powiedzą więcej.
Dzisiaj strategia, która wykorzystuje średnie SMA30 na H1 i H4. Kupuje, gdy cena jest nad H4, ale pod H1. Sprzedaje w odwrotnej sytuacji.
Dodatkowy argument wejścia to dwie świece m1 wzrostowe lub spadkowe. TP = 2SL, obliczany na podstawie wykresu, gdzie wchodzimy w transakcję tylko, jeśli możliwe jest uzyskanie SL w wielkości max 50 pipsów na 0.1 lota. To ze względów oszczędnościowych, coby nie przepuszczać za wiele na jednym SL. W praktyce, SL-ki mogą być znacznie ciaśniejsze.

Testy idą ślamazarnie wolno. A na obecnym wykresie NASDAQ nie ma sygnału, więc zostawiamy do jutra, może coś się okaże.

Prosta strategia, nie oczekuję po niej za wiele.
Bardziej rajcuje mnie fakt napisania kolejnego EA, kodu nie wklejam bo nie przetestowane jeszcze.

Zresztą, to jest co najwyżej część czegoś większego.
Strategia docelowo ma zostać wzbogacona o wskaźniki typu ACC i o funkcję piramidowania i przesuwania na BE w ekstremalnych sytuacjach.
Na razie piszę sobie pojedyncze prościutkie EA, żeby sprawdzić czy te mechanizmy zadziałają na wykresie NASDAQ

Ale wiadomo, jestem na początku tej drogi i trzeba mieć świadomość, że całkowita automatyzacja profitowego handlu to jest zadanie arcytrudne. Nie obejdzie się bez sprawowania pieczy nad parametrami. Tu bardziej chodzi o to, aby EA uodporniła mój trading na niezgodne z sygnałami wejścia


*******

No i oczywiście nie przetestuję tego, nie wiem jakim cudem wcześniej backtesty działały mi ze zmiennymi opartymi na różnym TF......
Nie czyta wartości m1
Wielka szkoda
Cóż, zostaje czekać na wyniki demo.

Przyjdzie poczekać kawałek, bo średnia H1 nisko pod ceną
NASDAQ100
Przynajmniej taki robot prędko nie kupi w spadkowym i nie zacznie łapać noży

Zablokowany