[存档!]任何菜鸟问题,为了不使论坛变得混乱。专业人士,不要路过。没有你,哪里都不能去 - 4. - 页 612

 
rigonich:

让我们开始吧。

1.如果(Stoch_1>Stoch_2) flag1=1;,那么它后面的条件(Stoch_1<Stoch_2 && flag1==1)原则上不能为真,因为如果Stoch_1<Stoch_2 flag1==0,如果 flag1==1,那么Stoch_1>Stoch_2它与这个函数中的所有后续条件都是一样的,所以只有flag1可以改变值。也就是说,你的程序将执行前两行,跳过第三行,执行第四行,跳过第五行,执行第六行,执行第七行,并跳过其他所有行。


你错了,因为你就是不明白这个道理。它确实如此,而且一切运作完美,正是我需要的方式。也许代码可以简化,但现在它不再是脂肪......我只需要完成整个EA,并且已经看了它包含的交易理念的REST....。

我对为编程而编程没有多大兴趣......

 
xant:

是的,我按你写的做了。而且它不能编译。

很明显,我做错了什么,但具体是什么我不明白。你可以一步一步地走下去。

出于兴趣,给我看看你转换为你的变量的我的函数。并给我看有编译错误的 日志。
 
rigonich:

第一个订单的开盘价为1.2900,TP为1.300。第二个订单的开盘价1.2800,TP为1.290这些是不同的参数。第一个是BAY,第二个是BAY_STOP这些也是不同的参数。
但你明白了,不是吗?
 
lottamer:


你错了,因为你就是不明白这一点。而它确实如此,一切都按我需要的方式完美运作。也许代码可以简化,但现在已经不是脂肪的问题了......我只需要完成整个EA,已经看了它的交易理念的回报....。

我对为编程而编程不感兴趣......


我认为这正是你的情况--为了编程而编程。你的函数除了使CPU超载外,什么也没做。

我在研究市场、开发和尝试各种策略五年后开始编程,当时我意识到,由我开发并在历史上手动测试了20次的交易策略(成功),首先,没有类似物,它们可以在kodobase中找到,其次,即使在接近技术能力极限的设置下,它提出的要求对人类来说是不可能的,即使是最弱的计算机也能轻易满足(例如,在你的计算机上呆一个星期或更长时间)。

 
yosuf:
但我想你明白了吧?


只需用你想要的参数下一个挂单

P.S.在EA中--在订单打开后立即进行。

 
rigonich:


只要用你想要的参数下一个挂单。

P.S. 在EA中 -- 在订单打开后立即进行。

代码是什么?
 
yosuf:
密码是什么?


䵮䵮 OrderSend( 字符串, int cmd, double volume, double price, int slippage, double stoploss, double takeprofit, string comment=NULL, int magic=0, datetime expiration=0,arrow_color=CLR_NONE)
, 基本功能用于开立头寸或设置挂单。
返回交易服务器分配给订单的票号,如果失败则返回-1。要获得更多的错误信息,请调用GetLastError()。
注意事项。
当开立市场订单(OP_SELL或OP_BUY)时,只有最新的买入价(用于卖出)或卖出价(用于买入)可以作为开盘价使用。如果对某一金融工具进行操作,与当前工具不同,那么要获得该工具的最新报价,应该使用MarketInfo() 函数,并加入MODE_BID或MODE_ASK参数。不能使用估计的或非正常化的价格。如果要求的开盘价不在价格流中,或者要求的价格没有按照小数点后的位数 规范化,将产生错误 129(ERR_INVALID_PRICE)。如果要求的开盘价严重过时,无论滑点 参数的值如何,都会产生一个错误 138(ERR_REQUOTE)。如果要求的价格已经过期,但仍然存在于价格流中,那么将以当前价格开仓,而且只有当当前价格落在价格+ 滑点范围内时才会开仓。

止损和止盈价格不能离市场太近。以点为单位的最小止损距离可以通过MarketInfo() 函数和MODE_STOPLEVEL参数获得。错误 130(ERR_INVALID_STOPS)在错误的或不正常的停止情况下产生。

在下挂单时,开盘价不能离市场太近。也可以使用MarketInfo() 函数和MODE_STOPLEVEL参数获得挂牌价与当前市场价格的最小距离(以点为单位)。如果挂单开盘价不正确,将产生错误 130(ERR_INVALID_STOPS)。

在一些交易服务器上,可以设置禁止挂单到期。在这种情况下,当试图在过期 参数中设置一个非零值时,会产生一个错误 147(ERR_TRADE_EXPIRATION_DENIED)。

在一些交易服务器上,可以设置未结订单和挂单总数 的限制。如果超过了这个限制,新的头寸将不会被打开(不会设置挂单),交易服务器将返回错误 148(ERR_TRADE_TOO_MANY_ORDERS)。
参数。
标志 - 执行交易操作的金融工具的名称。
cmd - 贸易操作。可以是任何一个交易 值。
- 地段的数量。
价格 - 开盘价。
滑移 - 市场订单(买入或卖出订单)的最大允许价格滑点。
止损 - 达到损失时的平仓价格(如果没有损失则为0)。
获利 - 达到获利水平时的平仓价格(如果没有获利水平则为0)。
评论 - 命令评论文本。评论的最后部分可以由交易服务器改变。
魔术 - 订单的神奇数字。可作为用户定义的标识符。
到期 - 待定订单的到期时间。
箭头_颜色 - 图表上开口箭头的颜色。如果缺少该参数或其值为CLR_NONE,图表上不会显示开口箭头。
例子。
 int ticket; if(iRSI(NULL,0,14,PRICE_CLOSE,0)<25) { ticket=OrderSend(Symbol(),OP_BUY,1,Ask,3,Bid-25*Point,Ask+25*Point, "My order #"+counter,16384,0,Green); if(ticket<0) { Print("OrderSend failed with error #," GetLastError()) ; return(0); } }
 
lottamer:

尽管你的代码在编译器中出现了24个错误!!!但仍然感谢你的粗心帮助....。对于这个想法...(现在可以了--虽然我基本上是想这样做的,但标点符号让我失望了)


我没有试着编译它,我只是把括号放进去了!否则他们根本就不会工作。我展示了他们必须是怎样的。其余的逻辑仍然不清楚。我记得,把每一个下一个标志,你,,问iff前一个条件的反面,同时检查标志是否为真......

事实上,我的第一条评论敦促你重新考虑你写的东西,检查参考资料。

 
给新手的任何提示!!!!顾问在终端中被禁用,但止损被触发,这可能吗?
 
tolik73:
给新手的任何提示!!!!顾问在终端中被禁用,但止损被触发,这可能吗?

当然是这样。