Wszystkie pytania dozwolone początkujących programistów

O jezykach programowania w platformach i nie tylko.
HFbonds
Bywalec
Bywalec
Posty: 5
Rejestracja: 02 gru 2019, 18:18

Re:

Nieprzeczytany post autor: HFbonds »

Płaski pisze:
14 cze 2012, 16:38
Mam taki oto problem - robot mi usrednia pozycję o od 0,1 lub 0,01 i leci 0,2-0,3-0,6-0,9-1,4-2,2-4,8 itd. a chcę żeby uśredniał od mikro lotów czyli pierwsza pozycja 0,1 lub 0,01 a dalej 0,02-0,03-0,06-0,09-0,14-0,22-0,48 itd
jak mam to zmienić?
bo w skrypcie wyglada to tak:

Kod: Zaznacz cały

double ll(int dan){
int lo[15];
lo[0]=1;
lo[1]=1;
lo[2]=2;
lo[3]=3;
lo[4]=6;
lo[5]=9;
lo[6]=14;
lo[7]=22;
lo[8]=33;
lo[9]=48;
lo[10]=82;
lo[11]=111;
lo[12]=122;
lo[13]=164;
lo[14]=185;

int lt=0;
if(OrdersTotal()>0){
    for(int m=0;m < OrdersTotal();m++){ 
    if(OrderSelect(m,SELECT_BY_POS,MODE_TRADES)==false)     break;
    if ((OrderMagicNumber() == Magic)&&OrderSymbol()==Symbol()&&OrderType()==dan){
   lt++;
    }
  }//  maxtimeend
 } //total end 


i teraz jeżeli zmienie w wartościach "lo" z 1 na 0,1 dalej 2 na 0,2 dalej 22 na 2,2 i tak dalej to on mi uśrednia ale tylko 0,1 - 0,1 -0,1 itd. czyli cały czas na 0,1 co mija się z celem...

jak mam zmienic te wartosci żeby mi uśredniał jak napisałem na wstepie czyli od mikrolotów?
Zazwyczaj żeby otrzymać zmienna 10 czy 100 razy mniejsza stosuje się dzielenie przez 10 lub 100.

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 »

To się w ogóle inaczej robi.

Kod: Zaznacz cały

                double step     = MarketInfo(Symbol(),MODE_LOTSTEP);
                int  norm     = 0;
                  if (step==1)    norm = 0;
                  if (step==0.1)  norm = 1;
                  if (step==0.01) norm = 2;
                double lots= Wyliczenie_Wolumenu();
                          lots   = NormalizeDouble(lots,norm);
                 
Trejder, Mentor/trener, aka. Dadas, fx-technik, obecnie ninjaproject.
Programuję wskaźniki i EA do MetaTrader 4/5.

LoCoToCo
Bywalec
Bywalec
Posty: 17
Rejestracja: 24 maja 2020, 16:40

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

Nieprzeczytany post autor: LoCoToCo »

Byłby ktoś w stanie podpowiedzieć co zmienić w tym kodzie aby pokazywał on wartości też dla poprzednich świec, a nie tylko dla obecnej jak to jest teraz:
https://www.mql5.com/en/code/29592/234626#!tab=code

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 »

Twój link wyrzuca error 404.
Trejder, Mentor/trener, aka. Dadas, fx-technik, obecnie ninjaproject.
Programuję wskaźniki i EA do MetaTrader 4/5.

LoCoToCo
Bywalec
Bywalec
Posty: 17
Rejestracja: 24 maja 2020, 16:40

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

Nieprzeczytany post autor: LoCoToCo »

Tutaj jest ten skrypt:

Kod: Zaznacz cały

input int Period1 = 14; // RSI Period
input bool Reverse = false; // Reverse

#property indicator_separate_window
#property indicator_buffers 1
#property indicator_color1 Red

string IndicatorName;
string IndicatorObjPrefix;

string GenerateIndicatorName(const string target)
{
   string name = target;
   int try = 2;
   while (WindowFind(name) != -1)
   {
      name = target + " #" + IntegerToString(try++);
   }
   return name;
}

double Oscillator[];

int init()
{
   IndicatorName = GenerateIndicatorName("Ratio");
   IndicatorObjPrefix = "__" + IndicatorName + "__";
   IndicatorShortName(IndicatorName);

   IndicatorBuffers(1);

   SetIndexStyle(0, DRAW_HISTOGRAM);
   SetIndexBuffer(0, Oscillator);
   SetIndexLabel(0, "Oscillator");

   return 0;
}

int deinit()
{
   ObjectsDeleteAll(ChartID(), IndicatorObjPrefix);
   return 0;
}

int start()
{
   int counted_bars = IndicatorCounted();
   int minBars = 1;
   int limit = MathMin(Bars - 1 - minBars, Bars - counted_bars - 1);
   for (int i = limit; i >= 0; i--)
   {
      double rsiValue = iRSI(_Symbol, _Period, Period1, PRICE_CLOSE, i);
      double volumeValue = iCustom(NULL,0,"ClusterDelta_PremiumVolume_4.1","","FDAX","AUTO",0,0);

      if (Reverse)
      {
         if (volumeValue != 0)
         {
            Oscillator[i] = rsiValue / volumeValue;
         }
      }
      else
      {
         if (rsiValue)
         {
            Oscillator[i] = volumeValue / rsiValue;
         }
      }
   }
   return 0;
}

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 »

Pierwsza rzecz, to trzeba mieć abonament Premium w ClusterDelta i mieć wskaźnik "ClusterDelta_PremiumVolume_4.1", i być zalogowany.
Druga rzecz, to trzeba czytać volumeValue dla danej świecy, a nie tylko dla bieżącej:

Kod: Zaznacz cały

double volumeValue = iCustom(NULL,0,"ClusterDelta_PremiumVolume_4.1","","FDAX","AUTO",0,i);
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: Wszystkie pytania dozwolone początkujących programistów

Nieprzeczytany post autor: ninjaproject »

Ratio.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.

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 »

EURUSDM15.jpg
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.

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 »

Zrobiłem wybór źródła danych wolumenu, tick, albo ClusterDelta.
Trejder, Mentor/trener, aka. Dadas, fx-technik, obecnie ninjaproject.
Programuję wskaźniki i EA do MetaTrader 4/5.

LoCoToCo
Bywalec
Bywalec
Posty: 17
Rejestracja: 24 maja 2020, 16:40

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

Nieprzeczytany post autor: LoCoToCo »

Dzięki wielkie :D

ODPOWIEDZ