Zazwyczaj żeby otrzymać zmienna 10 czy 100 razy mniejsza stosuje się dzielenie przez 10 lub 100.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?
Wszystkie pytania dozwolone początkujących programistów
Re:
- ninjaproject
- Maniak 
- Posty: 4944
- Rejestracja: 30 lip 2019, 13:15
Re: Wszystkie pytania dozwolone początkujących programistów
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.
						Programuję wskaźniki i EA do MetaTrader 4/5.
Re: Wszystkie pytania dozwolone początkujących programistów
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
			
			
									
									
						https://www.mql5.com/en/code/29592/234626#!tab=code
- ninjaproject
- Maniak 
- Posty: 4944
- Rejestracja: 30 lip 2019, 13:15
Re: Wszystkie pytania dozwolone początkujących programistów
Twój link wyrzuca error 404.
			
			
									
									Trejder, Mentor/trener, aka. Dadas, fx-technik, obecnie ninjaproject.
Programuję wskaźniki i EA do MetaTrader 4/5.
						Programuję wskaźniki i EA do MetaTrader 4/5.
Re: Wszystkie pytania dozwolone początkujących programistów
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;
}- ninjaproject
- Maniak 
- Posty: 4944
- Rejestracja: 30 lip 2019, 13:15
Re: Wszystkie pytania dozwolone początkujących programistów
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:
			
			
									
									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.
						Programuję wskaźniki i EA do MetaTrader 4/5.
- ninjaproject
- Maniak 
- Posty: 4944
- Rejestracja: 30 lip 2019, 13:15
Re: Wszystkie pytania dozwolone początkujących programistów
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.
						Programuję wskaźniki i EA do MetaTrader 4/5.
- ninjaproject
- Maniak 
- Posty: 4944
- Rejestracja: 30 lip 2019, 13:15
Re: Wszystkie pytania dozwolone początkujących programistów
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.
						Programuję wskaźniki i EA do MetaTrader 4/5.
- ninjaproject
- Maniak 
- Posty: 4944
- Rejestracja: 30 lip 2019, 13:15
Re: Wszystkie pytania dozwolone początkujących programistów
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.
						Programuję wskaźniki i EA do MetaTrader 4/5.
Re: Wszystkie pytania dozwolone początkujących programistów
Dzięki wielkie 
			
			
									
									
						
 
							
