Cualquier pregunta de novato, para no saturar el foro. Profesionales, no pasen de largo. En ninguna parte sin ti - 6. - página 620

 
Example2:


Pero hay una comprobaciónif(OrderOpenPrice()!=ma2)


¿Qué esma2?
 
pu6ka:

¿Qué es ma2?

Significado del indicador de deslizamiento
 
Example2:

El valor del indicador de barra deslizante


Imprime el valor de las diapositivas. Debido a los ticks de la barra cero, el valor de la MA de la segunda barra no cambia.

Aquí tienes cada garrapata entrando y cambiando el mismo valor en el orden.

 
pu6ka:


Imprime el valor de las diapositivas. Debido a los ticks de la barra cero, el valor de la MA de la segunda barra no cambia.

Tienes un tick que entra cada vez y cambia el mismo valor en la orden.


Simplemente cambié la comprobación a if(OrderOpenPrice()!=NormalizeDouble(ma1,Digits) y el error desapareció. No obstante, tendré en cuenta su comentario, gracias
 
artmedia70:
A continuación, preste atención al precio de la orden comercial. La compra se cierra a la oferta, la venta se cierra a la demanda. No se puede comprobar el tipo de orden y, por lo tanto, no se puede elegir el precio, ya sea el de compra o el de venta.


Sólo se abren ventas en el EA. Por eso no lo he especificado explícitamente. O aún debe especificarlo, tal vez haya provocado un error. He cerrado una venta en Ask.
 
001:

En el EA, sólo se abren las ventas. Por eso no lo he especificado explícitamente. ¿O debo especificarlo de todos modos, tal vez sea la causa del error? Y estoy cerrando una venta en Asc.

Tal vez lo intente de esta manera:

//+------------------------------------------------------------------+
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);
}
//+------------------------------------------------------------------+

He introducido un símbolo y un magik en las variables a pasar. No tienes un cheque para ellos.

 
Example2:

Acabo de cambiar la verificación a if(OrderOpenPrice()!=NormalizeDouble(ma1,Digits) y el error ha desaparecido. No obstante, tendré en cuenta su comentario, gracias.
Es bueno que lo hayas descubierto. Aunque en números reales es mejor comparar la diferencia, lee el enlace. Por ejemplo, si MathAbs(OrderOpenPrice() - ma1) >= _Point
 
Ayer hice una pregunta sobre el RSI multitemporal. ¿Nadie sabe la respuesta? En realidad, la propia pregunta está aquíhttps://www.mql5.com/ru/forum/145455/page619#972686
 

Estoy intentando copiar el archivo de forma programática, desde el script. No funciona. ¿Cuál es el camino correcto?

#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:

Estoy intentando copiar el archivo de forma programática, desde el script. No funciona. ¿Cuál es el camino correcto?




#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");
}