どんな新人の質問でも、フォーラムを乱雑にしないように。プロフェッショナルは、通り過ぎないでください。Nowhere without you - 6. - ページ 905 1...898899900901902903904905906907908909910911912...1178 新しいコメント Юсуфходжа 2015.06.17 21:10 #9041 メッセージの内容と修正方法を教えてください。2015.06.18 04:04:12.156 メモリハンドラ:33150バイトのメモリを割り当てることができません。 Victor Nikolaev 2015.06.17 22:44 #9042 yosuf:メッセージの内容と修正方法を教えてください。2015.06.18 04:04:12.156 メモリハンドラ:33150バイトのメモリを割り当てることができません。 メモリ不足 Vitaly Muzichenko 2015.06.17 22:58 #9043 yosuf:メッセージの内容と修正方法を教えてください。2015.06.18 04:04:12.156 メモリハンドラ:33150バイトのメモリを割り当てることができません。 ターミナル内のエキスパートやインジケータがメモリを大量に消費している場合、一つずつ削除していくと原因が判明します。通常、コードが最適化されていない場合や、新しいバーではなく、ティック ごとにバーの再計算が大量に行われる場合に発生します。 Юсуфходжа 2015.06.17 23:00 #9044 Vinin: メモリが足りない。 ありがとうございます。 Юсуфходжа 2015.06.17 23:01 #9045 MVS: 端末内のExpert AdvisorやIndicatorがメモリを大量に消費している場合、一つずつ削除してみると原因が見えてきます。多くの場合、コードが最適化されていないか、新しいバーではなくティックごとにバーの大規模な再計算が行われている場合に発生します。 ありがとうございます、試してみます。 doctor вася 2015.06.18 06:28 #9046 こんにちは。1つのBinファイルに複数の配列を一度に書き込むことが可能かどうか、どなたか教えてください。可能なのでしょうか?例1.void WriteData(constint n){//---ファイルを開くResetLastError()。int handle=FileOpen(path,FILE_WRITE|FILE_BIN)とする。if(handle!=INVALID_HANDLE) とする。{FileWriteArray(handle,arr1,0,n)。 FileWriteArray(handle,arr2,0,n)。//--- ファイルを閉じるFileClose(handle)。}}それとも、こうあるべきなのでしょうか?例2:void WriteData(constint n){//---ファイルを開くResetLastError()。int handle=FileOpen(path,FILE_WRITE|FILE_BIN)とする。if(handle!=INVALID_HANDLE) とする。{FileWriteArray(handle,arr1,0,n)。FileSeek(handle,0,SEEK_END)。 FileWriteArray(handle,arr2,0,n)。//--- ファイルを閉じるFileClose(handle)。}} ファイルへの書き込みを改行で行う ファイル関数 - FileWriteArray 初心者の方からの質問 MQL5 MT5 MetaTrader Alex 2015.06.18 10:57 #9047 このインジケーターを最適化したいのですが、PCでは良いのですが、私の古いノートパソコンではかなり遅延します。追記:チャート上では不要、Expert Advisorから呼び出すありがとうございました。#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); } } Vitaly Muzichenko 2015.06.18 23:38 #9048 k005:このインジケーターを最適化したいのですが、PCでは良いのですが、私の古いノートパソコンではかなり遅延します。追記:チャート上では不要、Expert Advisorから呼び出すありがとうございました。 最適化するものがなく、ただ計算が多いだけです。チャートに貼る-外すと、フクロウがフォルダから取り出してくれるし、チャートに貼らないなら、もうどうしようもない。 削除済み 2015.06.19 14:29 #9049 私はExpert Advisorを持っていて、異なるペアを並行して取引し、より多くのペアが良い。各ペアで別々のチャートを開始し、EAがそれに接続されています。問題は、Windowsのプログラムの制限なのか、ハードウェアの制限なのか、つまり、コンピュータにもう2ギガバイトのオペレーティングスペースを入れれば問題はなくなるのか、それともWindowsがとにかく端末にこれ以上のオペレーティングスペースを許さないのか、ということだ。端末のCPU負荷が平均25%ですが、特に関係ないようです。 Vitaly Muzichenko 2015.06.20 07:17 #9050 pycha:私はExpert Advisorを持っていて、異なるペアを並行して取引し、より多くのペアが良い。各ペアで別々のチャートを開始し、EAがそれに接続されています。問題は、Windowsのプログラムの制限なのか、ハードウェアの制限なのか、つまり、コンピュータにもう2ギガバイトのオペレーティングスペースを入れれば問題はなくなるのか、それともWindowsがとにかく端末にこれ以上のオペレーティングスペースを許さないのか、ということだ。CPUの負荷は端末の平均25%、でも関係ないはず。また、開いているチャート/ターミナルは すべて追加のメモリを必要とし、さらにバッファリングのことを忘れてはいけません、それはまた、メモリリソースを使用します。動作した後、ある程度のデータ量でバッファが一杯になり、メモリ不足で為替が遅れ始め、Expert Advisorが停止します。ハードウェアが許すなら、メモリを追加することで解決できます。追伸:今時2GBではブラウザすら使いにくいです(緊張) 1...898899900901902903904905906907908909910911912...1178 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
メッセージの内容と修正方法を教えてください。
2015.06.18 04:04:12.156 メモリハンドラ:33150バイトのメモリを割り当てることができません。
メッセージの内容と修正方法を教えてください。
2015.06.18 04:04:12.156 メモリハンドラ:33150バイトのメモリを割り当てることができません。
メッセージの内容と修正方法を教えてください。
2015.06.18 04:04:12.156 メモリハンドラ:33150バイトのメモリを割り当てることができません。
メモリが足りない。
端末内のExpert AdvisorやIndicatorがメモリを大量に消費している場合、一つずつ削除してみると原因が見えてきます。多くの場合、コードが最適化されていないか、新しいバーではなくティックごとにバーの大規模な再計算が行われている場合に発生します。
こんにちは。
1つのBinファイルに複数の配列を一度に書き込むことが可能かどうか、どなたか教えてください。
可能なのでしょうか?
例1.
void WriteData(constint n)
{
//---ファイルを開く
ResetLastError()。
int handle=FileOpen(path,FILE_WRITE|FILE_BIN)とする。
if(handle!=INVALID_HANDLE) とする。
{
FileWriteArray(handle,arr1,0,n)。
FileWriteArray(handle,arr2,0,n)。
//--- ファイルを閉じる
FileClose(handle)。
}
}
それとも、こうあるべきなのでしょうか?
例2:
void WriteData(constint n)
{
//---ファイルを開く
ResetLastError()。
int handle=FileOpen(path,FILE_WRITE|FILE_BIN)とする。
if(handle!=INVALID_HANDLE) とする。
{
FileWriteArray(handle,arr1,0,n)。
FileSeek(handle,0,SEEK_END)。
FileWriteArray(handle,arr2,0,n)。
//--- ファイルを閉じる
FileClose(handle)。
}
}
このインジケーターを最適化したいのですが、PCでは良いのですが、私の古いノートパソコンではかなり遅延します。
追記:チャート上では不要、Expert Advisorから呼び出す
ありがとうございました。
このインジケーターを最適化したいのですが、PCでは良いのですが、私の古いノートパソコンではかなり遅延します。
追記:チャート上では不要、Expert Advisorから呼び出す
ありがとうございました。
私はExpert Advisorを持っていて、異なるペアを並行して取引し、より多くのペアが良い。各ペアで別々のチャートを開始し、EAがそれに接続されています。問題は、Windowsのプログラムの制限なのか、ハードウェアの制限なのか、つまり、コンピュータにもう2ギガバイトのオペレーティングスペースを入れれば問題はなくなるのか、それともWindowsがとにかく端末にこれ以上のオペレーティングスペースを許さないのか、ということだ。
端末のCPU負荷が平均25%ですが、特に関係ないようです。
私はExpert Advisorを持っていて、異なるペアを並行して取引し、より多くのペアが良い。各ペアで別々のチャートを開始し、EAがそれに接続されています。問題は、Windowsのプログラムの制限なのか、ハードウェアの制限なのか、つまり、コンピュータにもう2ギガバイトのオペレーティングスペースを入れれば問題はなくなるのか、それともWindowsがとにかく端末にこれ以上のオペレーティングスペースを許さないのか、ということだ。
CPUの負荷は端末の平均25%、でも関係ないはず。
また、開いているチャート/ターミナルは すべて追加のメモリを必要とし、さらにバッファリングのことを忘れてはいけません、それはまた、メモリリソースを使用します。
動作した後、ある程度のデータ量でバッファが一杯になり、メモリ不足で為替が遅れ始め、Expert Advisorが停止します。
ハードウェアが許すなら、メモリを追加することで解決できます。
追伸:今時2GBではブラウザすら使いにくいです(緊張)