问吧! - 页 31 1...242526272829303132333435363738...182 新评论 iscuba11 2006.08.30 14:20 #301 if (FirstRun==1) { FirstRun=0; prevtime=Time[0]; } if ((prevtime == Time[0]) && (CurTime()-prevtime)>MaxTradeTime) { NewBar=0; } else { prevtime 我找到了! 我们将在未来这样做--在我们缺乏理解的领域,我们在别人的帮助下学习,他们比我们有更多的知识和智慧!非常感谢您 戴夫 <<< iscuba11 2006.08.30 14:33 #302 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)) { if(OrderOpenPrice()-Ask>=TrailingStop*Point) { if(OrderStopLoss()>Ask+Point*15||OrderStopLoss()==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)) { if(Bid-OrderOpenPrice()>=TrailingStop*Point) { if(OrderStopLoss()<Bid-Point*15 ||OrderStopLoss()==0) OrderModify(OrderTicket(),OrderOpenPrice(),Bid-(15*Point),Ask+(20*Point),Cyan); //Modify stop loss and take profit } return(0); } return(0); } } 现在有了正确的格式,你们中的一位非常慷慨的编码员能否帮助我解决上面这个SL和TP问题。回到我最初的请求。我的睡眠程序在不同的时间停用了EA。在睡眠模式之前,EA创建了开放的交易,止损为40-50点,止盈为 100。就在EA进入睡眠状态之前,我希望每笔开放交易的止损变为15点,止盈变为25点。止损不是跟踪止损,而是低于(买入)或高于(卖出)其当前交易价格的硬性止损(同样,止盈也是如此)。请把你的专业知识借给我,让我的日子好过点!! Ask! 退出策略。阶梯式止损与拖曳式止损 任何菜鸟问题,为了不给论坛添乱。专业人士,不要路过。没有你就无处可去 - 6. [删除] 2006.08.30 14:39 #303 对于尾随止损,使用以下函数。我认为它的写法很容易被理解。有时,编程专家写的代码,可能在几分之一秒的时间内是有效的,但却使阅读和调试成为一件非常困难的工作。 void TrailingAlls(int start,int stop) { int profit; double stoptrade; double stopcal; if(stop==0) return; int trade; for(trade=OrdersTotal()-1;trade>=0;trade--) { if(!OrderSelect(trade,SELECT_BY_POS,MODE_TRADES)) continue; if(OrderSymbol()!=Symbol()||OrderMagicNumber()!=MagicNumber) continue; if(OrderSymbol()==Symbol()&&OrderMagicNumber()==MagicNumber) { if(OrderType()==OP_BUY) { profit=NormalizeDouble((Bid-OrderOpenPrice())/Point,0); if(profit<start) continue; stoptrade=OrderStopLoss(); stopcal=Bid-(stop*Point); if(stoptrade==0||(stoptrade!=0&&stopcal>stoptrade)) OrderModify(OrderTicket(),OrderOpenPrice(),stopcal,OrderTakeProfit(),0,Blue); }//Long if(OrderType()==OP_SELL) { profit=NormalizeDouble((OrderOpenPrice()-Ask)/Point,0); if(profit<start) continue; stoptrade=OrderStopLoss(); stopcal=Ask+(stop*Point); if(stoptrade==0||(stoptrade!=0&&stopcal<stoptrade)) OrderModify(OrderTicket(),OrderOpenPrice(),stopcal,OrderTakeProfit(),0,Red); }//Shrt } }//for } 在你的启动中使用以下方式调用它。 TrailingAlls(TrailStartPips,TrailStopPips)。 编码帮助......我如何让指标过滤而不是警报? 退出策略。阶梯式止损与拖曳式止损 任何菜鸟问题,为了不给论坛添乱。专业人士,不要路过。没有你就无处可去 - 6. iscuba11 2006.08.30 14:50 #304 马吉,在我的代码中(这是错的)。 我不想要跟踪止损。 我只是想修改未平仓的票据,使每笔未平仓的买入和卖出都有一个15点的硬性止损,以及从当前货币价格 起25点的硬性获利。 我需要它搜索到与货币符号有关的开仓,然后修改每笔开仓交易的止损和止盈。 这就是我所需要的。 昨天晚上,我们进入了一个切入点,涉及到了追踪止损--我和Phoenix之间的误解。 请帮助我完成这个并不难的功能--对你来说是这样的! 戴夫<<< [删除] 2006.08.30 15:15 #305 戴夫。 我想在我给你的程序中已经有了做这种改变的成分。 否则,你必须把你的代码贴出来或发邮件给我,我可以看看我能做什么。有时候,阅读别人的代码是非常困难的,所以这可能是一个耗时的任务。在这种情况下,我将举起我的双手。 祝你好运。 iscuba11 2006.08.30 15:22 #306 第309号帖子是我目前的代码,在PHP中。 只需要将公开交易改为硬止损15,硬获利 25。对于像你这样的专家来说,修改这个编码应该不会太多。 戴夫<< [删除] 2006.08.30 15:34 #307 戴夫。 就像我说的,做这些编辑是非常耗时的。我在午餐时间玩了一下,这里是一个尝试。如果它不工作,你就得靠自己了。它没有经过测试,所以... 在你的主程序中,在你指示程序睡觉之前调用这个。 祝你好运。 void ChangeStop(int takeprofit,int stop) { double profit; double stopcal; if(stop==0) return; int trade; for(trade=OrdersTotal()-1;trade>=0;trade--) { if(!OrderSelect(trade,SELECT_BY_POS,MODE_TRADES)) continue; if(OrderSymbol()!=Symbol()||OrderMagicNumber()!=MagicNumber) continue; if(OrderSymbol()==Symbol()&&OrderMagicNumber()==MagicNumber) { if(OrderType()==OP_BUY) { profit=Ask+(takeprofit*point); stopcal=Bid-(stop*Point); OrderModify(OrderTicket(),OrderOpenPrice(),stopcal,profit,0,Blue); }//Long if(OrderType()==OP_SELL) { profit=Bid-(takeprofit*point); stopcal=Ask+(stop*Point); OrderModify(OrderTicket(),OrderOpenPrice(),stopcal,profit,0,Red); }//Shrt } }//for } 编码帮助......我如何让指标过滤而不是警报? Ask! 退出策略。阶梯式止损与拖曳式止损 iscuba11 2006.08.30 15:45 #308 这里面的修改发生在哪里呢? 原来的止损是40,止盈是100。 作为睡眠模式的一部分,任何现有的未平仓订单 的止损将改为15,任何现有的未平仓订单 的止盈将改为25。 未结订单票: 在睡眠模式之前。 睡眠模式前 止损-40 睡眠模式前 获利-100 睡眠模式后 止损修改-15 睡眠模式后 获利修改-25 我不是在初始化订单设置,我是在修改已经下达且仍然有效的现有订单。 谢谢你的帮助! 为什么这么简单的事情看起来这么难? 戴夫<< [删除] 2006.08.30 16:08 #309 戴夫。 这并不难。你必须多研究一下MQ。看看我提供的代码。参数、止损和止盈应该是你想使用的数字。 这一切都在那里,你将不得不想出如何使用它。 iscuba11 2006.08.30 17:09 #310 我扔下了毛巾。 我得到了错误。 我将使用菲尼克斯提供的东西,因为它在我能接受的范围内起作用。如果这种语言在美国有一所学校可以学习,那肯定会使我的生活更轻松。 不幸的是,现在还没有。 谢谢你的意见,Maji和Phoenix! 戴夫<<< 1...242526272829303132333435363738...182 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
FirstRun=0;
prevtime=Time[0];
}
if ((prevtime == Time[0]) && (CurTime()-prevtime)>MaxTradeTime) {
NewBar=0;
}
else {
prevtime我找到了! 我们将在未来这样做--在我们缺乏理解的领域,我们在别人的帮助下学习,他们比我们有更多的知识和智慧!非常感谢您
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))
{
if(OrderOpenPrice()-Ask>=TrailingStop*Point)
{
if(OrderStopLoss()>Ask+Point*15||OrderStopLoss()==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))
{
if(Bid-OrderOpenPrice()>=TrailingStop*Point)
{
if(OrderStopLoss()<Bid-Point*15 ||OrderStopLoss()==0)
OrderModify(OrderTicket(),OrderOpenPrice(),Bid-(15*Point),Ask+(20*Point),Cyan); //Modify stop loss and take profit
}
return(0);
}
return(0);
}
}现在有了正确的格式,你们中的一位非常慷慨的编码员能否帮助我解决上面这个SL和TP问题。回到我最初的请求。我的睡眠程序在不同的时间停用了EA。在睡眠模式之前,EA创建了开放的交易,止损为40-50点,止盈为 100。就在EA进入睡眠状态之前,我希望每笔开放交易的止损变为15点,止盈变为25点。止损不是跟踪止损,而是低于(买入)或高于(卖出)其当前交易价格的硬性止损(同样,止盈也是如此)。请把你的专业知识借给我,让我的日子好过点!!
对于尾随止损,使用以下函数。我认为它的写法很容易被理解。有时,编程专家写的代码,可能在几分之一秒的时间内是有效的,但却使阅读和调试成为一件非常困难的工作。
void TrailingAlls(int start,int stop)
{
int profit;
double stoptrade;
double stopcal;
if(stop==0)
return;
int trade;
for(trade=OrdersTotal()-1;trade>=0;trade--)
{
if(!OrderSelect(trade,SELECT_BY_POS,MODE_TRADES))
continue;
if(OrderSymbol()!=Symbol()||OrderMagicNumber()!=MagicNumber)
continue;
if(OrderSymbol()==Symbol()&&OrderMagicNumber()==MagicNumber)
{
if(OrderType()==OP_BUY)
{
profit=NormalizeDouble((Bid-OrderOpenPrice())/Point,0);
if(profit<start)
continue;
stoptrade=OrderStopLoss();
stopcal=Bid-(stop*Point);
if(stoptrade==0||(stoptrade!=0&&stopcal>stoptrade))
OrderModify(OrderTicket(),OrderOpenPrice(),stopcal,OrderTakeProfit(),0,Blue);
}//Long
if(OrderType()==OP_SELL)
{
profit=NormalizeDouble((OrderOpenPrice()-Ask)/Point,0);
if(profit<start)
continue;
stoptrade=OrderStopLoss();
stopcal=Ask+(stop*Point);
if(stoptrade==0||(stoptrade!=0&&stopcal<stoptrade))
OrderModify(OrderTicket(),OrderOpenPrice(),stopcal,OrderTakeProfit(),0,Red);
}//Shrt
}
}//for
}
在你的启动中使用以下方式调用它。
TrailingAlls(TrailStartPips,TrailStopPips)。
马吉,在我的代码中(这是错的)。 我不想要跟踪止损。 我只是想修改未平仓的票据,使每笔未平仓的买入和卖出都有一个15点的硬性止损,以及从当前货币价格 起25点的硬性获利。
我需要它搜索到与货币符号有关的开仓,然后修改每笔开仓交易的止损和止盈。 这就是我所需要的。
昨天晚上,我们进入了一个切入点,涉及到了追踪止损--我和Phoenix之间的误解。
请帮助我完成这个并不难的功能--对你来说是这样的!
戴夫。
我想在我给你的程序中已经有了做这种改变的成分。
否则,你必须把你的代码贴出来或发邮件给我,我可以看看我能做什么。有时候,阅读别人的代码是非常困难的,所以这可能是一个耗时的任务。在这种情况下,我将举起我的双手。
祝你好运。
第309号帖子是我目前的代码,在PHP中。
只需要将公开交易改为硬止损15,硬获利 25。对于像你这样的专家来说,修改这个编码应该不会太多。
戴夫。
就像我说的,做这些编辑是非常耗时的。我在午餐时间玩了一下,这里是一个尝试。如果它不工作,你就得靠自己了。它没有经过测试,所以...
在你的主程序中,在你指示程序睡觉之前调用这个。
祝你好运。
void ChangeStop(int takeprofit,int stop)
{
double profit;
double stopcal;
if(stop==0)
return;
int trade;
for(trade=OrdersTotal()-1;trade>=0;trade--)
{
if(!OrderSelect(trade,SELECT_BY_POS,MODE_TRADES))
continue;
if(OrderSymbol()!=Symbol()||OrderMagicNumber()!=MagicNumber)
continue;
if(OrderSymbol()==Symbol()&&OrderMagicNumber()==MagicNumber)
{
if(OrderType()==OP_BUY)
{
profit=Ask+(takeprofit*point);
stopcal=Bid-(stop*Point);
OrderModify(OrderTicket(),OrderOpenPrice(),stopcal,profit,0,Blue);
}//Long
if(OrderType()==OP_SELL)
{
profit=Bid-(takeprofit*point);
stopcal=Ask+(stop*Point);
OrderModify(OrderTicket(),OrderOpenPrice(),stopcal,profit,0,Red);
}//Shrt
}
}//for
}
这里面的修改发生在哪里呢? 原来的止损是40,止盈是100。 作为睡眠模式的一部分,任何现有的未平仓订单 的止损将改为15,任何现有的未平仓订单 的止盈将改为25。
未结订单票: 在睡眠模式之前。
睡眠模式前 止损-40 睡眠模式前 获利-100 睡眠模式后 止损修改-15 睡眠模式后 获利修改-25
我不是在初始化订单设置,我是在修改已经下达且仍然有效的现有订单。
谢谢你的帮助! 为什么这么简单的事情看起来这么难?
戴夫。
这并不难。你必须多研究一下MQ。看看我提供的代码。参数、止损和止盈应该是你想使用的数字。
这一切都在那里,你将不得不想出如何使用它。![](https://c.mql5.com/forextsd/smiles/smile.png)
我扔下了毛巾。 我得到了错误。 我将使用菲尼克斯提供的东西,因为它在我能接受的范围内起作用。如果这种语言在美国有一所学校可以学习,那肯定会使我的生活更轻松。 不幸的是,现在还没有。
谢谢你的意见,Maji和Phoenix!