任何菜鸟问题,为了不给论坛添乱。专业人士,不要路过。没有你就无处可去 - 6. - 页 905 1...898899900901902903904905906907908909910911912...1178 新评论 Юсуфходжа 2015.06.17 23:10 #9041 请告诉我这是什么信息,以及如何修复它。2015.06.18 04:04:12.156 内存处理器:无法分配33150字节的内存 Victor Nikolaev 2015.06.18 00:44 #9042 yosuf:请告诉我这是什么信息,以及如何修复它。2015.06.18 04:04:12.156 内存处理器:无法分配33150字节的内存 没有足够的内存 Vitaly Muzichenko 2015.06.18 00:58 #9043 yosuf:请告诉我这是什么信息,以及如何修复它。2015.06.18 04:04:12.156 内存处理器:无法分配33150字节的内存 终端中的某些专家或指标消耗了大量的内存,试着一个一个地删除,就会找到原因。这通常发生在代码没有被优化的情况下,或者在每一个tick 上有大量的重新计算,而不是在一个新的bar上。 Юсуфходжа 2015.06.18 01:00 #9044 Vinin: 没有足够的内存。 谢谢你。 Юсуфходжа 2015.06.18 01:01 #9045 MVS: 终端中的某些专家顾问或指标消耗了大量的内存,试着逐一删除,你会找到原因。大多数情况下,它发生在代码没有被优化的情况下,或者在每一个tick上有大量的重新计算,而不是在一个新的bar上。 谢谢,我会试一试的。 doctor вася 2015.06.18 08:28 #9046 你好。谁能告诉我是否可以在一个Bin文件中同时写几个数组。这有可能吗?例1:空白 的WriteData(constint n)。{//----打开文件ResetLastError()。int handle=FileOpen(path,FILE_WRITE|FILE_BIN)。如果(handle!=INVALID_HANDLE){FileWriteArray(handle,arr1,0,n)。 FileWriteArray(handle,arr2,0,n)。//---关闭文件FileClose(handle)。}}还是应该像这样?例2:空白 的WriteData(constint n)。{//----打开文件ResetLastError()。int handle=FileOpen(path,FILE_WRITE|FILE_BIN)。如果(handle!=INVALID_HANDLE){FileWriteArray(handle,arr1,0,n)。FileSeek(handle,0,SEEK_END)。 FileWriteArray(handle,arr2,0,n)。//---关闭文件FileClose(handle)。}} Any rookie question, so MT4文件功能替换。 文件函数 - FileWriteArray Alex 2015.06.18 12:57 #9047 朋友们,你们能不能帮我优化一下这个指标,在我的电脑上可以,但在我的旧笔记本上就太慢了。PS.在图表上不需要它,它是由专家顾问调用的。预先感谢#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.19 01:38 #9048 k005:朋友们,你们能不能帮我优化一下这个指标,它在PC上很好,但在我的旧笔记本上却很滞后。PS.在图表上不需要它,它是由专家顾问调用的。预先感谢 我没有什么要优化的,只是有很多的计算。如果你把它放在图表上--删除它,猫头鹰就会从文件夹中拿走它,如果它不在图表上,那么就没有其他事情可做。 [删除] 2015.06.19 16:29 #9049 我有一个专家顾问,在不同的货币对上进行平行交易,而且货币对越多越好。对于每一个货币对,都有一个单独的图表,并且有一个EA附加在上面。但我已经达到了一定的限度,我现在有35个运行的图表,如果我启动更多的图表,我的内存就会出现问题--终端需要1.1g的管理器内存。问题是:这是Windows中程序的限制还是硬件的限制,也就是说,如果我在电脑中再放2GB的操作空间,问题就会消失,或者Windows无论如何不会让更多的操作空间给终端?终端的CPU负载平均为25%,但这似乎与它没有关系。 Vitaly Muzichenko 2015.06.20 09:17 #9050 pycha:我有一个专家顾问,在不同的货币对上进行平行交易,而且货币对越多越好。对于每一个货币对,都有一个单独的图表,并且有一个EA附加在上面。但我已经达到了一定的限度,我现在有35个运行的图表,如果我启动更多的图表,我的内存就会出现问题--终端需要1.1g的管理器内存。问题是:这是Windows中程序的限制还是硬件的限制,也就是说,如果我在电脑中再放2GB的操作空间,问题就会消失,或者Windows无论如何不会让更多的操作空间给终端?终端的CPU负载平均为25%,但它不应该与之有任何关系。这有点太少了,因为Windows本身需要大约一千兆(XP),而不是让系统滞后。 另外,每一个打开的图表/终端 都需要额外的内存,另外不要忘记缓冲,它也会使用内存资源。它可以工作,然后缓冲区被一些数据填满,由于内存不足,交易所开始滞后,并停止专家顾问。如果硬件允许,你可以通过增加内存来解决这个问题。P.S. 如今,即使是2GB的浏览器也很难使用(紧张地)。 1...898899900901902903904905906907908909910911912...1178 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 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字节的内存
没有足够的内存。
终端中的某些专家顾问或指标消耗了大量的内存,试着逐一删除,你会找到原因。大多数情况下,它发生在代码没有被优化的情况下,或者在每一个tick上有大量的重新计算,而不是在一个新的bar上。
你好。
谁能告诉我是否可以在一个Bin文件中同时写几个数组。
这有可能吗?
例1:
空白 的WriteData(constint n)。
{
//----打开文件
ResetLastError()。
int handle=FileOpen(path,FILE_WRITE|FILE_BIN)。
如果(handle!=INVALID_HANDLE)
{
FileWriteArray(handle,arr1,0,n)。
FileWriteArray(handle,arr2,0,n)。
//---关闭文件
FileClose(handle)。
}
}
还是应该像这样?
例2:
空白 的WriteData(constint n)。
{
//----打开文件
ResetLastError()。
int handle=FileOpen(path,FILE_WRITE|FILE_BIN)。
如果(handle!=INVALID_HANDLE)
{
FileWriteArray(handle,arr1,0,n)。
FileSeek(handle,0,SEEK_END)。
FileWriteArray(handle,arr2,0,n)。
//---关闭文件
FileClose(handle)。
}
}
朋友们,你们能不能帮我优化一下这个指标,在我的电脑上可以,但在我的旧笔记本上就太慢了。
PS.在图表上不需要它,它是由专家顾问调用的。
预先感谢
朋友们,你们能不能帮我优化一下这个指标,它在PC上很好,但在我的旧笔记本上却很滞后。
PS.在图表上不需要它,它是由专家顾问调用的。
预先感谢
我有一个专家顾问,在不同的货币对上进行平行交易,而且货币对越多越好。对于每一个货币对,都有一个单独的图表,并且有一个EA附加在上面。但我已经达到了一定的限度,我现在有35个运行的图表,如果我启动更多的图表,我的内存就会出现问题--终端需要1.1g的管理器内存。问题是:这是Windows中程序的限制还是硬件的限制,也就是说,如果我在电脑中再放2GB的操作空间,问题就会消失,或者Windows无论如何不会让更多的操作空间给终端?
终端的CPU负载平均为25%,但这似乎与它没有关系。
我有一个专家顾问,在不同的货币对上进行平行交易,而且货币对越多越好。对于每一个货币对,都有一个单独的图表,并且有一个EA附加在上面。但我已经达到了一定的限度,我现在有35个运行的图表,如果我启动更多的图表,我的内存就会出现问题--终端需要1.1g的管理器内存。问题是:这是Windows中程序的限制还是硬件的限制,也就是说,如果我在电脑中再放2GB的操作空间,问题就会消失,或者Windows无论如何不会让更多的操作空间给终端?
终端的CPU负载平均为25%,但它不应该与之有任何关系。
这有点太少了,因为Windows本身需要大约一千兆(XP),而不是让系统滞后。 另外,每一个打开的图表/终端 都需要额外的内存,另外不要忘记缓冲,它也会使用内存资源。
它可以工作,然后缓冲区被一些数据填满,由于内存不足,交易所开始滞后,并停止专家顾问。
如果硬件允许,你可以通过增加内存来解决这个问题。
P.S. 如今,即使是2GB的浏览器也很难使用(紧张地)。