Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 6. - страница 620

 
Example2:


Но ведь есть же проверка if(OrderOpenPrice()!=ma2)

 


  А что такое  ma2 ?
 
pu6ka:

  А что такое  ma2 ?

Значение индикатора скользяшка
 
Example2:

Значение индикатора скользяшка


 Выведите через Print значение скользящих. Оттого, что идут тики на нулевом баре, значение МА на втором баре не меняется.

Вот у Вас заходит каждый тик, и меняет в ордере одно и то же значение.

 
pu6ka:


 Выведите через Print значение скользящих. Оттого, что идут тики на нулевом баре, значение МА на втором баре не меняется.

Вот у Вас заходит каждый тик, и меняет в ордере одно и то же значение.


Я просто поменял поверку на if(OrderOpenPrice()!=NormalizeDouble(ma1,Digits)  и ошибка пропала. Хотя ваше замечание тоже учту, спасибо
 
artmedia70:
Тогда обратите внимание на цену в торговом приказе. Buy закрывается по Bid, Sell - по Ask. У вас там нет проверки на тип ордера и, соответственно, нет выбора цены - либо Ask, либо Bid


В советнике открываются только селл. Поэтому я не указывал явно. Или надо все равно указывать, может это причина ошибки? А закрываю я селл по Аск.
 
001:

В советнике открываются только селл. Поэтому я не указывал явно. Или надо все равно указывать, может это причина ошибки? А закрываю я селл по Аск.

Может так попробовать:

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

Ввёл в передаваемые переменные символ и магик. У вас же нет на них проверки.

 
Example2:

Я просто поменял поверку на if(OrderOpenPrice()!=NormalizeDouble(ma1,Digits)  и ошибка пропала. Хотя ваше замечание тоже учту, спасибо
  Ну хорошо, что выяснили. Хотя по вещественным числам лучше сравнивать разницу, прочтите по ссылке. Типа, если MathAbs(OrderOpenPrice() - ma1) >= _Point
 
Вчера задавал вопрос по поводу мультитаймфреймового RSI. Неужели никто не знает на него ответ? Собственно, сам вопрос тут https://www.mql5.com/ru/forum/145455/page619#972686
 

Пытаюсь программно, из скрипта, скопировать файл. Не получается. Как правильно?

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

Пытаюсь программно, из скрипта, скопировать файл. Не получается. Как правильно?




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

Причина обращения: