Jede Anfängerfrage, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Nirgendwo ohne dich - 6. - Seite 31

 

Bitte beraten Sie, ich habe einen Indikator auf der Grundlage der Bewegung von mehreren Währungspaaren gemacht, aber es geschieht, um neu zu berechnen. Das ist nichts Kosmisches, sondern bezieht sich auf die Parameter von Kerzenständern. Vielleicht geht es schief, weil

die Candlesticks öffnen sich erst zum Zeitpunkt des ersten Ticks für eine bestimmte Kerze, und wenn sich eine neue Kerze für ein Instrument bereits bewegt, hat sie sich noch nicht für das zweite Instrument gebildet. Ich glaube, genau hier liegt das Problem.

Gibt es vielleicht eine Möglichkeit, die Berechnung erst dann durchzuführen, wenn sich alle neuen Kerzen gebildet haben? Vielleicht iTime(symbol1,,1)==iTime(symbol2,,1)?

 

Guten Tag Kollegen!

Bitte teilen Sie mir mit, ob die Logik des Codes korrekt ist.

Das Wesentliche des Codes ist die Formel:

TRIN = (wachsende Paare/abnehmende Paare)/ (Volumen der wachsenden Paare/abnehmende Paare)

double Index[];
double instr_up, instr_dn, vol_dn, vol_up;
//+------------------------------------------------------------------+
int init()
{
   SetIndexBuffer(0,Index);
   SetIndexStyle(0,DRAW_LINE);   
   string Tf;
   if(Period()==1) Tf="M1";
   if(Period()==5) Tf="M5";
   if(Period()==15) Tf="M15";
   if(Period()==30) Tf="M30";
   if(Period()==60) Tf="H1";
   if(Period()==240) Tf="H4";
   if(Period()==1440) Tf="D1";
   if(Period()==10080) Tf="W1";
   if(Period()==43200) Tf="MN";         
        string short_name="TRIN("+Depth+","+Tf+")";
        IndicatorShortName(short_name);
   IndicatorDigits(0);
   return(0);
}

//---- функция проверки цены закрытия на максимум Доллара США за период Depth
int newh(string symbol,int i)
      {
         datetime time_bar = Time[i];
         int bar_no = iBarShift(symbol, Period(), time_bar, false);
                
         if(symbol=="EURUSD" || symbol=="GBPUSD" || symbol=="AUDUSD" || symbol=="NZDUSD")
            {

               int j=iLowest(symbol,Period(),MODE_CLOSE,Depth,bar_no);
               if (iClose(symbol,Period(),bar_no)==iClose(symbol,Period(),j))                    
                  {
                     int nh=1;                                                 
                  }
               else                                                                 
                  {
                     nh=0;                                              
                  }       
            }
         else
            {
               j=iHighest(symbol,Period(),MODE_CLOSE,Depth,bar_no);
               if (iClose(symbol,Period(),bar_no)==iClose(symbol,Period(),j))                    
                  {
                     nh=1;                                                 
                  }
               else                                                                 
                  {
                     nh=0;                                              
                  }             
            }
         return(nh);      
      }

//---- функция проверки цены закрытия на минимум Доллара США за период Depth
int newl(string symbol,int i)
      {
         datetime time_bar = Time[i];
         int bar_no = iBarShift(symbol, Period(), time_bar, false);      
      
         if(symbol=="EURUSD" || symbol=="GBPUSD" || symbol=="AUDUSD" || symbol=="NZDUSD")
            {
               int j=iHighest(symbol,Period(),MODE_CLOSE,Depth,bar_no);
               if (iClose(symbol,Period(),bar_no)==iClose(symbol,Period(),j))                    
                  {
                     int nl=1;                                                 
                  }
               else                                                                 
                  {
                     nl=0;                                              
                  }       
            }
         else
            {
               j=iLowest(symbol,Period(),MODE_CLOSE,Depth,bar_no);
               if (iClose(symbol,Period(),bar_no)==iClose(symbol,Period(),j))                    
                  {
                     nl=1;                                                 
                  }
               else                                                                 
                  {
                     nl=0;                                              
                  }             
            }
         return(nl);      
      }
//+------------------------------------------------------------------+
int start()
{
   int limit=Bars-IndicatorCounted();
   for(int i=1; i<limit; i++)
          {       
            if (newh("EURUSD",i) > 0                              //-- Если пара росла, то
             {instr_up=instr_up+1;vol_up+=iVolume("EURUSD",0,i);}   //-- instr_up - увеличиваем на 1 и vol_up - увеличиваем на Volume по этой паре   
           else //if (newl("EURUSD",i) > 0)                         //-- иначе
              {instr_dn=instr_dn+1;vol_dn+=iVolume("EURUSD",0,i);}  //-- instr_dn - увеличиваем на 1 и vol_dn - увеличиваем на Volume по этой паре
              
            if (newh("GBPUSD",i) > 0)
             {instr_up=instr_up+1;vol_up+=iVolume("GBPUSD",0,i);}
           else //if (newl("GBPUSD",i) > 0)
              {instr_dn=instr_dn+1;vol_dn+=iVolume("GBPUSD",0,i);}
            
            if (newh("USDCHF",i) > 0)
             {instr_up=instr_up+1;vol_up+=iVolume("USDCHF",0,i);}
           else //if (newl("USDCHF",i) > 0)
              {instr_dn=instr_dn+1;vol_dn+=iVolume("USDCHF",0,i);}
            
            if (newh("USDJPY",i) > 0)
             {instr_up=instr_up+1;vol_up+=iVolume("USDJPY",0,i);}
           else if (newl("USDJPY",i) > 0)
              {instr_dn=instr_dn+1;vol_dn+=iVolume("USDJPY",0,i);}
            
            if (newh("AUDUSD",i) > 0)
             {instr_up=instr_up+1;vol_up+=iVolume("AUDUSD",0,i);}
           else //if (newl("AUDUSD",i) > 0)
              {instr_dn=instr_dn+1;vol_dn+=iVolume("AUDUSD",0,i);}
            
            if (newh("USDCAD",i) > 0)
             {instr_up=instr_up+1;vol_up+=iVolume("USDCAD",0,i);}
           else //if (newl("USDCAD",i) > 0)
              {instr_dn=instr_dn+1;vol_dn+=iVolume("USDCAD",0,i);}
            
            if (newh("NZDUSD",i) > 0)
             {instr_up=instr_up+1;vol_up+=iVolume("NZDUSD",0,i);}
           else //if (newl("NZDUSD",i) > 0)
              {instr_dn=instr_dn+1;vol_dn+=iVolume("NZDUSD",0,i);}   
     
     if (instr_dn == 0)instr_dn=EMPTY;  // -- Если 
     if (vol_dn == 0)vol_dn=EMPTY;      // -- значения
     if (instr_up == 0)instr_up=EMPTY;  // -- нулевые
     if (vol_up == 0)vol_up=EMPTY;
     
     Index[i]=(instr_up/instr_dn)/(vol_up/vol_dn);  // -- TRIN
     
     instr_up=0;instr_dn=0;vol_up=0;vol_dn=0;  // -- Обнуление
     }
     
        return(0);
}

Das ist dabei herausgekommen:

TRIN

Ich danke Ihnen!

 

Könnten Sie mich bitte beraten

1 Expert Advisor kann Mittel zum Saldo hinzufügen

2, wenn der Händler über einen Prozentsatz an freien Mitteln verfügt - wie kann dies im Tester implementiert werden oder funktioniert es so wie es ist?

 

1. Zu Testzwecken ist es einfacher, einen guten Anfangsbetrag festzulegen und das MM auf der Grundlage des richtigen Betrags aufzubauen.

2. Für Testzwecke ist dies absolut unnötig. Die Spanne ist wichtiger.

 
splxgf:

1. Zu Testzwecken ist es einfacher, einen guten Anfangsbetrag festzulegen und das MM auf der Grundlage des richtigen Betrags aufzubauen.

2. Für Testzwecke ist dies absolut unnötig. Die Spanne ist wichtiger.


und 1 und 2 wissen sie, wie und was ich teste und warum ich es brauche? sehen sie meinen experten? werden sie mir sagen, was ich besser brauche?

Und für einen Snack ist der Aufstrich für mich nicht wichtig, aber der Austausch ist entscheidend ))))

 
sdm:


und 1 und 2 wissen sie, wie und was ich teste und warum ich es brauche? sehen sie meinen experten? werden sie mir sagen, was ich am besten kann?

Und noch etwas: Der Spread ist mir egal, aber ich interessiere mich für den Swap. )))) Es gibt verschiedene Arten von Experten.


Oder Sie sind in dieser Richtung. Oder haben Sie nicht gelernt, wie man Fragen stellt?
 
sdm:


und 1 und 2 wissen sie, wie und was ich teste und warum ich es brauche? sehen sie meinen experten? werden sie mir sagen, was ich besser brauche?

und für einen Snack ist mir der Brotaufstrich egal, aber die Tauschbörse ist mir wichtig ))))


Nun, was gibt es da zu wissen, wenn Zinsen erhoben werden, sollte ich mich besser zurückhalten... Was die Swaps angeht, so laufen meine Bestellungen ein Jahr lang, und Swaps stören mich überhaupt nicht.

Haben die Zinssätze Zeit, sich in dieser Zeit zu ändern, oder haben Sie alles mit Prognosen für die Zukunft geplant?

 
Vinin:

Oder es ist folgendermaßen. Oder vielleicht haben Sie nicht gelernt, wie man Fragen stellt.
Diese Fragen sind rhetorisch und nicht für jeden gedacht, sondern nur als Teil eines Kommentars und Ihr Link ist unangemessen.
 
sdm:
Diese Fragen sind rhetorisch und nicht für jeden gedacht, sondern als Teil eines Kommentars, und Ihr Link ist unangemessen.

Noch ein Trick und du bist in der Hundehütte. für die unangemessene Behandlung anderer Mitglieder des Forums durch das Stellen langatmiger Fragen
 
splxgf:


Nun, was gibt es da zu wissen, wenn Zinsen anfallen, möchte ich mich lieber zurückhalten... Was Swaps angeht, so habe ich seit einem Jahr Bestellungen, Swaps stören mich überhaupt nicht.

Haben die Zinssätze Zeit, sich in dieser Zeit zu ändern, oder haben Sie alles mit Prognosen für die Zukunft geplant?

Ich wiederhole, dass alle Experten (Systeme) unterschiedlich sind, ich habe meinen gesamten Gewinn nach einem Jahr (bei einigen Geschäften) aufgefressen und ich erhalte ein gutes Gleichgewichtswachstum mit geringen freien Mitteln und es spielt keine Rolle, welche Art von Gewinn ich erhalte, ich mache keine Vorhersagen, ich versuche, alles zu nutzen, was ich habe.
Grund der Beschwerde: