[ARCHIV]Alle Fragen von Anfängern, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht daran vorbei. Ohne dich kann ich nirgendwo hingehen - 5. - Seite 222

 
Was soll der Scheiß? Es ist entweder FLOOD oder ein Themenforum. Für solchen Unsinn sollten Sie für immer gesperrt werden.
 

Der Kern der Frage ist, dass ich die Anzahl der Balken in jedem kontinuierlichen Block des Balkendiagramms des Top-Indikators zählen muss. Ich habe einen solchen Indikator geschrieben (der unterste). Darin entspricht der Wert jeder Balkendiagrammspalte der Anzahl der Balken in einem kontinuierlichen Block des Top-Indikators, aber er beginnt die Anzeige NUR seit seiner Installation (die rote vertikale Linie).Ich möchte, dass es auf den vorherigen Bars angezeigt werden (wie wenn Sie AO oder CCI installieren), d.h. das "Bild" war ähnlich wie der mittlere Indikator (es ist der gleiche Indikator, aber noch früher installiert). Ich werde auf alle Vorschläge mit Dankbarkeit hören (vorzugsweise mit Code-Schnipsel).Ich füge den Code des unteren Indikators.

#property indicator_separate_window
#property indicator_minimum -7
#property indicator_maximum 7
#property indicator_buffers 2
#property indicator_color1 Yellow
#property indicator_color2 DarkOrange
#property indicator_width1  2
#property indicator_width2  2
#property indicator_level1 0.0
//--- buffers
double UpMapBuffer[];
double DnMapBuffer[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
//---- indicators
   SetIndexStyle(0,DRAW_HISTOGRAM);
   SetIndexBuffer(0,UpMapBuffer);
   SetIndexStyle(1,DRAW_HISTOGRAM);
   SetIndexBuffer(1,DnMapBuffer);
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
  {   
    
    int i;

    for(i=1;i<Bars;i++)                                                  
     {
      double AO_Sig_Sig_1 = iCustom(NULL,0,"Signal-Signal",0,i);                           
      double AO_Sig_Sig_2 = iCustom(NULL,0,"Signal-Signal",0,i+1);
                  
      if((AO_Sig_Sig_1!=AO_Sig_Sig_2))
       {
        break;
        i=0;
       }                                                                
     }
         
    i=i*(AO_Sig_Sig_1); 
            
    if(i>0)            
     {
      UpMapBuffer[0]=i;
     }
    else
     {
      UpMapBuffer[0]=0;
     } 
         
    if(i<0)         
     {
      DnMapBuffer[0]=i;
     }
    else
     {
      DnMapBuffer[0]=0;
     }            
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
 
MK07:

Der Kern der Frage ist, dass ich die Anzahl der Balken in jedem kontinuierlichen Block des Balkendiagramms des Top-Indikators zählen muss. Ich habe einen solchen Indikator geschrieben (der unterste). Darin entspricht der Wert jeder Balkendiagrammspalte der Anzahl der Balken in einem kontinuierlichen Block des Top-Indikators, aber er beginnt die Anzeige NUR seit seiner Installation (die rote vertikale Linie).Aber ich brauche es, um auf früheren Bars auch angezeigt werden (wie wenn Sie AO oder CCI installieren), dh das "Bild" war ähnlich wie der mittlere Indikator (es ist das gleiche wie der untere Indikator, aber es war noch früher installiert).

So etwas wie das hier?

-

#property indicator_separate_window
#property indicator_buffers 2
#property indicator_color1 DodgerBlue
#property indicator_color2 Bisque
#property indicator_width1 2
#property indicator_width2 2
//===============================
double fx1[],fx2[];
double ao,ao1;
int ti,n,fs;
//******************************************************************
int init()
{
   SetIndexBuffer(0,fx1); SetIndexStyle(0,2);
   SetIndexBuffer(1,fx2); SetIndexStyle(1,2);
   
   SetLevelValue(0,0);
   SetLevelValue(1,10);
   SetLevelValue(2,20);
   SetLevelValue(3,-10);
   SetLevelValue(4,-20);   

   return(0);
}
//******************************************************************
int start()
{
   int cbi=Bars-IndicatorCounted()-1; if (cbi<0) return(-1); 
   if (cbi==1) cbi--;
   if (cbi>1) {cbi=Bars-37; n=0; ti=Time[cbi];}  
   //-------------------------------------------------
   for(int i=cbi; i>=0; i--) 
   {
      if (ti!=Time[i]) {n++; ti=Time[i];}
      
      ao  = iAO(NULL,0,i); 
      ao1 = iAO(NULL,0,i+1); 
      
      if (ao>ao1) {if (fs==2) n=1; fs=1;} else
      if (ao<ao1) {if (fs==1) n=1; fs=2;}
      
      if (fs==1) {fx1[i]=n;  fx2[i]=0;} else
      if (fs==2) {fx2[i]=-n; fx1[i]=0;}
   } 
   
   return(0);
}
//******************************************************************
 
ANG3110:

So etwas wie das hier?

-


Ich danke Ihnen vielmals! Genau das, was Sie brauchen!
 
Hallo, könnten Sie mir bitte sagen, warum eine Position eröffnet wird, der Stop und der Gewinn aber nicht. Vielen Dank im Voraus!

int start()
{
double Sl =Low[1];
double Tpb =((High[1]-Open[1])/Tp)+Open;
double bar2b;
if (Open[2]<Close[2])bar2b=(High[2]-Open[2];
double bar1b;
if(Open[1]<Close[1])bar1b=(High[1]-Open[1]);
if(bar2b<bar1b)OrderSend(Symbol(),OP_BUY,Lots,Ask,3,Sl,Tpb,",16384,0,Green);
 
xanzel:

Hilfe!!!

einfacher gleitender Durchschnittsindikator

wie man sie in einem EA anwendet auf: Frühere Indikatorendaten

iMA(NULL,0,8,0,MODE_EMA,PRICE_PREVIOUS,0);


Spam. Genug von einer eigenen Branche
 
Vinin:

Es ist besser, viele Worte zu schreiben, als nur zu sagen: "Das ist wohl ein höheres Lebensbekenntnis".
 
xanzel Esist besser, viele Worte zu schreiben, als nur zu helfen, "das ist eine höhere Lebenserwartung ".
Es gibt eine Strafe für Spamming - die Sperrung. Ich rette also nur eine verlorene Seele. Wenn es Ihnen nicht gefällt, helfe ich Ihnen gerne beim Verbot.
 

Meine Herren! Guten Abend!

Könnten Sie mir bitte sagen, warum der Compiler denkt, dass in dem folgenden Code

die Variable int Ticket ist undefiniert.

Es erzeugt einen Fehler

'Ticket' - Variable nicht definiert C:\Programmdateien\Alpari NZ MT4(2)\experts\hhhh.mq4 (18, 6)

int start()



{

 double Price=iOpen (Symbol (),0,0);        
 double SL=NormalizeDouble (Price-3000*Point, Digits);         
 double TP=NormalizeDouble (Price+100*Point, Digits);
 
 
 #include <OMASS.mq4> //объявление и инициализация массива
 double value =  Bid ;// параметру value функции ArrayBsearch присваивается значение текущей цены
 int S = ArrayBsearch(  massiv[43],  value, WHOLE_ARRAY,  0, MODE_ASCEND) //функция ищет самое близкое к текущей цене значение
 if (MathAbs(NormalizeDouble(Bid - S,Digits))<=0.5*Point//если текущая цена отличается от значени возвращенного функцией не более чем 0,5 п.
 if (Bid==Price  )
 int Ticket=OrderSend(Symbol(),OP_BUY,0.1,Ask,3,SL,TP,"jfh",123 );//открыть ордер       
}





Die Variable Ticket ist jedoch auch in der Zuweisungsanweisung im folgenden Code definiert, und der Code lässt sich erfolgreich kompilieren

int start()

{

 double Price=iOpen (Symbol (),0,0);        
 double SL=NormalizeDouble (Price-3000*Point, Digits);         
 double TP=NormalizeDouble (Price+100*Point, Digits);    
 

  
      if (Bid==Price  )
     
  int Ticket=OrderSend(Symbol(),OP_BUY,0.1,Ask,3,SL,TP,"jfh",123 );



Спасибо.
 
solnce600:

Meine Herren! Guten Abend!

Könnten Sie mir bitte sagen, warum der Compiler denkt, dass in dem folgenden Code

die Variable int Ticket ist undefiniert.

Es erzeugt einen Fehler

'Ticket' - Variable nicht definiert C:\Programmdateien\Alpari NZ MT4(2)\experts\hhhh.mq4 (18, 6)


Die Variable Ticket ist jedoch auch in der Zuweisungsanweisung im folgenden Code definiert, und der Code lässt sich erfolgreich kompilieren


Wahrscheinlich fehlen nur Klammern an einer Stelle

if (MathAbs(NormalizeDouble(Bid - S,Digits))<=0.5*Point//если текущая цена отличается от значени возвращенного функцией не более чем 0,5 п.
Grund der Beschwerde: