[存档]任何菜鸟问题,为了不使论坛变得杂乱无章。专业人士,不要与它擦肩而过。没有你,哪里都不能去 - 5. - 页 141 1...134135136137138139140141142143144145146147148...432 新评论 begemot7 2013.02.07 07:31 #1401 artmedia70:IMHO - 最好是找到你的订单,看看它是否在市场上或关闭,以及它是如何关闭的,在采取,停止或手动。从这里你可以开始向不同的方向跳舞。 那么一切都将是准确的。但全局变量可能会丢失... 你说的 "失去变量 "是什么意思? 你是说找到它,让EA也检查这个吗? Artyom Trishkin 2013.02.07 07:44 #1402 Begemot7: 请澄清你所说的失去变量是什么意思,并在让EA也检查的意义上找到它? 在所有用于真实和模拟交易的EA中,我不在变量中存储任何关于订单和头寸的重要数据。我最多可以在订单注释中写入数据,这是EA的逻辑所必需的。当我需要了解是否有头寸,有多少头寸,是否有订单,已关闭的头寸,如何关闭,我在市场头寸/订单或历史数据上运行一个循环,找到我需要的订单并检索我需要的信息。因此,我不把所有的重要信息存储在变量中,因为在计算机意外关闭时可能会丢失。它总是可以在以后被检索到。我试着把它储存在终端的全局变量 中--结果发现,当计算机崩溃/挂起时,这些信息并不总是保存在那里。而对我来说,不断监督写出新鲜的信息是太麻烦了......。我发现在我需要的时候更容易找到我需要的东西。 Александр 2013.02.07 07:51 #1403 PapaYozh: 你可以用函数得到指示器所落下的点的坐标。 WindowXOnDropped() WindowYOnDropped() 价格和时间。 跌价窗口(WindowPriceOnDropped)。 掉线时间(WindowTimeOnDropped)。 我会试着把它加进去。一个例子是类似... [删除] 2013.02.07 08:44 #1404 我正面临着一个奇怪的情况。请你告诉我...有三个自写的EA。策略是一样的,只是执行方式不同,取决于工具。货币对:欧元兑美元、欧元兑英镑和美元兑日元。我与前两个人有良好的工作关系,但最后一个人却没有工作。经纪人是FX-Trend。我的账户是一个最小手数为0.01的迷你账户(到目前为止一直用于测试)。同时:在模拟账户上一切正常。当我在测试器中运行它时,交易是在测试器中的同一个真实账户 上进行的。但在真正的交易过程中,他们并没有这样做。订单开盘图标记(和所有其他标记)成功放置。日志中绝对没有任何内容。这一切都在VPS上运行。我想这就是所有的信息。如果有任何关于挖掘方向的提示,我将不胜感激。 Александр 2013.02.07 09:50 #1405 Sepulca:最好是这样(万一EA被重新启动)。 如果只有一个命令,我们可以不这样做。如果(OrdersTotal()< 1){}...... Mikhail Kozhemyako 2013.02.07 10:05 #1406 artmedia70: 在所有真实和模拟的EA中,我不在变量中存储任何关于订单和头寸的重要数据。我最多只能将EA逻辑所需的数据写在订单注释中。当我需要了解是否有头寸,有多少头寸,是否有订单,已关闭的头寸,如何关闭,我在市场头寸/订单或历史数据上运行一个循环,找到我需要的订单并检索我需要的信息。因此,我不把所有的重要信息存储在变量中,因为在计算机意外关闭时可能会丢失。它总是可以在以后被检索到。我试着把它储存在终端的全局变量中--结果发现,当计算机崩溃/挂起时,这些信息并不总是保存在那里。而对我来说,不断监督写出新鲜的信息是太麻烦了......。我发现在我需要的时候更容易找到我需要的东西。 这就对了......要格外放心。当然,更正确的做法是通过所有的订单。但这是一个具体的案例。如果我们失去了GlobalVariables,我们应该离开这家经纪公司。GlobalVariables不是存储在你的电脑上,而是存储在经纪公司里,如果你不去动它们,最长可达三个月。还是我错了? [删除] 2013.02.07 10:42 #1407 看来我自己已经想明白了:)。他们说的是真的--最主要的是要制定它。一般来说,在市场上执行 时,我们将止损和持仓设置为零。然后我们把它设置好。也许有人会发现它是有用的... begemot7 2013.02.07 11:20 #1408 Sepulca: 这就对了...额外的保证。当然,正确的做法是通过所有的订单。但这是一个具体的案例。而如果GlobalVariables丢失,我们应该离开这家经纪公司。 你的意思是--这家经纪公司是故意这样做的吗?有人告诉我,MT4是一个很容易被经纪人控制的终端,因此可能会有很多作弊行为,谁听说过这种情况? Mikhail Kozhemyako 2013.02.07 11:36 #1409 Begemot7: 我的意思是DC是故意这样做的吗?有人告诉我,MT4是一个很容易被经纪人控制的终端,因此有很多作弊的可能,谁听说过这个? 我不太明白。DC销毁你的全局变量有什么意义呢?当然,除非你已经建立了一堆x......。引自文件。"客户终端的全局变量不应该与在MQL4程序的全局范围内声明的变量混在一起。 全局变量在客户终端中存在4周,从最后一次访问开始,之后会自动删除。对全局变量的访问不仅是设置一个新的值,而且是读取全局变量的值。客户终端的全局变量可以从客户终端启动的所有MQL4程序中同时访问。"如果你用0.01或0.1手来工作,没有人会压迫你,因为它是一个trifle....。但如果你在真实账户上开了100手,你最好准备好为你的钱而战。 [删除] 2013.02.07 12:05 #1410 需要专业人士的帮助!!我已经为这个代码绞尽脑汁了......。有4个缓冲区,其中2个工作正常(Buffer &buffer2),但另外2个不正常。当某个条件发生时,缓冲区被填满,当这个值向上为一个,向下为第二个时,缓冲区被移除(归零),但剩下的2个缓冲区仍挂在图表中。你能告诉我如何修复它吗? //--- Функция расчета буферов CountZZ(BuferUp,BuferDn,iPeriod,Dev,Step); int CountZZ( double& ExtMapBuffer[], double& ExtMapBuffer1[], double& ExtMapBuffer2[], double& ExtMapBuffer3[], int ExtDepth, int ExtDeviation, int ExtBackstep ) { int shift, back,lasthighpos,lastlowpos; double val,res; double curlow,curhigh,lasthigh,lastlow,lastlow1,lasthigh1; int count = iBars(pair,tf)-ExtDepth; for(shift=count; shift>=0; shift--) { //--- Расчитываем буфер BuferUp val = iLow(pair,tf,iLowest(pair,tf,MODE_LOW,ExtDepth,shift)); if(val==lastlow) val=0.0; else { lastlow=val; if((iLow(pair,tf,shift)-val)>(ExtDeviation*Point)) val=0.0; else { for(back=1; back<=ExtBackstep; back++) { res=ExtMapBuffer[shift+back]; if((res!=0)&&(res>val)) ExtMapBuffer[shift+back]=0.0; } } } ExtMapBuffer[shift]=val; //-------------------------------------------------------------------- //--- Расчитываем буфер BuferUp2 if (ExtMapBuffer[shift]>0.0) { if(use.narrow.bands) val = MathMin(iClose(pair,tf,shift),iOpen(pair,tf,shift)); else {val = MathMax(iClose(pair,tf,shift),iOpen(pair,tf,shift)); val = MathMin(val,MathMin(iHigh(pair,tf,shift+1),iHigh(pair,tf,shift-1)));} if(ExtMapBuffer[shift+back]==0.0) ExtMapBuffer1[shift+back]=0.0; } ExtMapBuffer1[shift]=val; //-------------------------------------------------------------------- //--- Расчитываем буфер BuferDn val=iHigh(pair,tf,iHighest(pair,tf,MODE_HIGH,ExtDepth,shift)); if(val==lasthigh) val=0.0; else { lasthigh=val; if((val-iHigh(pair,tf,shift))>(ExtDeviation*Point)) val=0.0; else { for(back=1; back<=ExtBackstep; back++) { res=ExtMapBuffer2[shift+back]; if((res!=0)&&(res<val)) ExtMapBuffer2[shift+back]=0.0; } } } ExtMapBuffer2[shift]=val; //------------------------------------------------------------------- //--- Расчитываем буфер BuferDn2 if (ExtMapBuffer2[shift]>0.0) { if(use.narrow.bands) val = MathMax(iClose(pair,tf,shift),iOpen(pair,tf,shift)); else {val = MathMin(iClose(pair,tf,shift),iOpen(pair,tf,shift)); val = MathMax(val,MathMax(iLow(pair,tf,shift-1),iLow(pair,tf,shift+1)));} if(ExtMapBuffer2[shift+back]==0.0) ExtMapBuffer3[shift+back]=0.0; } ExtMapBuffer3[shift]=val; //------------------------------------------------------------------- } // Отсееваем ненужные значения lasthigh=-1; lasthighpos=-1; lastlow=-1; lastlowpos=-1; for(shift=count; shift>=0; shift--) { curlow=ExtMapBuffer[shift]; curhigh=ExtMapBuffer2[shift]; if((curlow==0)&&(curhigh==0)) continue; //--- if(curhigh!=0) { if(lasthigh>0) { if(lasthigh<curhigh) ExtMapBuffer2[lasthighpos]=0; else ExtMapBuffer2[shift]=0; } //--- if(lasthigh<curhigh || lasthigh<0) { lasthigh=curhigh; lasthighpos=shift; } lastlow=-1; } //---- if(curlow!=0) { if(lastlow>0) { if(lastlow>curlow) ExtMapBuffer[lastlowpos]=0; else ExtMapBuffer[shift]=0; } //--- if((curlow<lastlow)||(lastlow<0)) { lastlow=curlow; lastlowpos=shift; } lasthigh=-1; } } for(shift=iBars(pair,tf)-1; shift>=0; shift--) { if(shift>=count) ExtMapBuffer[shift]=0.0; else { res=ExtMapBuffer2[shift]; if(res!=0.0) ExtMapBuffer2[shift]=res; } } } 1...134135136137138139140141142143144145146147148...432 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
IMHO - 最好是找到你的订单,看看它是否在市场上或关闭,以及它是如何关闭的,在采取,停止或手动。从这里你可以开始向不同的方向跳舞。
那么一切都将是准确的。但全局变量可能会丢失...
请澄清你所说的失去变量是什么意思,并在让EA也检查的意义上找到它?
你可以用函数得到指示器所落下的点的坐标。
WindowXOnDropped()
WindowYOnDropped()
价格和时间。
跌价窗口(WindowPriceOnDropped)。
掉线时间(WindowTimeOnDropped)。
我会试着把它加进去。一个例子是类似...
我正面临着一个奇怪的情况。请你告诉我...
有三个自写的EA。策略是一样的,只是执行方式不同,取决于工具。货币对:欧元兑美元、欧元兑英镑和美元兑日元。我与前两个人有良好的工作关系,但最后一个人却没有工作。经纪人是FX-Trend。我的账户是一个最小手数为0.01的迷你账户(到目前为止一直用于测试)。
同时:在模拟账户上一切正常。当我在测试器中运行它时,交易是在测试器中的同一个真实账户 上进行的。但在真正的交易过程中,他们并没有这样做。订单开盘图标记(和所有其他标记)成功放置。日志中绝对没有任何内容。
这一切都在VPS上运行。
我想这就是所有的信息。如果有任何关于挖掘方向的提示,我将不胜感激。
最好是这样(万一EA被重新启动)。
如果只有一个命令,我们可以不这样做。
如果(OrdersTotal()< 1)
{
}
......
在所有真实和模拟的EA中,我不在变量中存储任何关于订单和头寸的重要数据。我最多只能将EA逻辑所需的数据写在订单注释中。当我需要了解是否有头寸,有多少头寸,是否有订单,已关闭的头寸,如何关闭,我在市场头寸/订单或历史数据上运行一个循环,找到我需要的订单并检索我需要的信息。因此,我不把所有的重要信息存储在变量中,因为在计算机意外关闭时可能会丢失。它总是可以在以后被检索到。我试着把它储存在终端的全局变量中--结果发现,当计算机崩溃/挂起时,这些信息并不总是保存在那里。而对我来说,不断监督写出新鲜的信息是太麻烦了......。我发现在我需要的时候更容易找到我需要的东西。
这就对了...额外的保证。当然,正确的做法是通过所有的订单。但这是一个具体的案例。而如果GlobalVariables丢失,我们应该离开这家经纪公司。
你的意思是--这家经纪公司是故意这样做的吗?有人告诉我,MT4是一个很容易被经纪人控制的终端,因此可能会有很多作弊行为,谁听说过这种情况?
我的意思是DC是故意这样做的吗?有人告诉我,MT4是一个很容易被经纪人控制的终端,因此有很多作弊的可能,谁听说过这个?
我不太明白。DC销毁你的全局变量有什么意义呢?当然,除非你已经建立了一堆x......。引自文件。
"客户终端的全局变量不应该与在MQL4程序的全局范围内声明的变量混在一起。 全局变量在客户终端中存在4周,从最后一次访问开始,之后会自动删除。对全局变量的访问不仅是设置一个新的值,而且是读取全局变量的值。客户终端的全局变量可以从客户终端启动的所有MQL4程序中同时访问。"如果你用0.01或0.1手来工作,没有人会压迫你,因为它是一个trifle....。但如果你在真实账户上开了100手,你最好准备好为你的钱而战。
需要专业人士的帮助!!我已经为这个代码绞尽脑汁了......。有4个缓冲区,其中2个工作正常(Buffer &buffer2),但另外2个不正常。当某个条件发生时,缓冲区被填满,当这个值向上为一个,向下为第二个时,缓冲区被移除(归零),但剩下的2个缓冲区仍挂在图表中。你能告诉我如何修复它吗?