问吧! - 页 32 1...252627282930313233343536373839...182 新评论 [删除] 2006.08.30 18:11 #311 戴夫。 不要那么容易放弃。如果我告诉你该怎么做,也许是错的,你永远也学不到正确的东西。 这是另一个尝试。 祝你好运。 for (int cnt1=OrdersTotal()-1;cnt1>=0;cnt1--) { OrderSelect(cnt1, SELECT_BY_POS, MODE_TRADES); if (OrderType()>=OP_SELL && OrderSymbol()==Symbol() && (OrderMagicNumber () == MagicNumber || MagicNumber==0)) { OrderModify(OrderTicket(),OrderOpenPrice(),Ask+(15 *Point),Bid-(20*Point),Cyan); //Modify stop loss and take profit return(0); } if (OrderType()>=OP_BUY && OrderSymbol()==Symbol() && (OrderMagicNumber () == MagicNumber || MagicNumber==0)) { OrderModify(OrderTicket(),OrderOpenPrice(),Bid-(15*Point),Ask+(20*Point),Cyan); //Modify stop loss and take profit return(0); } } Ask! 退出策略。阶梯式止损与拖曳式止损 任何菜鸟问题,为了不给论坛添乱。专业人士,不要路过。没有你就无处可去 - 6. AnasFX 2006.08.30 19:44 #312 我如何知道我的订单是否达到了止损点? 大家好 我正在编制一个使用跟踪止损的EA。问题是,当它击中止损点时,就会打开一个新的订单。因此,问题是,如何告诉EA,当一个订单触及止损,然后等待下一个条形图来决定是否要打开一个新订单? asaaadmy 2006.08.30 20:05 #313 phoenix 2006.08.30 22:55 #314 iscuba11: 这里面的修改是在哪里进行的呢? 原来的止损是40,止盈是100。 作为睡眠模式的一部分,任何现有的未平仓订单 的止损将变为15,任何现有的未平仓订单 的获利将变为25。 开单票: 睡眠模式前。 睡眠模式前止损-40 睡眠模式前获利-100 睡眠模式后止损修改-15 睡眠模式后获利修改-25 我不是在初始化订单设置,我是在修改已经下达的、仍然有效的现有订单。 谢谢你的帮助! 为什么这么简单的事情看起来这么难? 戴夫<< 你如何定义你的睡眠模式? 只要在ordermodify()循环之前加上它就可以了。 就像... if(sleepcome) { for(.....) { //delete my code gave you before or make it as comment orderselect(.....); . . . } } 这可能有帮助 phoenix 2006.08.30 23:03 #315 AnasFX: 大家好,我正在编写一个使用跟踪止损的EA。问题是,当它击中止损点时,就会打开一个新的订单。因此,问题是,如何告诉EA,当一个订单触及止损时,等待下一个条形图来决定是否要打开一个新订单? 检查 交易历史,如果ordercloseprice()=orderstoploss(),那么它就会通过击中sl关闭。 for(int hcnt=0;hcnt<HistoryTotal();hcnt++) { OrderSelect(hcnt, SELECT_BY_POS, MODE_HISTORY); if(OrderSymbol()==Symbol()) { if(OrderClosePrice()==OrderStopLoss()) . . . } } AnasFX 2006.08.31 13:18 #316 止损的时间 phoenix: 检查交易历史,如果ordercloseprice()=orderstoploss(),那么它就会以击中止损点而关闭。 for(int hcnt=0;hcnt<HistoryTotal();hcnt++) { OrderSelect(hcnt, SELECT_BY_POS, MODE_HISTORY); if(OrderSymbol()==Symbol()) { if(OrderClosePrice()==OrderStopLoss()) . . . } } 谢谢你的想法。我还想知道它的止损时间,以及这个时间是否在当前的时间段。我可能有很多止损点,但我想知道它是否在当前时间段 内达到止损点。我应该检查订单的收盘时间并与当前条形图的时间相比较吗? pc-wiz 2006.08.31 13:40 #317 在EA上显示买入和卖出 我想在我的EA运行时将箭头或文本对象或其他东西放在图表上,以显示它的行动,但这些对象似乎并没有出现。 有没有人有一个可以在图表上画画的EA例子? 另外,策略测试器有 一个按钮可以在测试运行后显示图表,但我没有看到箭头。 这是不是build 195的问题,因为我知道我过去在那里看到过它们。 我们怎样才能修改这些箭头对象? 我想让它们变大,但也不知道如何在测试器中进入图表。 我想这两个问题都是一样的:从EA中获得用户反馈。 [删除] 2006.08.31 17:17 #318 我有一个正在调整的专家,我想避免在之前关闭的柱子非常长的情况下出现入市信号。(>30点)我添加了下面这句话作为条件,但它似乎没有被识别。我不是一个好的编码员,但有调整专家的运气,我正在边学边做。谁能告诉我,我应该在这里使用什么逻辑或短语? 在这一节下。 ----------------------------------- voidCheckForSignals(){ ----------------------------------- 我包括了条件。 ----------------------------------- 如果((Close[1])-(Open[1])<30){ buysig=true。 ----------------------------------- 谢谢你的任何建议。 MJ Ioannis Sfairopoulos 2006.08.31 17:41 #319 marketjouster: 我有一个正在调整的专家,想避免在之前收盘的柱子非常长的情况下出现进场信号。(>30点)我添加了下面这句话作为条件,但它似乎没有被识别。 我不是一个好的编码员,但有调整专家的运气,我正在边学边做。 谁能告诉我,我在这里应该使用什么逻辑或短语?如果((Close[1])-(Open[1])<30) ... MJ MJ, 假设Close[1]是1.2835,Open[1]是1.2805(看涨股),差值是0.0030,所以对30的检查不起作用。此外,如果Close[1]在1.2805,而Open[1]在1.2835(看跌柱)呢?你会得到-0.0030。 所以首先你需要用Close[1]-Open[1]< (30*Point)来补救第一个问题,然后你要用MathAbs()函数 来得到减法的绝对值。 简而言之使用:如果MathAbs(Close[1]-Open[1])<(30*Point).... HTH 亚尼斯 [删除] 2006.08.31 19:21 #320 避免长条交易进入的 代码 Yannis: MJ,假设Close[1]是1.2835,Open[1]是1.2805(看涨柱),差值是0.0030,所以对30的检查是不可行的。此外,如果Close[1]在1.2805,而Open[1]在1.2835(看跌柱)呢?你会得到-0.0030。 所以首先你需要用Close[1]-Open[1]< (30*Point)来补救第一个问题,然后你要用MathAbs()函数来得到减法的绝对值。 简而言之使用:如果MathAbs(Close[1]-Open[1])<(30*Point).... HTH Yannis 非常感谢Yannis。 你的解释非常清楚,我很欣赏你把实际代码包括在内。 我可以提出一个后续问题吗? 如果我想在专家顾问的属性窗口中能够调整长条的点数,我可以使用。 extern int LBE=30; // LBE是 "长条输入"。 默认可以是30 在专家的标题部分,然后在你的代码行中使用LBE而不是30? if MathAbs(Close[1]-Open[1])<(LBE*Point) 这将使我能够手动测试不同的点子设置,并在回测中优化它。 MJ 1...252627282930313233343536373839...182 新评论 原因: 取消 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
戴夫。
不要那么容易放弃。如果我告诉你该怎么做,也许是错的,你永远也学不到正确的东西。
这是另一个尝试。
祝你好运。
for (int cnt1=OrdersTotal()-1;cnt1>=0;cnt1--)
{
OrderSelect(cnt1, SELECT_BY_POS, MODE_TRADES);
if (OrderType()>=OP_SELL && OrderSymbol()==Symbol() && (OrderMagicNumber () == MagicNumber || MagicNumber==0))
{
OrderModify(OrderTicket(),OrderOpenPrice(),Ask+(15 *Point),Bid-(20*Point),Cyan); //Modify stop loss and take profit
return(0);
}
if (OrderType()>=OP_BUY && OrderSymbol()==Symbol() && (OrderMagicNumber () == MagicNumber || MagicNumber==0))
{
OrderModify(OrderTicket(),OrderOpenPrice(),Bid-(15*Point),Ask+(20*Point),Cyan); //Modify stop loss and take profit
return(0);
}
}
我如何知道我的订单是否达到了止损点?
大家好
我正在编制一个使用跟踪止损的EA。问题是,当它击中止损点时,就会打开一个新的订单。因此,问题是,如何告诉EA,当一个订单触及止损,然后等待下一个条形图来决定是否要打开一个新订单?
这里面的修改是在哪里进行的呢? 原来的止损是40,止盈是100。 作为睡眠模式的一部分,任何现有的未平仓订单 的止损将变为15,任何现有的未平仓订单 的获利将变为25。
开单票: 睡眠模式前。
睡眠模式前止损-40 睡眠模式前获利-100 睡眠模式后止损修改-15 睡眠模式后获利修改-25
我不是在初始化订单设置,我是在修改已经下达的、仍然有效的现有订单。
谢谢你的帮助! 为什么这么简单的事情看起来这么难?
你如何定义你的睡眠模式?
只要在ordermodify()循环之前加上它就可以了。
就像...
if(sleepcome)
{
for(.....)
{
//delete my code gave you before or make it as comment
orderselect(.....);
.
.
.
}
}
这可能有帮助
大家好,我正在编写一个使用跟踪止损的EA。问题是,当它击中止损点时,就会打开一个新的订单。因此,问题是,如何告诉EA,当一个订单触及止损时,等待下一个条形图来决定是否要打开一个新订单?
检查 交易历史,如果ordercloseprice()=orderstoploss(),那么它就会通过击中sl关闭。
for(int hcnt=0;hcnt<HistoryTotal();hcnt++)
{
OrderSelect(hcnt, SELECT_BY_POS, MODE_HISTORY);
if(OrderSymbol()==Symbol())
{
if(OrderClosePrice()==OrderStopLoss())
.
.
.
}
}
止损的时间
检查交易历史,如果ordercloseprice()=orderstoploss(),那么它就会以击中止损点而关闭。
for(int hcnt=0;hcnt<HistoryTotal();hcnt++)
{
OrderSelect(hcnt, SELECT_BY_POS, MODE_HISTORY);
if(OrderSymbol()==Symbol())
{
if(OrderClosePrice()==OrderStopLoss())
.
.
.
}
}
谢谢你的想法。我还想知道它的止损时间,以及这个时间是否在当前的时间段。我可能有很多止损点,但我想知道它是否在当前时间段 内达到止损点。我应该检查订单的收盘时间并与当前条形图的时间相比较吗?
在EA上显示买入和卖出
我想在我的EA运行时将箭头或文本对象或其他东西放在图表上,以显示它的行动,但这些对象似乎并没有出现。 有没有人有一个可以在图表上画画的EA例子?
另外,策略测试器有 一个按钮可以在测试运行后显示图表,但我没有看到箭头。 这是不是build 195的问题,因为我知道我过去在那里看到过它们。 我们怎样才能修改这些箭头对象? 我想让它们变大,但也不知道如何在测试器中进入图表。
我想这两个问题都是一样的:从EA中获得用户反馈。
我有一个正在调整的专家,我想避免在之前关闭的柱子非常长的情况下出现入市信号。(>30点)我添加了下面这句话作为条件,但它似乎没有被识别。我不是一个好的编码员,但有调整专家的运气,我正在边学边做。谁能告诉我,我应该在这里使用什么逻辑或短语?
在这一节下。
-----------------------------------
voidCheckForSignals(){
-----------------------------------
我包括了条件。
-----------------------------------
如果((Close[1])-(Open[1])<30){
buysig=true。
-----------------------------------
谢谢你的任何建议。
MJ
我有一个正在调整的专家,想避免在之前收盘的柱子非常长的情况下出现进场信号。(>30点)我添加了下面这句话作为条件,但它似乎没有被识别。 我不是一个好的编码员,但有调整专家的运气,我正在边学边做。 谁能告诉我,我在这里应该使用什么逻辑或短语?
如果((Close[1])-(Open[1])<30) ...
MJMJ,
假设Close[1]是1.2835,Open[1]是1.2805(看涨股),差值是0.0030,所以对30的检查不起作用。此外,如果Close[1]在1.2805,而Open[1]在1.2835(看跌柱)呢?你会得到-0.0030。
所以首先你需要用Close[1]-Open[1]< (30*Point)来补救第一个问题,然后你要用MathAbs()函数 来得到减法的绝对值。
简而言之使用:如果MathAbs(Close[1]-Open[1])<(30*Point)....
HTH
亚尼斯
避免长条交易进入的 代码
MJ,
假设Close[1]是1.2835,Open[1]是1.2805(看涨柱),差值是0.0030,所以对30的检查是不可行的。此外,如果Close[1]在1.2805,而Open[1]在1.2835(看跌柱)呢?你会得到-0.0030。
所以首先你需要用Close[1]-Open[1]< (30*Point)来补救第一个问题,然后你要用MathAbs()函数来得到减法的绝对值。
简而言之使用:如果MathAbs(Close[1]-Open[1])<(30*Point)....
HTH
Yannis非常感谢Yannis。 你的解释非常清楚,我很欣赏你把实际代码包括在内。 我可以提出一个后续问题吗? 如果我想在专家顾问的属性窗口中能够调整长条的点数,我可以使用。
extern int LBE=30; // LBE是 "长条输入"。 默认可以是30
在专家的标题部分,然后在你的代码行中使用LBE而不是30?
if MathAbs(Close[1]-Open[1])<(LBE*Point)
这将使我能够手动测试不同的点子设置,并在回测中优化它。
MJ