포럼을 어지럽히 지 않도록 모든 초보자 질문. 프로, 놓치지 마세요. 너 없이는 아무데도 - 6. - 페이지 905

 

메시지가 무엇인지 알려주세요. 수정하는 방법?

2015.06.18 04:04:12.156 메모리 처리기: 33150바이트의 메모리를 할당할 수 없습니다.

 
yosuf :

메시지가 무엇인지 알려주세요. 수정하는 방법?

2015.06.18 04:04:12.156 메모리 처리기: 33150바이트의 메모리를 할당할 수 없습니다.

메모리가 부족합니다
 
yosuf :

메시지가 무엇인지 알려주세요. 수정하는 방법?

2015.06.18 04:04:12.156 메모리 처리기: 33150바이트의 메모리를 할당할 수 없습니다.

일부 전문가나 단말기의 인디케이터는 메모리를 많이 소모하므로 하나씩 삭제해보시면 그 이유를 아실 수 있을 것입니다. 대부분의 경우 이것은 코드가 최적화되지 않았거나 새 막대가 아닌 각 눈금 에서 막대를 크게 다시 계산할 때 발생합니다.
 
Vinin :
메모리가 부족합니다
고맙습니다.
 
MVS :
일부 전문가나 단말기의 인디케이터는 메모리를 많이 소모하므로 하나씩 삭제해보시면 그 이유를 아실 수 있을 것입니다. 대부분의 경우 이것은 코드가 최적화되지 않았거나 새 막대가 아닌 각 눈금에서 막대를 크게 다시 계산할 때 발생합니다.
감사합니다.
 

안녕하세요.

Bin 유형의 하나의 파일에 한 번에 여러 배열을 쓸 수 있는지 여부를 알려줄 수 있는 사람이 있습니까?

그렇게 가능한가요?

예 1:

무효 쓰기 데이터( const   국제 )

{
//--- 파일 열기
    재설정 마지막 오류 ();
    int 핸들 = FileOpen (경로, FILE_WRITE | FILE_BIN );
    if (핸들!= INVALID_HANDLE )
{

       FileWriteArray (핸들,arr1,0,n);

FileWriteArray (핸들,arr2,0,n);
       //--- 파일 닫기
       파일 닫기 (핸들);
}

}

아니면 필요합니까?

예2:

무효 쓰기 데이터( const   국제 )

{
//--- 파일 열기
    재설정 마지막 오류 ();
    int 핸들 = FileOpen (경로, FILE_WRITE | FILE_BIN );
    if (핸들!= INVALID_HANDLE )
{
       FileWriteArray (핸들,arr1,0,n);

       FileSeek (핸들, 0, SEEK_END );

FileWriteArray (핸들,arr2,0,n);
       //--- 파일 닫기
       파일 닫기 (핸들);
}

}

 

친구, 칠면조 최적화를 도와주세요. PC에서는 모든 것이 정상이지만 오래된 랩톱에서는 속도가 많이 느려집니다.

추신. 차트에 필요하지 않음, EA에서 호출

미리 감사합니다

 #property copyright "*"
#property link        "*"

#property indicator_separate_window
#property indicator_buffers 5
#property indicator_color1 DodgerBlue
#property indicator_color2 Orange
#property indicator_color3 White
#property indicator_color4 Yellow
#property indicator_color5 Lime

#property indicator_maximum 1
#property indicator_minimum - 1

#property indicator_level1 0.7
#property indicator_level2 - 0.7

extern bool       ShowComment= false ;  
extern int        Per= 14 ;
extern bool       GBPUSD_v_EURUSD= true ;
extern bool       AUDUSD_v_EURUSD= true ;
extern bool       USDCHF_v_EURUSD= true ;
extern bool       USDJPY_v_EURUSD= true ;
extern bool       USDCAD_v_EURUSD= true ;

 
 
double CloseEURUSD,CloseGBPUSD,CloseAUDUSD;
double CloseUSDCHF,CloseUSDJPY,CloseUSDCAD;
double summaEURUSD= 0 ,summaGBPUSD= 0 ,summaAUDUSD= 0 ;
double summaUSDCHF= 0 ,summaUSDJPY= 0 ,summaUSDCAD= 0 ;
double summaPow_EURUSD= 0 ,summaPow_GBPUSD= 0 ,summaPow_AUDUSD= 0 ;
double summaPow_USDCHF= 0 ,summaPow_USDJPY= 0 ,summaPow_USDCAD= 0 ;
double summa_eur_gbp= 0 ,summa_eur_aud= 0 ,summa_eur_chf= 0 ,summa_eur_jpy= 0 ,summa_eur_cad= 0 ;
double sredneeEURUSD= 0 ,sredneeGBPUSD= 0 ,sredneeAUDUSD= 0 ;
double sredneeUSDCHF= 0 ,sredneeUSDJPY= 0 ,sredneeUSDCAD= 0 ;
double Q_eur_usd= 0 ,Q_gbp_usd= 0 ,Q_aud_usd= 0 ,Q_usd_chf= 0 ,Q_usd_jpy= 0 ,Q_usd_cad= 0 ;
double Correl_eur_gbp= 0 ,Correl_eur_aud= 0 ,Correl_eur_chf= 0 ,Correl_eur_jpy= 0 ,Correl_eur_cad= 0 ;


double ExtMapBuffer1[];
double ExtMapBuffer2[];
double ExtMapBuffer3[];
double ExtMapBuffer4[];
double ExtMapBuffer5[];

//+------------------------------------------------------------------+
//| expert initialization function                                   |
//+------------------------------------------------------------------+
int init()
  {
//----
   SetIndexStyle( 0 , DRAW_LINE );
   SetIndexBuffer ( 0 ,ExtMapBuffer1);   
   
   SetIndexStyle( 1 , DRAW_LINE );
   SetIndexBuffer ( 1 ,ExtMapBuffer2);    
   
   SetIndexStyle( 2 , DRAW_LINE );
   SetIndexBuffer ( 2 ,ExtMapBuffer3);    
   
   SetIndexStyle( 3 , DRAW_LINE );
   SetIndexBuffer ( 3 ,ExtMapBuffer4);    
   
   SetIndexStyle( 4 , DRAW_LINE );
   SetIndexBuffer ( 4 ,ExtMapBuffer5);    
   
   SetIndexLabel( 0 , "GBPUSD v EURUSD" );
   SetIndexLabel( 1 , "AUDUSD v EURUSD" );
   SetIndexLabel( 2 , "USDCHF v EURUSD" );
   SetIndexLabel( 3 , "USDJPY v EURUSD" );
   SetIndexLabel( 4 , "USDCAD v EURUSD" );
   
   IndicatorDigits( 2 );
   
//----
   return ( 0 );
  }
//+------------------------------------------------------------------+
//| expert deinitialization function                                 |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   if (ShowComment) Comment ( "" );
//----
   return ( 0 );
  }
//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start(){

   int limit= Bars -IndicatorCounted()- 1 ;
   
       for ( int j=limit;j>= 0 ;j--){
         sredneeEURUSD= 0 ;
         sredneeGBPUSD= 0 ;
         sredneeAUDUSD= 0 ;
         sredneeUSDCHF= 0 ;
         sredneeUSDJPY= 0 ;
         sredneeUSDCAD= 0 ;
         summaEURUSD= 0 ;
         summaGBPUSD= 0 ;
         summaAUDUSD= 0 ;
         summaUSDCHF= 0 ;
         summaUSDJPY= 0 ;
         summaUSDCAD= 0 ;
         summaPow_EURUSD= 0 ;
         summaPow_GBPUSD= 0 ;
         summaPow_AUDUSD= 0 ;
         summaPow_USDCHF= 0 ;
         summaPow_USDJPY= 0 ;
         summaPow_USDCAD= 0 ;
         summa_eur_gbp= 0 ;
         summa_eur_aud= 0 ;
         summa_eur_chf= 0 ;
         summa_eur_jpy= 0 ;
         summa_eur_cad= 0 ;
         Q_eur_usd= 0 ;
         Q_gbp_usd= 0 ;
         Q_aud_usd= 0 ;
         Q_usd_chf= 0 ;
         Q_usd_jpy= 0 ;
         Q_usd_cad= 0 ;
         Correl_eur_gbp= 0 ;
         Correl_eur_aud= 0 ;
         Correl_eur_chf= 0 ;
         Correl_eur_jpy= 0 ;
         Correl_eur_cad= 0 ;
             for ( int i= 0 ; i<Per; i++){
               CloseEURUSD=iClose( "EURUSD" , 0 ,iBarShift( "EURUSD" , 0 ,Time[i+j], false )); //X
               if (GBPUSD_v_EURUSD)CloseGBPUSD=iClose( "GBPUSD" , 0 ,iBarShift( "GBPUSD" , 0 ,Time[i+j], false )); //Y
               if (AUDUSD_v_EURUSD)CloseAUDUSD=iClose( "AUDUSD" , 0 ,iBarShift( "AUDUSD" , 0 ,Time[i+j], false )); //Y
               if (USDCHF_v_EURUSD)CloseUSDCHF=iClose( "USDCHF" , 0 ,iBarShift( "USDCHF" , 0 ,Time[i+j], false )); //Y
               if (USDJPY_v_EURUSD)CloseUSDJPY=iClose( "USDJPY" , 0 ,iBarShift( "USDJPY" , 0 ,Time[i+j], false )); //Y
               if (USDCAD_v_EURUSD)CloseUSDCAD=iClose( "USDCAD" , 0 ,iBarShift( "USDCAD" , 0 ,Time[i+j], false )); //Y
     
               summaEURUSD=summaEURUSD+CloseEURUSD; //Xi
               if (GBPUSD_v_EURUSD)summaGBPUSD=summaGBPUSD+CloseGBPUSD; //Yi
               if (AUDUSD_v_EURUSD)summaAUDUSD=summaAUDUSD+CloseAUDUSD; //Yi
               if (USDCHF_v_EURUSD)summaUSDCHF=summaUSDCHF+CloseUSDCHF; //Yi
               if (USDJPY_v_EURUSD)summaUSDJPY=summaUSDJPY+CloseUSDJPY; //Yi
               if (USDCAD_v_EURUSD)summaUSDCAD=summaUSDCAD+CloseUSDCAD; //Yi
     
               summaPow_EURUSD=summaPow_EURUSD+ MathPow (CloseEURUSD, 2 ); //Xi2
               if (GBPUSD_v_EURUSD)summaPow_GBPUSD=summaPow_GBPUSD+ MathPow (CloseGBPUSD, 2 ); //Yi2
               if (AUDUSD_v_EURUSD)summaPow_AUDUSD=summaPow_AUDUSD+ MathPow (CloseAUDUSD, 2 ); //Yi2
               if (USDCHF_v_EURUSD)summaPow_USDCHF=summaPow_USDCHF+ MathPow (CloseUSDCHF, 2 ); //Yi2
               if (USDJPY_v_EURUSD)summaPow_USDJPY=summaPow_USDJPY+ MathPow (CloseUSDJPY, 2 ); //Yi2
               if (USDCAD_v_EURUSD)summaPow_USDCAD=summaPow_USDCAD+ MathPow (CloseUSDCAD, 2 ); //Yi2
     
               if (GBPUSD_v_EURUSD)summa_eur_gbp=summa_eur_gbp+(CloseEURUSD*CloseGBPUSD); //XiYi
               if (AUDUSD_v_EURUSD)summa_eur_aud=summa_eur_aud+(CloseEURUSD*CloseAUDUSD); //XiYi
               if (USDCHF_v_EURUSD)summa_eur_chf=summa_eur_chf+(CloseEURUSD*CloseUSDCHF); //XiYi
               if (USDJPY_v_EURUSD)summa_eur_jpy=summa_eur_jpy+(CloseEURUSD*CloseUSDJPY); //XiYi
               if (USDCAD_v_EURUSD)summa_eur_cad=summa_eur_cad+(CloseEURUSD*CloseUSDCAD); //XiYi
            }
         sredneeEURUSD=summaEURUSD/Per; //X
         if (GBPUSD_v_EURUSD)sredneeGBPUSD=summaGBPUSD/Per; //Y
         if (AUDUSD_v_EURUSD)sredneeAUDUSD=summaAUDUSD/Per; //Y
         if (USDCHF_v_EURUSD)sredneeUSDCHF=summaUSDCHF/Per; //Y
         if (USDJPY_v_EURUSD)sredneeUSDJPY=summaUSDJPY/Per; //Y 
         if (USDCAD_v_EURUSD)sredneeUSDCAD=summaUSDCAD/Per; //Y

         Q_eur_usd= MathSqrt (summaPow_EURUSD/Per- MathPow (sredneeEURUSD, 2 )); //Qx
         if (GBPUSD_v_EURUSD)Q_gbp_usd= MathSqrt (summaPow_GBPUSD/Per- MathPow (sredneeGBPUSD, 2 )); //Qy
         if (AUDUSD_v_EURUSD)Q_aud_usd= MathSqrt (summaPow_AUDUSD/Per- MathPow (sredneeAUDUSD, 2 )); //Qy
         if (USDCHF_v_EURUSD)Q_usd_chf= MathSqrt (summaPow_USDCHF/Per- MathPow (sredneeUSDCHF, 2 )); //Qy
         if (USDJPY_v_EURUSD)Q_usd_jpy= MathSqrt (summaPow_USDJPY/Per- MathPow (sredneeUSDJPY, 2 )); //Qy
         if (USDCAD_v_EURUSD)Q_usd_cad= MathSqrt (summaPow_USDCAD/Per- MathPow (sredneeUSDCAD, 2 )); //Qy

         if (GBPUSD_v_EURUSD) if (Q_eur_usd*Q_gbp_usd!= 0 )Correl_eur_gbp= NormalizeDouble ((summa_eur_gbp/Per-sredneeEURUSD*sredneeGBPUSD)/(Q_eur_usd*Q_gbp_usd), 2 );
         if (AUDUSD_v_EURUSD) if (Q_eur_usd*Q_aud_usd!= 0 )Correl_eur_aud= NormalizeDouble ((summa_eur_aud/Per-sredneeEURUSD*sredneeAUDUSD)/(Q_eur_usd*Q_aud_usd), 2 );
         if (USDCHF_v_EURUSD) if (Q_eur_usd*Q_usd_chf!= 0 )Correl_eur_chf= NormalizeDouble ((summa_eur_chf/Per-sredneeEURUSD*sredneeUSDCHF)/(Q_eur_usd*Q_usd_chf), 2 );
         if (USDJPY_v_EURUSD) if (Q_eur_usd*Q_usd_jpy!= 0 )Correl_eur_jpy= NormalizeDouble ((summa_eur_jpy/Per-sredneeEURUSD*sredneeUSDJPY)/(Q_eur_usd*Q_usd_jpy), 2 );
         if (USDCAD_v_EURUSD) if (Q_eur_usd*Q_usd_cad!= 0 )Correl_eur_cad= NormalizeDouble ((summa_eur_cad/Per-sredneeEURUSD*sredneeUSDCAD)/(Q_eur_usd*Q_usd_cad), 2 );

         if (GBPUSD_v_EURUSD)ExtMapBuffer1[j]=Correl_eur_gbp;
         if (AUDUSD_v_EURUSD)ExtMapBuffer2[j]=Correl_eur_aud;         
         if (USDCHF_v_EURUSD)ExtMapBuffer3[j]=Correl_eur_chf;         
         if (USDJPY_v_EURUSD)ExtMapBuffer4[j]=Correl_eur_jpy;         
         if (USDCAD_v_EURUSD)ExtMapBuffer5[j]=Correl_eur_cad;      
         
      } 
       if (ShowComment){ 
         string cs= "\nEURUSD = 1" ;
        cs=cs+ "\n----------------------------------------------------------------------------------" ;
         if (GBPUSD_v_EURUSD)cs=cs+ "\nКорреляция GBPUSD относительно EURUSD = " +DoubleToStr(Correl_eur_gbp, 2 );
         if (AUDUSD_v_EURUSD)cs=cs+ "\nКорреляция AUDUSD относительно EURUSD = " +DoubleToStr(Correl_eur_aud, 2 );
         if (USDCHF_v_EURUSD)cs=cs+ "\nКорреляция USDCHF относительно EURUSD = " +DoubleToStr(Correl_eur_chf, 2 );
         if (USDJPY_v_EURUSD)cs=cs+ "\nКорреляция USDJPY относительно EURUSD = " +DoubleToStr(Correl_eur_jpy, 2 );
         if (USDCAD_v_EURUSD)cs=cs+ "\nКорреляция USDCAD относительно EURUSD = " +DoubleToStr(Correl_eur_cad, 2 );
         Comment (cs);
     }
}
 
k005 :

친구, 칠면조 최적화를 도와주세요. PC에서는 모든 것이 정상이지만 오래된 랩톱에서는 속도가 많이 느려집니다.

추신. 차트에 필요하지 않음, EA에서 호출

미리 감사합니다

여기에서 최적화할 것은 없고 많은 계산만 있을 뿐입니다. 차트에 걸어놓으면 제거하고 폴더에서 올빼미가 가져오고 차트에 없으면 더 이상 할 일이 없습니다.
[삭제]  

철 질문입니다. 나는 다른 쌍에서 병렬로 거래하는 고문을 만들었습니다. 쌍이 많을수록 좋습니다. 각 쌍에 대해 자체 차트가 그에 따라 시작되고 고문이 매달립니다. 그러나 특정 한계에 도달했습니다. 이제 35개의 차트가 실행 중입니다. 더 많이 실행하면 RAM에 문제가 있습니다. 관리자의 터미널 자체는 1.1기가의 RAM을 사용합니다. 전체 RAM은 2GB입니다. 전문가가 실패하기 시작합니다. 지붕 펠트를 부분적으로 내리기 시작합니다. 작동하는 것처럼 보이지만 타이머가 멈추고 다시 시작해야 하며 당연히 둔해지기 시작합니다. 질문의 본질은 이것이 Windows 또는 하드웨어의 프로그램에 대한 제한입니까, 즉 컴퓨터에 다른 2GB의 RAM을 넣으면 문제가 사라지거나 Windows에서 터미널에 더 많은 RAM을 제공하지 않습니까?



퍼센트는 평균적으로 터미널에 의해 25% 로드되지만 이는 아이디어와 관련이 없습니다.

 
pycha :

철 질문입니다. 나는 다른 쌍에서 병렬로 거래하는 고문을 만들었습니다. 쌍이 많을수록 좋습니다. 각 쌍에 대해 자체 차트가 그에 따라 시작되고 고문이 매달립니다. 그러나 특정 한계에 도달했습니다. 이제 35개의 차트가 실행 중입니다. 더 많이 실행하면 RAM에 문제가 있습니다. 관리자의 터미널 자체는 1.1기가의 RAM을 사용합니다. 전체 RAM은 2GB입니다. 전문가는 실패하기 시작합니다. 지붕 펠트로 부분적으로 언로드됩니다. 작동하는 것처럼 보이지만 타이머가 중지되고 다시 시작해야 하며 당연히 둔해지기 시작합니다. 질문의 본질은 이것이 Windows 또는 하드웨어의 프로그램에 대한 제한입니까, 즉 컴퓨터에 다른 2GB의 RAM을 넣으면 문제가 사라지거나 Windows에서 터미널에 더 많은 RAM을 제공하지 않습니까?



퍼센트는 평균적으로 터미널에 의해 25% 로드되지만 이는 아이디어와 관련이 없습니다.


이것은 약간의 메모리입니다. Windows 자체의 경우 시스템이 바보가 되지 않도록 기가(XP) 정도가 필요하므로 열려 있는 각 차트/터미널 에는 추가 메모리가 필요하고 버퍼링에 대해 기억해야 하며 메모리 리소스도 사용합니다.

이것이 바로 당신에게 일어나는 일입니다. 작동하고 버퍼가 특정 양의 데이터로 채워지고 메모리 부족으로 인해 교환이 지연되기 시작하고 EA가 중지됩니다.

철분이 허용하는 경우 메모리를 추가하여 처리합니다.

PS 어려운 시기에 2GB 브라우저도 사용하기 힘든(긴장)