Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas à côté. Nulle part sans toi - 6. - page 620

 
Example2:


Mais il y a une vérificationsi(OrderOpenPrice()!=ma2)


Qu'est-ce quema2 ?
 
pu6ka:

Qu'est-ce que ma2 ?

Signification de l'indicateur de glissement
 
Example2:

La valeur de l'indicateur de la barre coulissante


Imprime la valeur des diapositives. En raison des ticks sur la barre zéro, la valeur de la MA sur la deuxième barre ne change pas.

Ici, chaque tic arrive et modifie la même valeur dans l'ordre.

 
pu6ka:


Imprime la valeur des diapositives. En raison des ticks sur la barre zéro, la valeur de la MA sur la deuxième barre ne change pas.

Ici, chaque tic arrive et modifie la même valeur dans l'ordre.


J'ai simplement changé la vérification en if(OrderOpenPrice()!=NormalizeDouble(ma1,Digits) et l'erreur a disparu. Je vais prendre en compte votre commentaire, merci.
 
artmedia70:
Ensuite, faites attention au prix indiqué dans l'ordre de négociation. L'achat se clôture à l'offre, la vente se clôture à la demande. Il n'y a pas de vérification du type d'ordre et donc pas de choix de prix - soit Ask, soit Bid.


Seules les ventes sont ouvertes dans l'EA. C'est pourquoi je ne l'ai pas spécifié explicitement. Ou alors il faut quand même le préciser et cela peut provoquer une erreur. J'ai conclu une vente sur Ask.
 
001:

Dans l'EA, seules les ventes sont ouvertes. C'est pourquoi je ne l'ai pas spécifié explicitement. Ou dois-je quand même le spécifier, peut-être est-ce la cause de l'erreur ? Et je ferme une vente sur Asc.

Essayez peut-être de cette façon :

//+------------------------------------------------------------------+
bool CheckForLongetivityClose_Sell(int symbol, int magic) {
   if(DayOfWeek()==0 || DayOfWeek()==6) return;
   for(int i=OrdersTotal()-1; i>=0; i--) {
      if(OrderSelect(i,SELECT_BY_POS)) {
         if(OrderMagicNumber()!=magic) continue;
         if(OrderSymbol()!=symbol)     continue;
         if(OrderType()!=OP_SELL)      continue;
         datetime openTime_S= OrderOpenTime();
         int timeDistance_S = TimeCurrent()-openTime_S;
         if(timeDistance_S>60*BarrierMinute_S) {
            if(OrderClose(OrderTicket(),OrderLots(),Ask,3,clrRed)) return(true);
            }
         }
      }
   return(false);
}
//+------------------------------------------------------------------+

J'ai entré un symbole et un magik dans les variables à transmettre. Vous n'avez pas de chèque pour eux.

 
Example2:

J'ai juste changé la vérification en if(OrderOpenPrice()!=NormalizeDouble(ma1,Digits) et l'erreur a disparu. Je vais prendre en compte votre commentaire, merci.
Eh bien, c'est bien que vous l'ayez découvert. Bien que sur des chiffres réels, il est préférable de comparer la différence, lisez le lien. Par exemple, si MathAbs(OrderOpenPrice() - ma1) >= _Point
 
Hier, j'ai posé une question sur le RSI à plusieurs échelles. Personne ne connaît la réponse à cette question ? En fait, la question elle-même est icihttps://www.mql5.com/ru/forum/145455/page619#972686
 

J'essaie de copier le fichier de manière programmatique, à partir du script. Ça ne marche pas. Quelle est la bonne méthode ?

#import  "shell32.dll"
    int ShellExecuteA(int hwnd,string Operation,string File,string Parameters,string Directory,int ShowCmd); 
#import

int Copyini;

int start()
   {
    //-------------------------- Cкопируем ini файл в песочницу Тестера ----------
    //Copyini = ShellExecuteA(0, "Open", "xcopy", "\""+PuthTerminal+FileOptim1+"\" \""+PuthTester_h+"\" /y", "", 3);
    //Copyini = ShellExecuteA(0,"Open","xcopy","D:\Alpari_Terminal\MQL4\Files\optimise.ini D:\Alpari_Terminal_Tester\tester\optimise.ini /y","",3);
    //Copyini = ShellExecuteA(0,"Open","xcopy","D:\Alpari_Terminal\MQL4\Files\optimise.ini D:\Alpari_Terminal_Tester\tester /y","",3);
      Copyini = ShellExecuteA(0,"Open","xcopy","D:\Alpari_Terminal\MQL4\Files\optimise D:\Alpari_Terminal_Tester\tester /y","",3);

    return(0);
   }
 
Leo59:

J'essaie de copier le fichier de manière programmatique, à partir du script. Ça ne marche pas. Quelle est la bonne méthode ?




#import "kernel32.dll"
  bool CopyFileW
       ( string lpExistingFileName,         // Имя файла источника
         string lpNewFileName,              // Имя нового файла
         bool   bFailIfExists );            // Не перезаписывать
#import




if (CopyFileW(srcFile , dstFile , False)) 
{

}
else
   ... ошибка



// под ваш случай

CopyFileW( "D:\\Alpari_Terminal\\MQL4\\Files\\optimise.ini" "D:\\Alpari_Terminal_Tester\\tester\\optimise.ini", False);

// или 

string sFileSRC =  "D:\\Alpari_Terminal\\MQL4\\Files\\optimise.ini";
string sFileDST =  "D:\\Alpari_Terminal_Tester\\tester\\optimise.ini;
if ( CopyFileW( sFileSRC,  sFileDST , False) )
{

}
else
{
   printf("error");
}

Raison: