HELP !!!! einen Indikator von MT4 zu MT5 konvertieren. - Seite 4

 
George Merts:

Ja, stellen Sie sich vor, was Sie vorschlagen, kostet einen gewissen Aufwand und damit Geld.

Jeder versteht Russisch sehr gut, aber nur sehr wenige Menschen sind daran interessiert, dies "als Dankeschön" zu tun.

Aber wenn Sie eine erfolgreiche Handelserfahrung gemacht haben, für die Sie einen Indikator benötigen, würde sich vielleicht jemand bereit erklären, etwas ohne Geld im Austausch für eine profitable Handelsidee zu tun. In der Zwischenzeit befürchte ich, dass es - allein aus Gründen des "guten Rufs" - nicht viele Leute geben wird, die dazu bereit sind...

Meine persönlichen Erfahrungen haben damit nichts zu tun.

Der legendäre Ishimoku ist Ihnen also nicht bekannt? Hat sie sich nicht über viele Jahre hinweg bewährt?

Es geht nicht um einen Handelsroboter, der eine Einzahlung verliert oder nicht.

Es handelt sich um ein traditionelles Ishimoku mit einem aufgeschraubten Alert. Die Entscheidung liegt beim Gewerbetreibenden.

So haben Sie die russische Sprache missverstanden - Sie haben nicht einmal meinen Beitrag gelesen.

Ich habe sogar denIchimokuAlert_v3.mq4 Indikator für mt4 hinzugefügt und geschrieben, dass ich ihn verwende.

Hier ist der Code für mt4 IndikatorIchimokuAlert_v3.mq4 für diejenigen, die nicht herunterladen können

//+------------------------------------------------------------------+
//|                                             IchimokuAlert_v2.mq4 |
//|                                  Copyright © 2006, Forex-TSD.com |
//|                         Written by IgorAD,igorad2003@yahoo.co.uk |
//|                           Adapted and improved by Snowski © 2009 |  
//+------------------------------------------------------------------+

#property copyright "Copyright © 2006, Forex-TSD.com "
#property link      "http://www.forex-tsd.com/"

#property indicator_chart_window
#property indicator_buffers 7
#property indicator_color1 Red
#property indicator_color2 Blue
#property indicator_color3 SandyBrown
#property indicator_color4 Thistle
#property indicator_color5 Lime
#property indicator_color6 SandyBrown
#property indicator_color7 Thistle

//---- input parameters
extern int Tenkan             = 9;
extern int Kijun              = 26;
extern int Senkou             = 52;
extern bool UseAlerts         = true;
extern bool MsgAlerts         = true;
extern bool SoundAlerts       = true;
extern bool eMailAlerts       = false;
extern int AlertType          = 1;
extern string Alert_Setting   = "--- Alert Type:---";
extern string A_S0            = "0 = no alert";
extern string A_S1            = "1 = Tenkan crosses Kjiun";
extern string A_S2            = "2 = Kijun crosses Price";
extern string A_S3            = "3 = both";
extern bool Show_Tenkan       = true;
extern bool Show_Kijun        = true;
extern bool Show_Senkou       = true;
extern bool Show_Kumo         = true;
//---- buffers
double Tenkan_Buffer[];
double Kijun_Buffer[];
double SpanA_Buffer[];
double SpanB_Buffer[];
double Chinkou_Buffer[];
double SpanA2_Buffer[];
double SpanB2_Buffer[];
//----
int a_begin;
bool UptrendAlert1,DntrendAlert1,UptrendAlert2,DntrendAlert2;
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
//----
   if(Show_Tenkan==true){
      SetIndexStyle(0,DRAW_LINE,STYLE_SOLID,2);
      SetIndexBuffer(0,Tenkan_Buffer);
      SetIndexDrawBegin(0,Tenkan-1);
      SetIndexLabel(0,"Tenkan Sen");
   }  
//----
   if(Show_Kijun==true){
      SetIndexStyle(1,DRAW_LINE,STYLE_SOLID,2);
      SetIndexBuffer(1,Kijun_Buffer);
      SetIndexDrawBegin(1,Kijun-1);
      SetIndexLabel(1,"Kijun Sen");
      }
//----
   if(Show_Kumo==true){
      a_begin=Kijun; if(a_begin<Tenkan) a_begin=Tenkan;
      SetIndexStyle(2,DRAW_HISTOGRAM,STYLE_DOT);
      SetIndexBuffer(2,SpanA_Buffer);
      SetIndexDrawBegin(2,Kijun+a_begin-1);
      SetIndexShift(2,Kijun);
      SetIndexLabel(2,NULL);
      SetIndexStyle(5,DRAW_LINE,STYLE_SOLID);
      SetIndexBuffer(5,SpanA2_Buffer);
      SetIndexDrawBegin(5,Kijun+a_begin-1);
      SetIndexShift(5,Kijun);
      SetIndexLabel(5,"Senkou Span A");
   }
//----
   if(Show_Kumo==true){
      SetIndexStyle(3,DRAW_HISTOGRAM,STYLE_DOT);
      SetIndexBuffer(3,SpanB_Buffer);
      SetIndexDrawBegin(3,Kijun+Senkou-1);
      SetIndexShift(3,Kijun);
      SetIndexLabel(3,NULL);
      SetIndexStyle(6,DRAW_LINE,STYLE_SOLID);
      SetIndexBuffer(6,SpanB2_Buffer);
      SetIndexDrawBegin(6,Kijun+Senkou-1);
      SetIndexShift(6,Kijun);
      SetIndexLabel(6,"Senkou Span B");
   }
//----
   if(Show_Senkou==true){
      SetIndexStyle(4,DRAW_LINE);
      SetIndexBuffer(4,Chinkou_Buffer);
      SetIndexShift(4,-Kijun);
      SetIndexLabel(4,"Chinkou Span");
   }
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Ichimoku Kinko Hyo                                               |
//+------------------------------------------------------------------+
int start()
{
   int    i,k;
   int    counted_bars=IndicatorCounted();
   double high,low,price;
//----
   if(Bars<=Tenkan || Bars<=Kijun || Bars<=Senkou) return(0);
//---- initial zero
   if(counted_bars<1)
     {
      for(i=1;i<=Tenkan;i++)    Tenkan_Buffer[Bars-i]=0;
      for(i=1;i<=Kijun;i++)     Kijun_Buffer[Bars-i]=0;
      for(i=1;i<=a_begin;i++) { SpanA_Buffer[Bars-i]=0; SpanA2_Buffer[Bars-i]=0; }
      for(i=1;i<=Senkou;i++)  { SpanB_Buffer[Bars-i]=0; SpanB2_Buffer[Bars-i]=0; }
     }
//---- Tenkan Sen
      i=Bars-Tenkan;
      if(counted_bars>Tenkan) i=Bars-counted_bars-1;
         while(i>=0)
            {
            high=High[i]; low=Low[i]; k=i-1+Tenkan;
         while(k>=i)
            {
            price=High[k];
            if(high<price) high=price;
            price=Low[k];
            if(low>price)  low=price;
            k--;
           }
         Tenkan_Buffer[i]=(high+low)/2;
         i--;
      }
//---- Kijun Sen
   i=Bars-Kijun;
   if(counted_bars>Kijun) i=Bars-counted_bars-1;
   while(i>=0)
     {
      high=High[i]; low=Low[i]; k=i-1+Kijun;
      while(k>=i)
        {
         price=High[k];
         if(high<price) high=price;
         price=Low[k];
         if(low>price)  low=price;
         k--;
        }
      Kijun_Buffer[i]=(high+low)/2;
      i--;
     }
//---- Senkou Span A
   i=Bars-a_begin+1;
   if(counted_bars>a_begin-1) i=Bars-counted_bars-1;
   while(i>=0)
     {
      price=(Kijun_Buffer[i]+Tenkan_Buffer[i])/2;
      SpanA_Buffer[i]=price;
      SpanA2_Buffer[i]=price;
      i--;
     }
//---- Senkou Span B
   i=Bars-Senkou;
   if(counted_bars>Senkou) i=Bars-counted_bars-1;
   while(i>=0)
     {
      high=High[i]; low=Low[i]; k=i-1+Senkou;
      while(k>=i)
        {
         price=High[k];
         if(high<price) high=price;
         price=Low[k];
         if(low>price)  low=price;
         k--;
        }
      price=(high+low)/2;
      SpanB_Buffer[i]=price;
      SpanB2_Buffer[i]=price;
      i--;
     }
//---- Chinkou Span
   i=Bars-1;
   if(counted_bars>1) i=Bars-counted_bars-1;
   while(i>=0) { Chinkou_Buffer[i]=Close[i]; i--; }
  
//----
   string Msg,Subj;
  
   if (AlertType == 1 || AlertType == 3)
   {
      if (Tenkan_Buffer[1]>Kijun_Buffer[1] && Tenkan_Buffer[2]<Kijun_Buffer[2] && !UptrendAlert1)
      {
         Subj = "Tenkan crosses Kijun: "+Symbol()+" on M"+Period();
         Msg = "BUY Signal --- : "+Subj+ " @ "+DoubleToStr(Close[1],Digits) + ", @ " + TimeToStr(TimeLocal(),TIME_SECONDS);
         UptrendAlert1 = true;
         DntrendAlert1 = false;
         DoAlerts(Msg,Subj);
      }
      if ( Tenkan_Buffer[1]<Kijun_Buffer[1] && Tenkan_Buffer[2]>Kijun_Buffer[2] && !DntrendAlert1)
      {  
         Subj = "Tenkan crosses Kijun: "+Symbol()+" on M"+Period();
         Msg = "SELL Signal --- : "+Subj+ " @ "+DoubleToStr(Close[1],Digits) + ", @ " + TimeToStr(TimeLocal(),TIME_SECONDS);
         UptrendAlert1 = false;
         DntrendAlert1 = true;
         DoAlerts(Msg,Subj);
      }
   }
  
   if (AlertType == 2 || AlertType == 3)
   {
      if (Close[1]>Close[1+Kijun] && Close[2]<Close[2+Kijun] && !UptrendAlert2)
      {
         Subj = "Kijun crossed Price: "+Symbol()+" on M"+Period();
         Msg = "BUY Signal --- : "+Subj+ " @ "+DoubleToStr(Close[1],Digits) + ", @ " + TimeToStr(TimeLocal(),TIME_SECONDS);
         DntrendAlert2 = false;
         UptrendAlert2 = true;
         DoAlerts(Msg,Subj);
      }
      if (Close[1]<Close[1+Kijun] && Close[2]>Close[2+Kijun] && !DntrendAlert2)
      {
         Subj = "Kijun crossed Price: "+Symbol()+" on M"+Period();
         Msg = "SELL Signal --- : "+Subj+ " @ "+DoubleToStr(Close[1],Digits) + ", @ " + TimeToStr(TimeLocal(),TIME_SECONDS);
         DntrendAlert2 = true;
         UptrendAlert2 = false;
         DoAlerts(Msg,Subj);
      }
   }
   return(0);
}

void DoAlerts(string msgText, string eMailSub)
{
   if (MsgAlerts) Alert(msgText);
   if (eMailAlerts) SendMail(eMailSub, msgText);
}
//+------------------------------------------------------------------+

 
Ваня:

Meine persönlichen Erfahrungen haben damit nichts zu tun.

Der legendäre Ishimoku ist Ihnen also nicht bekannt? Hat sie sich nicht im Laufe der Jahre bewährt?

Es geht nicht um einen Handelsroboter, der eine Einzahlung verliert oder nicht.

Es handelt sich um ein traditionelles Ishimoku mit einem aufgeschraubten Alert. Die Entscheidung liegt beim Gewerbetreibenden.

Wie lautet Ihre Frage?

Sie wollen nachbearbeitet werden. Wenn die Verbesserung nicht zu schwierig ist, kann sie gegen eine Gebühr durchgeführt werden. Wenn sie Ihnen aber empfehlen, zu Freelancer zu gehen, bedeutet das, dass Ihre Verbesserungen nicht so gering sind.

Und es gibt nur zwei Grundlagen für größere Überarbeitungen. Entweder zahlt der Unternehmer für die Arbeit, oder er stellt einen wirklich funktionierenden TS zur Verfügung.

Sie bieten einen Ishimoku-Indikator an - aber der Indikator ist kein System. Deshalb will sich niemand damit befassen.

 

Nun, das stimmt, es zeigt Ihnen Fehler an.

Schauen Sie selbst - wenn die Kontrolle über die if-Anweisung kommt?

In beiden Fällen hängt dieser Operator einfach "in der Luft" - davor warnt Sie der Compiler. "Ausdruck ist auf globaler Ebene nicht erlaubt".

Die if-Anweisung muss an dem Punkt stehen, an dem der Alarm ausgelöst werden soll, und darf nicht "in der Luft hängen".

Und es macht keinen Unterschied, ob es sich um MT4 oder MT5 handelt - das geht in beiden Fällen nicht. Die if-Anweisung übergibt die Kontrolle an einen der Zweige, sie kann nicht einfach "in der Luft hängen".

Nur Ihre Prozeduren und Funktionen können "in der Luft hängen" und entweder vom Terminal bei der Behandlung von Ereignissen- OnCalculte() oder von Ihnen - DoAlerts() - aufgerufen werden.

 
George Merts:

Nun, das stimmt, es zeigt Ihnen Fehler an.

Schauen Sie selbst - wenn die Kontrolle zur if-Anweisung kommt?

In beiden Fällen hängt dieser Operator einfach "in der Luft" - davor warnt Sie der Compiler. "Ausdruck ist auf globaler Ebene nicht erlaubt".

Die if-Anweisung muss an dem Punkt stehen, an dem der Alarm ausgelöst werden soll, und darf nicht "in der Luft hängen".

Und es macht keinen Unterschied, ob es sich um MT4 oder MT5 handelt - das geht in beiden Fällen nicht. Die if-Anweisung übergibt die Kontrolle an einen der Zweige, sie kann nicht einfach "in der Luft hängen".

Nur Ihre Prozeduren und Funktionen können "in der Luft hängen", die entweder vom Terminal bei der Verarbeitung von Ereignissen- OnCalculte(), oder von Ihnen selbst - DoAlerts() - aufgerufen werden.

Ich bin kein Programmierer

Für mich ist es ein dunkler Wald.

 
Ваня:

Ich bin kein Programmierer.

Es ist ein dunkler Wald für mich.

Nun, Sie wurden auf den Dienst Freelance hingewiesen. Dort gibt es Live-Programmierer, die kein Problem damit haben, den TOR in Absprache mit Ihnen zu gestalten und zu einem ähnlichen Preis auszuführen.

Es gibt ein Forum, in dem sie Neulingen helfen können, aber wirklich helfen, die versuchen, als Programmierer zu wachsen. Eine ganze Reihe von Händlern sind nicht daran interessiert - und Freelance für sie ist sehr vernünftige Lösung.

 
George Merts:

Nun, Sie wurden auf den Dienst Freelance hingewiesen. Dort gibt es Programmierer, die das TOR in Absprache mit Ihnen problemlos erstellen und zu einem vernünftigen Preis ausführen können.

Ich habe verstanden, dass mt5 ein echtes Chaos ist. Aber dies ist ein Forum, wo sie den Anfängern helfen können, sondern um denen zu helfen, die versuchen, als Programmierer zu wachsen. Nicht wenige Händler sind nicht daran interessiert, und Freelance ist eine sehr vernünftige Lösung für sie.

Ich wollte nur mt5 testen.

Ich habe alle Indikatoren auf mt4. Sie funktionieren.

Da ich es nicht einmal bequem testen kann...

Jetzt verstehe ich, dass mt5 ein echter Schmerz im Arsch ist.

 
Ваня:

Ich wollte nur den mt5 testen.

Auf mt4 sind alle Indikatoren vorhanden. Sie funktionieren.

Da es unmöglich ist, es überhaupt bequem zu testen...

Jetzt verstehe ich, dass mt5 ein echter Schmerz im Arsch ist.

Mt5 ist kein Problem, ebenso wenig wie mql5.

Ich habe den Indikator jedoch nicht getestet. Wenn Sie irgendwelche Probleme haben, sagen Sie es mir, ich werde es selbst testen und nach Problemen suchen.
 
Alexey Viktorov:
Sowohl Mt5 als auch mql5 sind nicht schwer zu handhaben.

Nur habe ich den Indikator nicht getestet. Wenn Sie irgendwelche Probleme haben, lassen Sie es mich wissen und ich werde es selbst testen.
ArraySetAsSeries wurde vergessen.
 
o_O:
ArraySetAsSeries vergessen
Ja... Ich bin bereits dabei, es zu reparieren.



Das Problem ist jetzt behoben, überprüft. Die Warnmeldungen sind vorhanden, aber ich weiß nicht, ob sie korrekt sind.

Vanya, bitte lassen Sie mich wissen, ob die Ausschreibungen korrekt sind, nachdem Sie sie überprüft haben. Der Indikator wird in CodeBase sein.
Dateien:
 
Alexey Viktorov:
Ja... Ich bin bereits dabei, es zu reparieren.



Das Problem ist jetzt behoben, getestet. Die Warnmeldungen sind vorhanden, aber ich weiß nicht, ob sie korrekt sind.

Vanya, bitte lassen Sie mich wissen, ob die Warnmeldungen nach der Überprüfung korrekt sind. Der Indikator wird in CodeBase sein.

Ich danke Ihnen! Guter Mann! Mögen Sie für den Rest der Ewigkeit GESUND und profitabel sein!

Ich werde es testen.