Erreurs, bugs, questions - page 1466

 
Alexandr Bryzgalov:

c'est mieux de le dire comme ça )

skype:login_contact?call

Je crois que je reçois des appels tout le temps. C'est un composeur automatique de mon profil, je ferais mieux de le changer en chat.
 
Le terminal web a perdu son compte. J'ai enregistré mon vrai compte il y a 3-4 jours, tout allait bien. Et puis j'ai regardé, pas de compte. Pas du tout. Il ne demande pas de login ou de mot de passe, rien dans l'onglet "Comptes de trading" du profil utilisateur du forum MQL...
 

je voulais trouver sur l'indicateur stochastique les deux dernières entrées à travers les lignes des niveaux haut et bas, trois entrées s'affichent normalement et sauvegardent leurs valeurs et la quatrième ne fonctionne pas correctement se remet à zéro en sortant de la zone basse dites-moi quelle est l'erreur

//--- находим индекс бара вход в верхняя зону
   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:

Je voulais trouver sur l'indicateur stochastique les deux dernières entrées à travers les lignes de niveau haut et bas, trois entrées s'affichent normalement et sauvegardent leurs valeurs et la quatrième ne fonctionne pas correctement se remet à zéro en quittant la zone inférieure, veuillez me conseiller quelle est l'erreur.

J'ai créé un script rapide pour vous donner un exemple :

//+------------------------------------------------------------------+
//|                                         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));
}
//+------------------------------------------------------------------+
 
Merci pour le script, jusqu'à présent cela ressemble à des mathématiques supérieures pour un élève de première année, je n'ai pas encore appris à travailler avec des tableaux. J'ai trouvé une erreur dans mon code, j'ai dû insérer d'autres données de barres dans la boucle et tout a fonctionné comme il se doit.
for(n=1; n<(Bars-2);n++)
 

Je n'arrive pas à faire en sorte que la nouvelle fenêtre du graphique s'ouvre au moins à moitié. Lorsque je fais un clic droit sur n'importe quel instrument dans la fenêtre Market Watch et que je sélectionne la commande "Chart Window", le graphique s'ouvre de manière incomplète :

Graphique en demi-teinte

Comment puis-je surmonter cela ?

 
Karputov Vladimir:

Je n'arrive pas à faire en sorte que la nouvelle fenêtre du graphique s'ouvre au moins à moitié.

Je suis sûr que les développeurs vont le corriger.

En attendant, il est nécessaire de disposer d'un autre graphique de tout instrument en état d'effondrement. C'est-à-dire que vous ouvrez USDJPY, vous le développez manuellement, puis vous le minimisez manuellement. Après cela, vous pouvez ouvrir n'importe quel graphique souhaité et il sera dans la fenêtre complète.

Vous le savez probablement déjà.

 

Dans les dernières versions de MT4, lorsqu'on utilise le mode portable, il n'est pas possible de lancer MetaEditor - j'ai écrit au service d'assistance, mais il n'y a pas eu de réponse intelligible.

Si vous exécutez l'application elle-même dans le dossier avec MT4, MetaEditor est chargé avec l'environnement dans le dossier AppData pour Windows, si vous appuyez sur "changer d'expert" dans le terminal, la même chose se produit, et avant il a été chargé à partir du dossier, où le terminal a été chargé dans le mode portable.

 

Journal d'une seule exécution d'un conseiller expert vide dans le testeur MT4 en utilisant les prix d'ouverture:

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

Vous pouvez voir dans le journal que l'EA lui-même passe l'historique en zéro temps. Il faut cinq secondes pour préparer les données historiques (un peu plus de 100 000 barres). Cela ne s'est jamais produit auparavant.

Cela fonctionne 100% du temps. MT4 build 950, Windows7 SP1 x64.

Pouvez-vous m'indiquer quel modèle extrême ne souffre pas de cette maladie ? DOWNGRADE est nécessaire.

 

Il y a plusieurs comptes de différents serveurs de trading sur le même terminal. En conséquence, il y a plusieurs dossiers historiques dans /history.

Est-il possible de double-cliquer sur un compte et de passer immédiatement aux données historiques du serveur commercial correspondant sans s'y connecter ?

Cela est nécessaire pour pouvoir passer rapidement d'un historique à l'autre pour un même symbole lorsqu'il est hors ligne dans le testeur.


Maintenant, vous devez soit avoir plusieurs terminaux hors ligne correspondants avec des historiques différents, soit vous connecter à un terminal, vous connecter à un autre serveur et vous déconnecter à nouveau, en perdant l'historique personnalisé.