voidTrPos(){if(OrderType()==OP_BUY){if((Bid-OrderOpenPrice())>TrailingStop*Point){if(OrderStopLoss()<Bid-TrailingStop*Point){ModifyStopLoss(Bid-TrailingStop*Point);
return;
}}}// в качестве примера !!! просто выдраный кусок кода!
ag-forex писал (а): 日安,伊戈尔!我在我的真实账户(Alpari DC)上使用你的EA和脚本时遇到了任何形式的拖网问题。我尤其对e-News-Lucky$(我的系统的理想选择)、e-TFL_v2、Set2StopOrders、e-SotTrailing感兴趣。它在演示中工作(也是Alpari)。没有错误信息。会是什么呢?
voidTrPos(){if(OrderType()==OP_BUY){if((Bid-OrderOpenPrice())>TrailingStop*Point){if(OrderStopLoss()<Bid-TrailingStop*Point){ModifyStopLoss(Bid-TrailingStop*Point);
return;
}}}// в качестве примера !!! просто выдраный кусок кода!
有很多问题...
我的意思是,它们经常出现,但都是在个案的基础上。
对于那些现在已经公布的功能,没有任何问题,因为我只是在单位里看,没有 "感觉"。
ldStopLoss的作用还不清楚......。另外,除了它们之外,还有关于早期代码的问题,特别是关于拖尾,这与
与上面写的:如何,为什么要传递给函数,例如,这个尾部的部分让我不解。
oooo...:-)就是这样一个古老的功能。它被设计用来改变未平仓头寸或定单的止损水平。还有一个类似的功能,用于获取利润。它们都被一个更好、更实用的ModifyOrder() 所取代。
ldStopLoss的作用还不清楚......。
这是一个局部变量,通过这个变量,应该设置止损的价格水平被传递给修改止损的函数。例如,让我们这样调用ModifyStopLoss函数。
那么本地变量ldStopLoss将取值1.5662。你可以这样检查。
在日志中会有这样的记录。
oooh...:-)就是这样一个古老的功能。它被设计用来改变未平仓头寸或定单的止损水平。还有一个类似的功能,用于获取利润。它们都被更完善、更实用的ModifyOrder() 所取代。
所以...古老的......。(有点尴尬 :) ))我扫了一眼文件夹,最古老的文件是2006年1月22日的。而且看起来它甚至没有被我的曲柄篡改过......。 对不起,我已经练习了很长时间的简单的事情,例如:改变一个数字。简单的计算器,等等...
所有这一切都始于一个要求,即在PRDC的一个论坛上写一个专家顾问,但...
我的美分不够,但我必须在市场上购买。
现在我对它上瘾了......这很方便...。一切都在那里...单元等,结构紧凑,便于携带。
我记得我第一次也是最后一次尝试使用Delphi 6...我颤抖着。
我在书架上还有几张这样的磁盘......:)))对不起,我不在上面。
那么,function()的括号内是什么,是向它传递一些参数的某种 "形式 "吗?
因为我的脑子里不知道为什么,认为它是函数处理后返回的 一个 参数。还有就是函数得到的参数要在大括号内处理...{}。
也就是说,所有这些Bid、Point 等都是输入参数。
我一定是大错特错了......。而大括号()内的内容允许向一个函数传递参数,
,而函数本身可以位于脚本适当代码的任何(或其他)地方......
对吗?
日安,伊戈尔!我在我的真实账户(Alpari DC)上使用你的EA和脚本时遇到了任何形式的拖网问题。我尤其对e-News-Lucky$(我的系统的理想选择)、e-TFL_v2、Set2StopOrders、e-SotTrailing感兴趣。它在演示中工作(也是Alpari)。没有错误信息。会是什么呢?
那么,function()括号内的 内容是一种 "表格",用于传递一些参数?
是的......有点像一个容器 :-)
,因为某些原因,我脑子里的想法是相反的:这是 函数处理后返回的 参数。
该函数返回的是返回值。下面是一个简单的例子。我们定义一个函数,将两个数字相加。
现在,如果我们像这样调用这个函数。
那么数字3和5就是函数f的参数。函数的参数可以是数字、变量或表达式。变量a和b是局部变量,它们接受参数的值并将其交给函数。变量x是函数f的返回值,也就是说,在我们调用函数f后,变量y将获得变量x传递给它的值,即8。
还有一个事实是,该函数接收的参数要在大括号内处理...{}。
也就是说,所有这些Bid、Point等都是输入参数。
不...ModifyStopLoss函数的参数将是Bid-TrailingStop*Point表达式的值。
我一定是犯了一个疯狂的错误...。而括号()中的内容允许传递参数以在函数中进行处理,
,函数本身可以位于脚本代码本身的任何(或其他)地方......
对吗?
是
问题是,为什么与OpenPosition不同,ModifyOrder没有错误处理?
我在某处听到有人说,道路的规则是用血写成的。而且其中没有任何多余的东西。每个字的背后几乎都有一个在事故中失去的生命。
我根据自己的经验,写出了我的函数,并包括对实践中出现的错误的处理,而且没有办法避免。在试图进入市场 时,我尽量做到 "有礼"(错误处理)。在修改过程中,通过价格的标准化和简单的数值检查,大部分错误都被消除了。如果在修改过程中发生了一些错误,在下一次打勾时就可以了。同样的情况也发生在关闭时。
向这个函数发送pp--订单的开盘价的目的是什么?
就像颜色在开始时就已经设定好了......。test_ModifyOrder.mq4(12.14 KB) ......你为什么不使用它,而是将它重新发送到函数中
有何好处简称前
为什么要对OrderOpenPrice() 进行规范化处理?它的格式不是和订单中一样吗?
到目前为止,如果修改时插入同样的东西,我还没有注意到任何错误。OrderStopLoss()和OrderTakeProfit()也是如此。向这个函数发送pp--订单的开盘价的目的是什么?
订单 OP_BUYLIMIT, OP_BUYSTOP, OP_SELLLIMIT 和 OP_SELSTOP 将被移动。
颜色也算是在最开始就已经确定了......test_ModifyOrder.mq4(12.14 KB) ...为什么不使用它,而要重新发送至函数
谢谢你!我将使用它!
优势何在
简称为 "简表"。
多功能性,使EA不仅可以处理当前符号的头寸和订单,还可以处理其他符号的头寸和订单。例如,该EA在欧元兑美元图表上工作。带有数字的变体将不允许与在USDJPY上建立的头寸一起工作。
为什么OrderOpenPrice()需要被规范化?
这是为了成功地比较双倍 类型的值。如果没有规范化,比较就不可能或相当没有意义。
如果你在修改时把相同的东西放回去,并没有发现错误。 OrderStopLoss()和OrderTakeProfit()也是如此。