Czat GTP - kod

O jezykach programowania w platformach i nie tylko.
Online
DuzyGracz
Stały bywalec
Stały bywalec
Posty: 59
Rejestracja: 23 mar 2020, 12:14

Czat GTP - kod

Nieprzeczytany post autor: DuzyGracz »

Cześć,

wszyscy w koło zachwycają się czatem GTP z ciekawości założyłem konto i oto efekty.

Pierwsze polecenie:
Jeśli 3 świeczki pod rząd na wykresie H1 są spadkowe to otwiera pozycję sprzedaży z TP 20 pips i SL 500 pips

Kod wygenerowany pod MT5:

Kod: Zaznacz cały

void OnStart()
{
   // Zmienna przechowująca informację o kierunku otwierania pozycji
   int direction;

   // Pobieranie danych o ostatniej trzeciej świecy
   int barIndex = iBarShift(NULL, PERIOD_H1, 2);
   double openPrice = iOpen(NULL, SYMBOL, PERIOD_H1, barIndex);
   double closePrice = iClose(NULL, SYMBOL, PERIOD_H1, barIndex);

   // Sprawdzanie, czy świeca jest spadkowa
   if (closePrice < openPrice)
   {
      // Pobieranie danych o drugiej świecy
      barIndex = iBarShift(NULL, PERIOD_H1, 1);
      openPrice = iOpen(NULL, SYMBOL, PERIOD_H1, barIndex);
      closePrice = iClose(NULL, SYMBOL, PERIOD_H1, barIndex);

      // Sprawdzanie, czy świeca jest spadkowa
      if (closePrice < openPrice)
      {
         // Pobieranie danych o pierwszej świecy
         barIndex = iBarShift(NULL, PERIOD_H1, 0);
         openPrice = iOpen(NULL, SYMBOL, PERIOD_H1, barIndex);
         closePrice = iClose(NULL, SYMBOL, PERIOD_H1, barIndex);

         // Sprawdzanie, czy świeca jest spadkowa
         if (closePrice < openPrice)
         {
            direction = OP_SELL;
         }
      }
   }

   // Otwieranie pozycji sprzedaży
   if (direction == OP_SELL)
   {
      OrderSend(SYMBOL, OP_SELL, MarketInfo(SYMBOL, MODE_LOTSIZE), Ask, 3, Ask - 20 * Point, Ask + 500 * Point, "My Order #1", 16384, 0, Green);
   }
}
Druga komenda już bardziej na hardcorze:
Napisz mi automat do gry na forxie

Kod:

Kod: Zaznacz cały

void OnStart()
{
   // Zmienna przechowująca informację o kierunku otwierania pozycji
   int direction = 0;

   // Pobieranie danych o aktualnej sytuacji na rynku
   double currentPrice = Ask;
   double movingAverage = iMA(NULL, 0, 14, 0, MODE_SMA, PRICE_CLOSE, 0);
   double relativeStrengthIndex = iRSI(NULL, 0, 14, PRICE_CLOSE, 0);

   // Analiza sytuacji na rynku i ustalanie kierunku otwierania pozycji
   if (currentPrice > movingAverage && relativeStrengthIndex > 50)
   {
      direction = OP_BUY;
   }
   else if (currentPrice < movingAverage && relativeStrengthIndex < 50)
   {
      direction = OP_SELL;
   }

   // Otwieranie pozycji kupna
   if (direction == OP_BUY)
   {
      double lots = MarketInfo(SYMBOL, MODE_LOTSIZE);
      double bid = Bid;
      double takeProfit = bid + 20 * Point;
      double stopLoss = bid - 50 * Point;

      if(OrderSend(SYMBOL, OP_BUY, lots, bid, 3, stopLoss, takeProfit, "My Order #1", 16384, 0, Green) < 0)
         Print("Nie można otworzyć pozycji kupna. Kod błędu: ", GetLastError());
   }

   // Otwieranie pozycji sprzedaży
   if (direction == OP_SELL)
   {
      double lots = MarketInfo(SYMBOL, MODE_LOTSIZE);
      double ask = Ask;
      double takeProfit = ask - 20 * Point;
      double stopLoss = ask + 50 * Point;

      if(OrderSend(SYMBOL, OP_SELL, lots, ask, 3, stopLoss, takeProfit, "My Order #1", 16384, 0, Green) < 0)
         Print("Nie można otworzyć pozycji sprzedaży. Kod błędu: ", GetLastError());
   }
}
Plus wyjaśnienie od czat GTP: Kod ten tworzy automat, który analizuje rynek i otwiera pozycję kupna, jeśli cena jest wyższa od średniej.

Nie znam się na programowaniu, więc nie ocenię czy to jest coś warte.
Wrzucam w ramach ciekawostki ogólnie jestem zdumiony tym co potrafi to narzędzie... szykują się ciekawe czasy.
1% risk.

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

Re: Czat GTP - kod

Nieprzeczytany post autor: ninjaproject »

DuzyGracz pisze:
08 lut 2023, 12:20
Cześć,

wszyscy w koło zachwycają się czatem GTP z ciekawości założyłem konto i oto efekty.

Pierwsze polecenie:
Jeśli 3 świeczki pod rząd na wykresie H1 są spadkowe to otwiera pozycję sprzedaży z TP 20 pips i SL 500 pips

Kod wygenerowany pod MT5: Druga komenda już bardziej na hardcorze:
Napisz mi automat do gry na forxie

Kod:
Plus wyjaśnienie od czat GTP: Kod ten tworzy automat, który analizuje rynek i otwiera pozycję kupna, jeśli cena jest wyższa od średniej.

Nie znam się na programowaniu, więc nie ocenię czy to jest coś warte.
Wrzucam w ramach ciekawostki ogólnie jestem zdumiony tym co potrafi to narzędzie... szykują się ciekawe czasy.
Przede wszystkim, to w MT5 te kody nie będą działać w ogóle.
Te kody mogą działać jedynie w MT4, ale to są bardzo podstawowe kody, które nie biorą pod uwagę bardzo wielu istotnych czynników, które trzeba sprawdzać. I raczej nie będą działać nawet w MT4, bo OrderSend() nie normalizuje cen.


A tak poza tym, to GPT niczego ci nie napisał, tylko ci zapodał to co znalazł w swoich bazach danych, czyli w internecie. Sprawdzałem tego GPT, i on niczego szczególnego nie potrafi.

PS. I jeszcze jeden błąd jest w tych kodach!
iBarShift() jest błędnie napisany!

PPS. I w ogóle tam są same błędy!!!
On sprzedaje po cenie Ask... LOL!!!
I liczy SL i TP jak dla zlecenia BUY!!!


Tak ten pierwszy kod powinien wyglądać w bardzo podstawowej formie:

Kod: Zaznacz cały


void OnStart()
{
   // Zmienna przechowująca informację o kierunku otwierania pozycji
   int direction;
   // Zmienna przechowująca informację o symbolu instrumentu
   string SYMBOL =_Symbol;

   // Pobieranie danych o ostatniej trzeciej świecy
   int barIndex = 2;
   double openPrice = iOpen(SYMBOL, PERIOD_H1, barIndex);
   double closePrice = iClose(SYMBOL, PERIOD_H1, barIndex);

   // Sprawdzanie, czy świeca jest spadkowa
   if (closePrice < openPrice)
   {
      // Pobieranie danych o drugiej świecy
      barIndex = 1;
      openPrice = iOpen(SYMBOL, PERIOD_H1, barIndex);
      closePrice = iClose(SYMBOL, PERIOD_H1, barIndex);

      // Sprawdzanie, czy świeca jest spadkowa
      if (closePrice < openPrice)
      {
         // Pobieranie danych o pierwszej świecy
         barIndex = 0;
         openPrice = iOpen(SYMBOL, PERIOD_H1, barIndex);
         closePrice = iClose(SYMBOL, PERIOD_H1, barIndex);

         // Sprawdzanie, czy świeca jest spadkowa
         if (closePrice < openPrice)
         {
            direction = OP_SELL;
         }
      }
   }

   // Otwieranie pozycji sprzedaży
   if (direction == OP_SELL)
   {
   // Zmienna przechowująca informację o cenie sprzedaży
   double SellPrice = Bid;
   // Zmienna przechowująca informację o cenie stop loss
   double SLPrice = NormalizeDouble(Ask+20*_Point,_Digits);
   // Zmienna przechowująca informację o cenie take profit
   double TPPrice = NormalizeDouble(Ask-20*_Point,_Digits);
   // Zmienna przechowująca informację o numerze zlecenia
   int ticket;
      ticket=OrderSend(SYMBOL, OP_SELL, MarketInfo(SYMBOL, MODE_LOTSIZE), SellPrice, 3, SLPrice, TPPrice, "My Order #1", 16384, 0, Green);
   // tu należy sprawdzić wynik OrderSend():
      
                    if(ticket<=0) 
                     {
                    Print("Sell OrderSend was unsuccessful. Error: ",GetLastError());
                     }
                    else
                     {
                    Print("Sell OrderSend was successful!");
                     }
   }
}
Oczywiście, należałoby jeszcze wyrzucić takie zmienne jak:
TPPoints, SLPoints, Lot, Slippage, Comment, i MagicNumber.
Przez "wyrzucić" mam na myśli wyodrębnienie ich w sekcji ogólnej jako extern, albo input.

Reasumując, ten GPT dostaje pałę z zadania!
Trejder, Mentor/trener, aka. Dadas, fx-technik, obecnie ninjaproject.
Programuję wskaźniki i EA do MetaTrader 4/5.

Online
DuzyGracz
Stały bywalec
Stały bywalec
Posty: 59
Rejestracja: 23 mar 2020, 12:14

Re: Czat GTP - kod

Nieprzeczytany post autor: DuzyGracz »

Zdaję sobie sprawę z tego nie mam zamiaru nawet tego testować.
Po prostu jestem pełen podziwu dla tego narzędzia, które dopiero jest w fazie testów. Skoro już teraz coś takiego potrafi to co będzie za kilka lat...
1% risk.

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

Re: Czat GTP - kod

Nieprzeczytany post autor: ninjaproject »

DuzyGracz pisze:
08 lut 2023, 13:48
Zdaję sobie sprawę z tego nie mam zamiaru nawet tego testować.
Po prostu jestem pełen podziwu dla tego narzędzia, które dopiero jest w fazie testów. Skoro już teraz coś takiego potrafi to co będzie za kilka lat...
Ale ten bot niczego nie potrafi!
Przede wszystkim, nie potrafi myśleć - tobie się tylko wydaje, że jest inteligentny, ale to jest tylko złudzenie, Złudzenie polega na sposobie podania szukanej informacji, który sprawia wrażenie inteligencji.
Owszem, do pewnych celów to może być przydatne, ale zauważ, że bot tobie zapodał rozwiązania, których nie przetestował na danej platformie i jeszcze ci powiedział "autorytatywnie", że to jest do MT5.
I popełnił podstawowe błędy, czyli wykazał się brakiem znajomości MQL4/5.
Bot wyszukał jakieś istniejące już kody i tobie zapodał w formie sprawiającej wrażenie, że to bot je stworzył.
Teraz pomyśl, co by było, gdyby ktoś naprawdę zaufał takiemu botowi w jakichś poważnych kwestiach?

Poza tym, to ja to sprawdzałem.
GPT zapodał mi kod, a ja mu odpowiedziałem, że ten kod jest nieprawidłowy, że nie działa, to GPT zapodał nieco inny, ale też niepoprawny, i potem się zamotał, i mi powiedział, że za dużo zapytań zadaję, i żebym zapauzował.
W innym wypadku poprosiłem o konwersję prostego kodu Pinescript na MQL4, to on mi zwrócił dokładnie ten sam kod w Pinescript twierdząc, że to jest MQL4, i tak kilka razy, ja mu piszę, że to nie jest MQL4, on ponownie robi to samo.

I też zauważ, że Google by ci tak samo zwrócił propozycje, tylko w formie linków, które ty musisz sam przejrzeć i konkretny kod wyszukać sam. A GPT podaje ci wyszukany kod, i nadal nie wie, czy ten kod jest poprawny, czy nie. Różnica polega na sposobie zapodania szukanej informacji.
Trejder, Mentor/trener, aka. Dadas, fx-technik, obecnie ninjaproject.
Programuję wskaźniki i EA do MetaTrader 4/5.

Awatar użytkownika
Mustafa
Pasjonat
Pasjonat
Posty: 769
Rejestracja: 20 lip 2010, 10:54

Re: Czat GTP - kod

Nieprzeczytany post autor: Mustafa »

"Garbage In, Garbage Out" to czym uczysz AI na tym będzie budować. Innymi słowy nic nowego (z niczego) nie powstaje, jednak do optymalizacji parametrów i testów bardzo dobrze się nadaje. A z drugiej strony niemal 99% młodych adeptów od algorytmów do tradingu zaczynało od średnich. AI nie przewidzi przyszłości ale może perfekcyjnie szacować ryzyka.
Nie chodzi o to czy masz rację czy nie, tylko o to, co robisz kiedy masz rację lub jak się zachowujesz jeżeli racji nie masz.

Awatar użytkownika
ra121pl
Uczestnik
Uczestnik
Posty: 4
Rejestracja: 02 lut 2023, 20:25

Re: Czat GTP - kod

Nieprzeczytany post autor: ra121pl »

DuzyGracz również byłem zdumiony tym co potrafi Chat GPT. Fascynujące narzędzie, ale wyznaczyłem sobie granicę, tzn. traktuję to jako narzędzie, np: Encyklopedia, podanie haseł, unikam za wszelką cenę aby traktować to jako człowieka i budować z tym czymś relacje. To już jest nienormalne i nie można się do tego przyzwyczajać. Trzeba sobie wyznaczać granicę w tym.

Myślę, że to będzie taki boom na zasadzie jak nie było internetu, nagle pojawił się internet. Nie było wyszukiwarki google, nagle pojawiła się wyszukiwarka google. No teraz Chat GPT heh.

Chat GPT na razie ma bazę danych do 2021 roku, nie ma aktualnej, aczkolwiek następna wersja ma mieć 500 razy większą bazę danych niż ta obecna. Co do kodu, właśnie nawet jak mu się dokładnie napisze "napisz wskaźnik albo robota automatycznego" w języku MQL5 pod MT5, on zaś miesza te funkcje z językiem MQL4. Nie jest w tym dokładny. Nawet jak mu się później napisze takie zdanie "pomyliłeś się, ta funkcja jest w języku MQL4 a nie MQL5, to on przeprosi Cię grzecznie po czym da korektę innej funkcji. I niestety znowu się pomylił w tym. Dlatego na razie wiedzę, która podaje Chat GPT trzeba weryfikować. Nie można jej bezgranicznie ufać.

Aczkolwiek Chata GPT programiści sobie chwalą bo, jeśli chodzi o rozwiązywanie prostych problemów w python, cpp, mql czy innym to on natychmiast poda szkielet programu, potrzebne funkcje, rozwiązuje i wyjaśnia błędy podczas kompilowania programów co znacznie przyspiesza pracę. Bo nawet jeśli wyrzuci coś błędnie to programista szybko wpadnie na właściwy trop i poprawi swój kod. :)

Tutaj programiści korzystają z sieci neuronowych i pokazują jak to robić, ale jest to dość trudne osobiście dla mnie do zrozumienia. Bardzo łatwo się w tym pomylić. Ja sam kompletnie tym się nie zajmowałem i nie rozumiem. :)

Kod: Zaznacz cały

https://www.mql5.com/en/articles/497

Kod: Zaznacz cały

https://www.mql5.com/en/articles/1565

ODPOWIEDZ