Problem z modyfikacją indyka

O jezykach programowania w platformach i nie tylko.
Awatar użytkownika
Above
Gaduła
Gaduła
Posty: 120
Rejestracja: 27 lis 2006, 08:00

Problem z modyfikacją indyka

Nieprzeczytany post autor: Above »

Witam,

Drodzy użytkownicy. Proszę o pomoc w naprawieniu czeskiego błędu. Siedzę nad tym cały dzień i wybrnąć nie mogę.
Otóż postanowiłem przerobić wskaźnik TREND_alexcud v_2MEn pod swoje potrzeby.

Operuję na M5 i mam dwie średnie z wyższego TF - M30 i SMA300 i M60 SMA500.

Problem polega na tym, że wskaźnik nie pokazuje prawidłowo UP lub DOWN. Na jednych parach pokazuje OK na innych nie (choć nie wiem czy tu wchodzi w grę para walutowa - przecież działa to jak działa). Podejrzewam, że nie pokazuje prawidłowo gdy cena jest blisko takiej średniej. Dlaczego - tu proszę o waszą pomoc.

Np. EURJPY z teraz...cena zamknęła się poniżej SMA500 z M60 i pomimo tego nie zmienia się na DOWN tylko nadal jest UP.

Gdzie jest błąd? Bardzo proszę o przyjrzenie się :) bo nie poradzę sobie - kombinowałem na 100 sposobów (choć nie znam się na MQL4).

Pozdrawiam!
Nie masz wymaganych uprawnień, aby zobaczyć pliki załączone do tego posta.
"...It's amazing. You've got it all on only...three pages.
You know what would happen if this fell into the wrong hands?
...
You named me?!
Right there along with the rest of them?!..."

Awatar użytkownika
Pierz Andrzej
Przyjaciel Forum
Przyjaciel Forum
Posty: 1200
Rejestracja: 02 lip 2006, 14:17

Re: Problem z modyfikacją indyka

Nieprzeczytany post autor: Pierz Andrzej »

ale kolega w kodzie nie sprawdza czy cena jest poniżej / powyżej średniej tylko czy wartość średniej aktualnej jest wyżej / niżej od wartości średniej ze świeczki poprzedniej
z poważaniem
Andrzej Pierz
FOREX-SERVICE

Awatar użytkownika
Above
Gaduła
Gaduła
Posty: 120
Rejestracja: 27 lis 2006, 08:00

Re: Problem z modyfikacją indyka

Nieprzeczytany post autor: Above »

Pierz Andrzej pisze:ale kolega w kodzie nie sprawdza czy cena jest poniżej / powyżej średniej tylko czy wartość średniej aktualnej jest wyżej / niżej od wartości średniej ze świeczki poprzedniej
Ok. Rozumiem. I to jest przyczyną tego, że gdy jest cena blisko aktualnej MA to nie zmienia statusu prawda? Tak wydawałoby się tylko sytuacja z tego EURJPY...cena odjechała znacznie a status nadal UP zamiast DOWN.

Co byś zalecał Andrzeju - poprawić to i odczytywać wartość średniej z poprzedniej świeczki czy jednak badać czy świeczka zamknęła się pod lub nad daną średnią? I jak rozumiem...zajmujesz się indykami/ea na zlecenie. W takim razie nie oczekuję pomocy za free, prosiłbym o info ile te poprawki kosztowałyby.

Pozdrawiam.
"...It's amazing. You've got it all on only...three pages.
You know what would happen if this fell into the wrong hands?
...
You named me?!
Right there along with the rest of them?!..."

Awatar użytkownika
Pierz Andrzej
Przyjaciel Forum
Przyjaciel Forum
Posty: 1200
Rejestracja: 02 lip 2006, 14:17

Re: Problem z modyfikacją indyka

Nieprzeczytany post autor: Pierz Andrzej »

przy długich okresowo świecach zejście ceny poniżej / powyżej średniej nie spowoduje jej zmiany kierunku jak zauważyłeś zbyt blisko konsolidująca cena średniej nie zmienia jej kierunku .

mogę wyedytować wskaźnik pod zamknięcie ceny pytanie tylko czy na tym Ci zależało ?

bo z postu pierwszego zrozumiałem że zależy Ci na zamknięciu nad/pod średnią a nie jej kierunku
z poważaniem
Andrzej Pierz
FOREX-SERVICE

Awatar użytkownika
Above
Gaduła
Gaduła
Posty: 120
Rejestracja: 27 lis 2006, 08:00

Re: Problem z modyfikacją indyka

Nieprzeczytany post autor: Above »

Pierz Andrzej pisze:przy długich okresowo świecach zejście ceny poniżej / powyżej średniej nie spowoduje jej zmiany kierunku jak zauważyłeś zbyt blisko konsolidująca cena średniej nie zmienia jej kierunku .

mogę wyedytować wskaźnik pod zamknięcie ceny pytanie tylko czy na tym Ci zależało ?

bo z postu pierwszego zrozumiałem że zależy Ci na zamknięciu nad/pod średnią a nie jej kierunku
Tak dokładnie. Ze względu na to, że na M5 mam średnie z wyższych interwałów (H1) to nie interesuje mnie kierunek średniej. Najprościej: cena nad średnią: pokazuje UP, cena pod średnią: pokazuje DOWN. Najprościej i chyba najsensowniej zrobić to po CLOSE świeczek/słupków (nie ma sensu żeby migało up lub down gdy cena jest w danej chwili pod/nad średnią).

Dobijało mnie skalowanie w pionie wykresu żeby zobaczyć gdzie się znajdujemy.

PS. Mam wiele rzeczy, które chciałbym zamienić w info-indyki. Te stałe elementy składowe strategii rozpraszają mnie a nie mam czasu tego pisać. Wiem już do kogo się zwrócić. Zacznę od jutra pisać o co mi chodzi i skontaktuje się poprzez kontakt na podanej stronie.

Pozdrawiam
"...It's amazing. You've got it all on only...three pages.
You know what would happen if this fell into the wrong hands?
...
You named me?!
Right there along with the rest of them?!..."

Awatar użytkownika
Pierz Andrzej
Przyjaciel Forum
Przyjaciel Forum
Posty: 1200
Rejestracja: 02 lip 2006, 14:17

Re: Problem z modyfikacją indyka

Nieprzeczytany post autor: Pierz Andrzej »

Zapraszam do kontaktu ;)

poniżej poprawiony kod

Kod: Zaznacz cały

//+------------------------------------------------------------------+
//|                                         TREND_alexcud v_2MEn.mq4 |
//|                             Copyright © 2007, Aleksander Kudimov |
//|                                           alexcud@rambler.ru  ki |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2007, Aleksander Kudimov"
#property link      "alexcud@rambler.ru"

#property indicator_chart_window

#property indicator_buffers 2
#property indicator_color1 Lime
#property indicator_color2 Red

double UPBuffer[];
double DOWNBuffer[];
extern int TF1 = 60;
extern int TF2 = 30; // drugie
extern int MAPERIOD_1 = 500;
extern int MAPERIOD_2 = 100; // drugie

extern color     indicator_clr1= Yellow;
int              Fontsize=15;

double MATF1UP,   MATF1DOWN;
double MaH12v,   MaH2pr2v; // drugie
string H11v;
string H12v; // drugie
color  co11v;
color  co12v;
string short_name="TF:";   


int init()
  {
   string short_name="TF:";
   IndicatorShortName(short_name);
   SetIndexBuffer(0,UPBuffer);
   SetIndexBuffer(1,DOWNBuffer);
 
   return(0);
  }
  
int deinit()
  {
   ObjectDelete("label_object1v"); 
   ObjectDelete("label_object2v"); 
   ObjectDelete("H11v"); 
   ObjectDelete("H12v"); 
   ObjectDelete("spread");
   ObjectDelete("MATF1UP");
   ObjectDelete("MATF1DOWN");
  
   
   return(0);
  }

int start()
  {
  
   double Spreed;
   
   
     MATF1UP=iMA(NULL,TF1,MAPERIOD_1,0,MODE_SMA,PRICE_CLOSE,0);
     MATF1DOWN=iMA(NULL,TF1,MAPERIOD_1,0,MODE_SMA,PRICE_CLOSE,1);
     
     if (Close[1] < MATF1DOWN){H11v = " DOWN ";   co11v = Red;}
     if (Close[1] > MATF1DOWN){H11v = " UP "; co11v = LightBlue;} 
     if (Close[1] == MATF1DOWN){H11v = " 0 "; co11v = Green;}    
     
     
   ObjectCreate("label_object1v", OBJ_LABEL, short_name, 0, 0);
   ObjectSet("label_object1v", OBJPROP_XDISTANCE, 5);  
   ObjectSet("label_object1v", OBJPROP_YDISTANCE, 32);
   
   ObjectCreate("H11v", OBJ_LABEL, short_name, 0, 0); 
   ObjectSet("H11v", OBJPROP_XDISTANCE, 100);  
   ObjectSet("H11v", OBJPROP_YDISTANCE, 30);
            
 
   ObjectSetText("label_object1v", "SMA500 M"+TF1+": ",9, "Verdana", Lime );
   ObjectSetText("H11v", H11v ,11, "Verdana", co11v );
 
 
 
     MaH12v=iMA(NULL,TF2,MAPERIOD_2,0,MODE_SMA,PRICE_CLOSE,0);
     MaH2pr2v=iMA(NULL,TF2,MAPERIOD_2,0,MODE_SMA,PRICE_CLOSE,1);
     
     if (Close[1] < MaH2pr2v){H12v = " DOWN ";   co12v = Red;}
     if (Close[1] > MaH2pr2v){H12v = " UP "; co12v = LightBlue;} 
     if (Close[1] == MaH2pr2v){H12v = " 0 "; co12v = Green;}    
 
 
   ObjectCreate("label_object2v", OBJ_LABEL, short_name, 0, 0);
   ObjectSet("label_object2v", OBJPROP_XDISTANCE, 5);  
   ObjectSet("label_object2v", OBJPROP_YDISTANCE, 50);
   
   ObjectCreate("H12v", OBJ_LABEL, short_name, 0, 0); 
   ObjectSet("H12v", OBJPROP_XDISTANCE, 100);  
   ObjectSet("H12v", OBJPROP_YDISTANCE, 50);
 
 
   ObjectSetText("label_object2v","SMA100 M"+TF2+": ",9, "Verdana", Lime );
   ObjectSetText("H12v", H12v ,11, "Verdana", co12v );



   DisplayText("spread","Spread = "+DoubleToStr(MarketInfo(Symbol(),MODE_SPREAD),0),"Arial",Fontsize,indicator_clr1,5,70,0);



  return(0);
  }


//+------------------------------------------------------------------+
void DisplayText(string objname, string objtext, string fontname, int fontsize, int clr, int x, int y,int Cor)
   {
      ObjectCreate(objname,OBJ_LABEL,0,0,0);
      ObjectSetText(objname,objtext,fontsize,fontname,clr);
      ObjectSet(objname,OBJPROP_CORNER,Cor);
      ObjectSet(objname,OBJPROP_XDISTANCE,x);
      ObjectSet(objname,OBJPROP_YDISTANCE,y);
   }
//+------------------------------------------------------------------+  
z poważaniem
Andrzej Pierz
FOREX-SERVICE

Awatar użytkownika
Above
Gaduła
Gaduła
Posty: 120
Rejestracja: 27 lis 2006, 08:00

Re: Problem z modyfikacją indyka

Nieprzeczytany post autor: Above »

Dodał Pan Close[1] ... o matko, czuję się zażenowany swoją niewiedzą. Dziękuję bardzo za pomoc.
Napiszę na maila poprzez kontakt podany na stronie gdy już ładnie poukładam co chciałbym i opiszę.

Pozdrawiam!
"...It's amazing. You've got it all on only...three pages.
You know what would happen if this fell into the wrong hands?
...
You named me?!
Right there along with the rest of them?!..."

inspir
Bywalec
Bywalec
Posty: 15
Rejestracja: 09 lut 2014, 15:11

Re: Problem z modyfikacją indyka

Nieprzeczytany post autor: inspir »

witam i dokładnie poszukuję takiego indyka, czy był byś na tyle uprzejmy i udostępnił byś pełny kod?? będę wdzięczny , pewno nie tylko ja, pozdrawiam

ODPOWIEDZ