Wszystkie pytania dozwolone początkujących programistów

O jezykach programowania w platformach i nie tylko.
LoCoToCo
Bywalec
Bywalec
Posty: 17
Rejestracja: 24 maja 2020, 16:40

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

Nieprzeczytany post autor: LoCoToCo »

Podpowie ktoś jak napisać funkcję aby wywołać wartość Rsi dla świecy poprzedniej?

grzegrzyw
Gaduła
Gaduła
Posty: 334
Rejestracja: 11 mar 2012, 19:43

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

Nieprzeczytany post autor: grzegrzyw »

iRSI(NULL,0,14,PRICE_CLOSE,1)

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 »

Kod: Zaznacz cały

      for (int i=0; i<=limit; i++)
       {
       double RSI_prev=iRSI(_Symbol,_Period,Okres_RSI,Cena_zastosowana,i+1)
       }
       
Trejder, Mentor/trener, aka. Dadas, fx-technik, obecnie ninjaproject.
Programuję wskaźniki i EA do MetaTrader 4/5.

deckrdshaw
Uczestnik
Uczestnik
Posty: 2
Rejestracja: 24 wrz 2020, 23:51

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

Nieprzeczytany post autor: deckrdshaw »

wiem ze istniej gogle, ale gole przysyła mnie tutaj :P

MT4 tak mam zainstalowane na kompie z 9 miesięcy ale nie tykałem nic w edytorze.

skąd wytrzasnąć strategie? jak ją włączyć? i jak ją ustawiać?

ze wskaźnikami sobie radzę i strategiami.
nie kumam kompletnie automatów, wczoraj się dowiedziałem o tralling stop czy SL STOP, zauważyłem ze pomagają.
shaw

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 »

Roboty za ciebie nie wykonają roboty.
Przez co mówię, że roboty tylko tracą, nie zarabiają.
Natomiast, pytasz w niewłaściwym wątku.
Ty potrzebujesz kursu z platformy MT4 i z podstaw tradingu.
Stop Loss, czy Trailing Stop to elementy zarządzania ryzykiem.
Jeszcze masz bardzo dużo nauki przed sobą.
Zacznij tutaj:
platformy-transakcyjne.html
Trejder, Mentor/trener, aka. Dadas, fx-technik, obecnie ninjaproject.
Programuję wskaźniki i EA do MetaTrader 4/5.

Lucjano
Uczestnik
Uczestnik
Posty: 1
Rejestracja: 27 paź 2020, 12:24

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

Nieprzeczytany post autor: Lucjano »

Co jest nie tak z tym kodem potrzebuję wczytać liczby typu double z pliku bin do tablicy. Za podpowiedz z góry dzięki.

Kod: Zaznacz cały

#property copyright "Copyright 2014, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
#property strict
#property indicator_chart_window

int      size=0;
double   buff[];

int OnInit()
  {

   return(INIT_SUCCEEDED);
  }

int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
  {
   static bool done=false;

   if(done==false)
     {
      ResetLastError();
      int file_handle=FileOpen("test.bin",FILE_READ|FILE_BIN);

      if(file_handle!=INVALID_HANDLE)
        {
         size=(int)FileReadDouble(file_handle,DOUBLE_VALUE);

         ArrayResize(buff,size);

         for(int i=0; i<size; i++)
           {
            buff[i]=FileReadDouble(file_handle,DOUBLE_VALUE);
           }

         FileClose(file_handle);

        }
      else
        {
         Print("Can't load file ",GetLastError());
        }

      for(int i=0; i<size; i++)
         Print(buff[i]);


      done=true;
     }

   return(rates_total);
  }



lxi
Stały bywalec
Stały bywalec
Posty: 59
Rejestracja: 28 sty 2014, 14:04

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

Nieprzeczytany post autor: lxi »

Czy ktoś może mi powiedzieć co jest z tym kodem nie tak?
Kod uruchamiany jest na wykresie M1 i na starcie, gdy godziny działania się zgadzają ma odczytać poziom High i Low z ostatniej zamkniętej świecy H1. Niestety robot odczytuje parametry bodajże z 22:00 dnia poprzedniego jeśli uruchomię go przed godzinami handlu, a odczyty prawidłowe robi gdy uruchomię go po rozpoczęciu godzin handlu. Czyli w tym wypadku po godzinie 11:00.

Kod: Zaznacz cały

int Start_Time = 11;
int Stop_Time = 19;

if (Hour()>=Start_Time &&  Hour()<Stop_Time)
   {
      Hi = NormalizeDouble(iHigh(NULL, 60, 1),Digits);
      Lo = NormalizeDouble(iLow(NULL, 60, 1),Digits);
   }

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 »

lxi pisze:
28 paź 2020, 09:48
Czy ktoś może mi powiedzieć co jest z tym kodem nie tak?
Kod uruchamiany jest na wykresie M1 i na starcie, gdy godziny działania się zgadzają ma odczytać poziom High i Low z ostatniej zamkniętej świecy H1. Niestety robot odczytuje parametry bodajże z 22:00 dnia poprzedniego jeśli uruchomię go przed godzinami handlu, a odczyty prawidłowe robi gdy uruchomię go po rozpoczęciu godzin handlu. Czyli w tym wypadku po godzinie 11:00.

Kod: Zaznacz cały

int Start_Time = 11;
int Stop_Time = 19;

if (Hour()>=Start_Time &&  Hour()<Stop_Time)
   {
      Hi = NormalizeDouble(iHigh(NULL, 60, 1),Digits);
      Lo = NormalizeDouble(iLow(NULL, 60, 1),Digits);
   }
To jest w czym?
EA, czy Script?
Jak go uruchamiasz?
No, bo, logiczne, program zapamiętuje ostatnie wartości, jeżeli chodzi cały czas, a wartości Hi i Lo nie są zresetowane, lub w czasie poza godzinami handlu nadal program zwraca cały czas wartości Hi i Lo, tyle że są to cały czas te same wartości od 19-tej do 11-tej.
Trejder, Mentor/trener, aka. Dadas, fx-technik, obecnie ninjaproject.
Programuję wskaźniki i EA do MetaTrader 4/5.

lxi
Stały bywalec
Stały bywalec
Posty: 59
Rejestracja: 28 sty 2014, 14:04

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

Nieprzeczytany post autor: lxi »

To jest kod EA. EA wrzucam na wykres o godzinie 10:50. Dokładnie wygląda tak:

Kod: Zaznacz cały

int OnInit()
{
   Start=0;
   return(INIT_SUCCEEDED);
}

//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
{
if (Hour()>=Start_Time &&  Hour()<Stop_Time)
   {
   if (Start==0)//Odczyt poziomów na starcie programu
      {
      Hi = NormalizeDouble(iHigh(NULL, 60, 1),Digits);
      Lo = NormalizeDouble(iLow(NULL, 60, 1),Digits);
      Start=1;
      Print("Hi = "+Hi);
      Print("Lo = "+Lo);
      }
   }
Zmienna Start jest tylko po to, aby pobieranie wartości High i Low wykonało się tylko raz, kiedy zegar wybije godzinę 11:00.

Jeśli wrzucę robota na wykres o godzinie np. 10:50, to o godzinie 11:00 pobiera dane z dnia poprzedniego z godziny 22:00. Nie wiem dlaczego tak się dzieje.

Jeśli wrzucę robota na wykres np. o 11:01, to odczyty robi już poprawne, czyli ze świecy godzinowej 10:00 - 11:00 dnia aktualnego.

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 »

Teraz nie mam akurat czasu, ale powiem tyle, że ten kod nie wykonuje się gdy godzina wybije, tylko gdy są ticki.
Sekcja OnInint() wykonuje się tylko raz, przy inicjacji EA, a to nastęouje, gdy EA jest wrzucane na wykres, oraz gdy EA jest "otwierane" w celu zmany parametrów zewnętrznych, i gdy np. zmieniane są Tfy.
Poza tym zmienna Start będzie miała wartość 1 i if() się nie wykona.
Trejder, Mentor/trener, aka. Dadas, fx-technik, obecnie ninjaproject.
Programuję wskaźniki i EA do MetaTrader 4/5.

ODPOWIEDZ