bool b,s, //соответственно бай или селл
bs,// если закрытие по стоплоссу ордера бай
ss,// если закрытие по стоплоссу ордера sell
bt,
st;// то же по ТПdouble bl,sl; // лоты соответсвенно для бай и селл
然后在for 循环中
for(int cnt=OrdersHistoryTotal();cnt>0;cnt--)
{
OrderSelect(cnt, SELECT_BY_POS, MODE_HISTORY);
{if(OrderMagicNumber()== mag &&
OrderSymbol()==Symbol())
{ if (OrderType() == OP_BUY ) {b=1; if (OrderClosePrice()==OrderTakeProfit()) bt=1; if (OrderClosePrice()==OrderStopLoss()) bs=1; bl=OrderLots()*10; break;}
if (OrderType() == OP_SELL) {s=1; if (OrderClosePrice()==OrderTakeProfit()) st=1; if (OrderClosePrice()==OrderStopLoss()) ss=1; sl=OrderLots()*10; break;}
}
}
}
}//end
我不想和你的代码打交道(邪恶,但诚实:))。准确地告诉我你最后想得到什么,我会给你写出你需要的功能。老实说--这对我来说会更容易。我应该整理出自己的代码...:)
...或者去睡觉,去睡觉,第二天你所有的谜题都会出现在一起......:)这就是我在不明白的时候所做的事情...顺便说一下,去睡觉了--已经是凌晨5点半了......
在设置完订单后,作为订单标准的变量应再次设置为 "0"。
谁知道呢。我怎样才能得到指标运动的比率(在其规模上),例如RSI,与货币的传递点的比率?例如,如果RSI从0到50 - 它将相当于多少个点?
在零蜡烛上捕捉RSI指标的最后数值。我们等待着下一次打勾。虱子已经来了。让价格正好勾兑了1个点。看看RSI有多大变化。就是这样--赔率就在我们的口袋里。
捕捉零点蜡烛上的最后一个RSI指标值。我们等待着下一次打勾。虱子在这里。让我们假设价格正好跳动了1个点。看看RSI有多大变化。就是这样--系数就在我们的口袋里。
但是,这怎么可能呢,比如说,我抓住了1个点的系数,RSI在其50的刻度上通过了,原来它已经通过了50个点,但实际上它是一个平面。 而蜡烛有2个点。那么,在这种情况下,如何确定
亲爱的阿纳托利非常感谢你的这一代码。另一个问题,如何让它一直工作,但每条街只做1笔交易?
鲍里斯,这甚至比这更简单。你放下这句话。
在代码的最顶端(要分开,不在任何函数中)。
然后,在那些有调用OrderSend(...)函数 的地方,只要把它放在一个额外的if运算符的拥抱中就可以了。
现在,在开立另一个头寸之前,它将检查当前栏位是否包含任何交易。如果有的话,当前条形将被存储在变量new中,如果当前条形与存储的条形相同,交易将不会被打开。因此,如果酒吧是新的,那么它的开盘时间将与变量new的数据不一致,交易将被打开,变量new 将得到一个新值。
我不知道你的专家顾问的具体架构,但这种方法在大多数情况下应该是有效的。
在订单设置后,作为订单标准的变量应再次设置为 "0"。
我试着编译你的代码,它产生了错误。
然后在for 循环中你必须在两个方法(start() 和NewOrder1())中使用作为下单标准的变量,在所有函数之外声明这些变量。
它们应该被赋予必要的值,在NewOrder1() 函数中成功打开订单后,它们也应该被重置为零。
类似这样的事情。
谁知道呢。你如何获得指标运动(在其规模上)的比率,例如RSI,与货币交叉的点数的比率?澄清一下,如果RSI从0到50 - 它将等于多少个点。
我曾经有一个类似的目标,所以我写了一个这样的 "尺子",也许对你也有用。
作为参数,您发送具有所需RSI值的条形图,作为回应,您会得到它们之间的距离(点)。
我曾经有一个类似的目标,并写了一个这样的 "标尺",也许它对你也有用。
作为参数,您发送所需的RSI值所在的柱状体的移位,作为回应,您会得到它们之间的距离,单位为点。
谢谢,我今晚会检查的
我有一种强烈的感觉,由于报价历史的不完整性,对专家顾问历史的测试不会得到一个好的结果。我明白报价历史是通过存档当前市场(蜡烛图报价)形成的,但你怎么能依赖这个结果,如果真实的报价(至少在我的情况下)是飞过的,有时40分钟只是没有蜡烛,图表站着,然后它飞过所有相同的蜡烛。
也许你只是找不到有利可图的参数组合,试着取消勾选 "忽略无用的结果 "选项。
不要忘记在专家顾问设置中为你要优化的参数勾选复选框,以及设置步骤和优化限制。
朋友们!我想不出如何摆脱趋势线反转时出现的不必要的信号。趋势线(在例子中是下降的)是从最大的极值到最小的极值绘制的,在指定的条形间隔内发现。问题是,一旦出现一个新的最低极值,趋势线就会跳到那个极值(它是这样设计的)。
但是,也是在第一个条形图上,趋势线与趋势线的数值建立了水平,指标线对其的穿越给出了信号。如果第一个柱状图上的指标线低于这个水平,而第二个柱状图上的指标线高于这个水平,那么我们就有一个自上而下的交叉点。
所以...当趋势线跳到一个新的最低极值时,就会出现这样一种情况,即第二个柱状图上的指标线在趋势线之上,在绘图水平和第一个柱状图上的指标线之下,也就是一个不必要的卖出信号(在这个例子中)。
我们在图中可以看到,趋势已经移动到一个新的极点(位置用向下的箭头标记),而新趋势的价格水平在第一个柱子上(水平的红色短线)。
变得比第二个柱状图上的AD线低,而第一个柱状图上的AD线低于价格水平......
因此,通过将趋势线移动到一个较低的极值,模拟了一个不需要的信号...
我用一条垂直的浅蓝色线来标记它...
因此,问题是--如何避免这种情况?我想了很久都没有想出办法......。
有什么想法吗?谢谢...:)
我认为,交易信号应该在指标线与趋势线交叉时出现,而不是反过来,uas两种方式。在静态变量中保留趋势线位置的先前值,如果它们没有变化,则检查交叉点,如果趋势线改变了位置--重置...