오류, 버그, 질문 - 페이지 730

 

문제를 해결하는 방법을 알려주지 않습니까?
테스터에서 Expert Advisor를 처음 실행한 후(Read=false) 통계가 포함된 csv 파일이 생성됩니다.
int OnInit() 코드에서 다음과 같이

   ResetLastError ();
   if (Read)
  {
    filehandle= FileOpen (FileName, FILE_READ | FILE_CSV );
  }
   else
  {
    filehandle= FileOpen ( "razdvigka.csv" , FILE_WRITE | FILE_CSV );
  }
생성된 파일은 tester\Agent\MQL5\Files 디렉토리에 저장됩니다.

그러나 두 번째 실행 (Read=true)에서. 이 파일에서 데이터를 읽어야 하지만 파일이 삭제됩니다.

 
Vitya :

문제를 해결하는 방법을 알려주지 않습니까?
테스터에서 Expert Advisor를 처음 실행한 후(Read=false) 통계가 포함된 csv 파일이 생성됩니다.
int OnInit() 코드에서 다음과 같이

생성된 파일은 tester\Agent\MQL5\Files 디렉토리에 저장됩니다.

그러나 두 번째 실행 (Read=true)에서. 이 파일에서 데이터를 읽어야 하지만 파일이 삭제됩니다.

이 경우 FILE_COMMON 플래그를 사용하여 파일을 생성해야 합니다. 파일은 터미널의 공유 폴더 에 생성됩니다.
Документация по MQL5: Стандартные константы, перечисления и структуры / Состояние окружения / Состояние клиентского терминала
Документация по MQL5: Стандартные константы, перечисления и структуры / Состояние окружения / Состояние клиентского терминала
  • www.mql5.com
Стандартные константы, перечисления и структуры / Состояние окружения / Состояние клиентского терминала - Документация по MQL5
 
tol64 :
이 경우 FILE_COMMON 플래그를 사용하여 파일을 생성해야 합니다. 파일은 터미널의 공유 폴더 에 생성됩니다.
filehandle= FileOpen (FileName, FILE_READ | FILE_CSV | FILE_COMMON );
고맙습니다.
이해했다.
 
Rosh :
ChartIndicator추가 참조
고맙습니다!
 
Service Desk, 응용 프로그램 #359447이 헛되이 느껴지거나 시도되지 않습니까?
 
x100intraday :
Service Desk, 응용 프로그램 #359447이 헛되이 느껴지거나 시도되지 않습니까?
활발한 토론이 진행되고 있습니다. 그러나 답은 아직 준비되지 않았습니다.
 

이것이 지표라고 가정하면)) 처음으로 날짜를 표시하고 차트의 다음 설정(두 번째, 세 번째 사본)에는 날짜가 표시되지 않습니다.

 //+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+

#property indicator_chart_window
#property indicator_buffers 1
#property indicator_plots   1

//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
int OnInit ()
  {
     Print ( TimeCurrent ());
   
   return ( 0 );
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
int OnCalculate ( const int rates_total, const int prev_calculated,
                 const datetime &Time[],
                 const double &Open[],
                 const double &High[],
                 const double &Low[],
                 const double &Close[],
                 const long &TickVolume[],
                 const long &Volume[],
                 const int &Spread[])
{
  
  
  
   return (rates_total);
  
}
 
Karlson :

이것이 지표라고 가정하면)) 처음으로 날짜를 표시하고 차트의 다음 설정(두 번째, 세 번째 사본)에는 날짜가 표시되지 않습니다.

이제 표시기의 계산 부분이 지연과 함께 mql-space에서 제거됩니다. 재사용의 경우에만.

다른(그러나 동일한 기호/시간 프레임을 사용하는) 차트에 동일한(동일한 매개변수 사용) 표시기를 던지면 재초기화도 발생하지 않습니다.

마지막 사본을 삭제한 후 연기를 피우면 시작 시 다시 초기화됩니다.

이것은 최적화의 부작용입니다. :)

추신: 흡연은 건강을 해칩니다!

;)

 

친애하는 프로그래머 여러분,

말해봐, mql5 프로그램 코드에서 속도에 가장 큰 영향을 미치는 것은 무엇입니까? 사실은 내 프로그램을 만들고 코드량을 늘리는 과정에서 속도가 현저히 떨어졌다는 사실을 접했다. 코드가 더 많은 Advisors 및 Examples 폴더의 표준 Expert Advisors가 훨씬 빠르게 작동하지만.

일반적으로 포럼에 기사가 있거나 코드 구조를 포맷하는 가장 좋은 방법에 대한 설명이 있습니다. 초보 프로그래머에게 조언을 주십시오. 고맙습니다!

 
Alex5757000 :

친애하는 프로그래머 여러분,

말해봐, mql5 프로그램 코드에서 속도에 가장 큰 영향을 미치는 것은 무엇입니까? 사실은 내 프로그램을 만들고 코드량을 늘리는 과정에서 속도가 현저히 떨어졌다는 사실을 접했다. 코드가 더 많은 Advisors 및 Examples 폴더의 표준 Expert Advisors가 훨씬 빠르게 작동하지만.

일반적으로 포럼에 기사가 있거나 코드 구조를 포맷하는 가장 좋은 방법에 대한 설명이 있습니다. 초보 프로그래머에게 조언을 주십시오. 고맙습니다!

IMHO, 중첩 루프가 속도에 가장 큰 영향을 미칩니다. 세 번째 깊이까지 중첩된 루프는 실제로 루프의 크기에 대해 매우 주의해야 하는 한계입니다. 예를 들어, 내 P4를 사용하겠습니다. 3Hz의 주파수에서 작동하며 산당 초당 ~ 10개의 램 작업을 생성합니다.

이 수치는 1000x1000x10의 3중 중첩이 있는 주기가 1초 동안 실행된다는 것을 의미합니다. 세 번째 주기가 100으로 증가하면 10초를 얻게 됩니다.