Fehler, Irrtümer, Fragen - Seite 1466

 
Комбинатор:
skype:login_kontakt?chat

es ist besser, es so zu formulieren)

skype:login_contact?call

 
Alexandr Bryzgalov:

es ist besser, es so zu formulieren)

skype:login_contact?call

Ich glaube, ich bekomme ständig Anrufe. Das ist ein automatischer Anrufbeantworter von meinem Profil, ich sollte ihn besser auf Chat umstellen.
 
Das Webterminal hat sein Konto verloren. Ich habe mein echtes Konto vor 3-4 Tagen registriert, alles war in Ordnung. Und dann habe ich nachgesehen, kein Konto. Nein, überhaupt nicht. Fragt nicht nach Login oder Passwort, nichts in der Registerkarte "Handelskonten" des MQL-Forum-Benutzerprofils...
 

wollte auf dem Indikator stochastischen letzten beiden Eingänge durch die Linien der Ebenen nach oben und unten zu finden, sind drei Eingänge normal angezeigt und speichern ihre Werte und die vierte nicht richtig funktioniert auf Null zurückgesetzt, wenn die untere Zone verlassen mir sagen, was der Fehler

//--- находим индекс бара вход в верхняя зону
   for(n=0; n<(Bars-1);n++)
     {
       if(iStochastic(Symbol(),0,5,3,3,MODE_SMA,1,0,n)<up_level && iStochastic(Symbol(),0,5,3,3,MODE_SMA,1,0,n-1) >up_level )
    //     break;
      UpLevel_1=n+1;
         
     }
//--- находим индекс бара второго ближайшего входа верхний уровень
  // for(n= UpLevel_1+1; n<(Bars-1);n++)
     {
      if(iStochastic(Symbol(),0,5,3,3,MODE_SMA,1,0,n)<up_level && iStochastic(Symbol(),0,5,3,3,MODE_SMA,1,0,n-1) >up_level )
      //   break;
      UpLevel_2=n+1;
      UpperPrice_2=iHigh(Symbol(),PERIOD_CURRENT,UpLevel_2);
     
     }
//--- находим индекс бара первого ближайшего входа нижний уровень
  for(n=0; n<(Bars-1);n++)
     {
     if(iStochastic(Symbol(),0,5,3,3,MODE_SMA,1,0,n)>dw_level && iStochastic(Symbol(),0,5,3,3,MODE_SMA,1,0,n-1) <dw_level )  
         break;
      DwLevel_1=n+1;
      LowerPrice_1=iLow(Symbol(),PERIOD_CURRENT,DwLevel_1);
     }
//--- находим индекс бара второго ближайшего входа нижний уровень
   for(n=DwLevel_1+1; n<(Bars-1);n++)
     {
       if(iStochastic(Symbol(),0,5,3,3,MODE_SMA,1,0,n)>dw_level && iStochastic(Symbol(),0,5,3,3,MODE_SMA,1,0,n-1) <dw_level )
         break;
      DwLevel_2=n+1;
      LowerPrice_2=iLow(Symbol(),PERIOD_CURRENT,DwLevel_2);
      Comment("вход верхняя зона" + DoubleToStr(UpLevel_1,0)+ "\n" + // работает правельно показания сохраняет
              "предыдущий вход верхняя зона" + DoubleToStr(UpLevel_2,0)+ "\n" + // работает правельно показания сохраняет
              " вход нижняя зона" + DoubleToStr(DwLevel_1,0)+ "\n" +  //работает неправельно обнуляет показания когда выходит из нижней зоны
              " предыдущий вход нижняя зона" + DoubleToStr(DwLevel_2,0)); // работает правельно показания сохраняет
     }
 
Mikhail Lebedev:

Ich wollte auf dem Indikator stochastischen letzten beiden Eingänge durch die Ebene Linien nach oben und unten zu finden, drei Eingänge sind normal angezeigt und speichern ihre Werte und die vierte nicht richtig funktioniert auf Null zurückgesetzt, wenn das Verlassen der unteren Zone, bitte beraten, was ist der Fehler

Ich habe ein schnelles Skript erstellt, um Ihnen ein Beispiel zu geben:

//+------------------------------------------------------------------+
//|                                         FindStochasticSignal.mq4 |
//|              Copyright 2015, Artem A. Trishkin, Skype artmedia70 |
//|                       https://login.mql5.com/ru/users/artmedia70 |
//+------------------------------------------------------------------+
#property copyright "Copyright 2016, Artem A. Trishkin, Skype artmedia70"
#property link      "https://login.mql5.com/ru/users/artmedia70"
#property version   "1.00"
#property strict
#property script_show_inputs
//--- input parameters
input int      PeriodK=5;                       // Period %K Stochastic
int periodK=(PeriodK<1)?1:PeriodK;
input int      PeriodD=3;                       // Period %D Stochastic
int periodD=(PeriodD<1)?1:PeriodD;
input int      SlowingStc=3;                    // Slowing Stochastic
int slowingStc=(SlowingStc<1)?1:SlowingStc;
input ENUM_MA_METHOD MA_Method=MODE_SMA;        // MA Method Stochastic
input ENUM_STO_PRICE AppledPrice=STO_LOWHIGH;   // Appled Price Stochastic
input double LevelUP=70.0;                      // Up level Stochastic
input double LevelDN=30.0;                      // Down level Stochastic
input int      NumberCross=4;       // Number of Cross stochastics level
int numberCross=(NumberCross<1)?1:NumberCross;
//--- Arrays
double MassiveCrossUP[][2];
double MassiveCrossDN[][2];
MqlRates rates[];
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//---
   int bars=iBars(Symbol(),Period());
   if(CopyRates(Symbol(),PERIOD_CURRENT,1,bars-1,rates)>0) {
      ArraySetAsSeries(rates,true);
      int nup=0, ndn=0;
      ArrayResize(MassiveCrossUP,nup,numberCross);
      ArrayResize(MassiveCrossDN,ndn,numberCross);
      for(int i=1; i<Bars; i++) {
         double StochMain0=GetDataSTO(Symbol(),Period(),periodK,periodD,slowingStc,MA_Method,AppledPrice,MODE_MAIN,i);
         double StochMain1=GetDataSTO(Symbol(),Period(),periodK,periodD,slowingStc,MA_Method,AppledPrice,MODE_MAIN,i+1);
         if(nup>numberCross && ndn>numberCross) break;
         if(StochMain0<LevelUP && StochMain1>=LevelUP) {
            nup++;
            if(nup<=numberCross) {
               ArrayResize(MassiveCrossUP,nup);
               MassiveCrossUP[nup-1][0]=int(rates[i].time);
               MassiveCrossUP[nup-1][1]=rates[i].high;
               }
            }
         if(StochMain0>LevelDN && StochMain1<=LevelDN) {
            ndn++;
            if(ndn<=numberCross) {
               ArrayResize(MassiveCrossDN,ndn);
               MassiveCrossDN[ndn-1][0]=int(rates[i].time);
               MassiveCrossDN[ndn-1][1]=rates[i].low;
               }
            }
         }
      }
   //---
   string text_up_crossing="Пересечения сверху-вниз:\n", text_dn_crossing="Пересечения снизу-вверх:\n";
   for(int i=0; i<ArrayRange(MassiveCrossUP,0); i++) {
      string date_cross=TimeToString(int(MassiveCrossUP[i][0]));
      string value_cross=DoubleToString(MassiveCrossUP[i][1],Digits());
      string txt_i="\n"+IntegerToString(i+1)+"-е пересечение уровня "+DoubleToString(LevelUP,1)+", время бара "+date_cross+", цена High свечи: "+value_cross;
      text_up_crossing+=txt_i;
      }
   text_up_crossing+="\n====================\n";
   for(int i=0; i<ArrayRange(MassiveCrossDN,0); i++) {
      string date_cross=TimeToString(int(MassiveCrossDN[i][0]));
      string value_cross=DoubleToString(MassiveCrossDN[i][1],Digits());
      string txt_i="\n"+IntegerToString(i+1)+"-е пересечение уровня "+DoubleToString(LevelDN,1)+", время бара "+date_cross+", цена Low свечи: "+value_cross;
      text_dn_crossing+=txt_i;
      }
   Comment(text_up_crossing+text_dn_crossing);
  }
//+------------------------------------------------------------------+
double GetDataSTO(string sy, int timeframe, int k_period, int d_period, int slowing, ENUM_MA_METHOD ma_method, ENUM_STO_PRICE price_field, int mode, int pos) {
   return(iStochastic(sy,timeframe,k_period,d_period,slowing,ma_method,price_field,mode,pos));
}
//+------------------------------------------------------------------+
 
Danke für das Skript, bisher sieht es aus wie höhere Mathematik für einen Erstklässler, ich habe noch nicht gelernt, wie man mit Arrays arbeitet. Ich habe einen Fehler in meinem Code gefunden, musste andere Taktdaten in die Schleife einfügen und alles funktionierte wie es sollte
for(n=1; n<(Bars-2);n++)
 

Ich schaffe es nicht, das neue Diagrammfenster wenigstens zur Hälfte zu öffnen. Wenn ich mit der rechten Maustaste auf ein beliebiges Instrument im Market Watch-Fenster klicke und den Befehl "Chart-Fenster" wähle, wird der Chart unterdimensioniert geöffnet:

Grafik in halber Größe

Wie kann ich dieses Problem lösen?

 
Karputov Vladimir:

Ich schaffe es nicht, das neue Diagrammfenster wenigstens halb zu öffnen.

Ich bin sicher, dass die Entwickler das Problem beheben werden.

In der Zwischenzeit ist es notwendig, ein weiteres Diagramm eines beliebigen Instruments in einem zusammengebrochenen Zustand zu haben. Das heißt, Sie öffnen USDJPY, erweitern es manuell und minimieren es dann manuell. Danach können Sie jedes beliebige Diagramm öffnen, das dann im Vollbild angezeigt wird.

Das wissen Sie wahrscheinlich schon.

 

In den neuesten Builds von MT4 gibt es bei Verwendung des portablen Modus keine Möglichkeit, den MetaEditor zu starten - ich habe den Service Desk angeschrieben, aber es gab keine nachvollziehbare Antwort.

Wenn Sie die Exe selbst in den Ordner mit MT4 ausführen, wird MetaEditor mit Umgebung in den Ordner AppData für Windows geladen, wenn Sie "change expert" im Terminal drücken, passiert das gleiche, und bevor es aus dem Ordner geladen wurde, wo das Terminal im portablen Modus gestartet wurde.

 

Protokoll eines einzelnen Laufs eines leeren Expert Advisors im MT4-Tester mit Eröffnungskursen:

112972 tick events (113071 bars, 225205 bar states) processed in 0:00:00.016 (total time 0:00:05.039)

Sie können aus dem Protokoll ersehen, dass der EA selbst den Verlauf in Nullzeit durchläuft. Es dauert fünf Sekunden, um historische Daten (etwas mehr als 100K Balken) vorzubereiten. Das hat es noch nie gegeben.

Es funktioniert zu 100 %. MT4 Build 950, Windows7 SP1 x64.

Können Sie mir sagen, welcher extreme Körperbau nicht unter dieser Krankheit leidet? DOWNGRADE ist erforderlich.