问吧! - 页 29

 
Yannis:
戴夫。

试着把你的代码改成下面的片段,让我知道这是否有效果。

Yannis

int i=0。

for (int cnt=OrdersTotal()-1;cnt>=0;cnt--)

OrderSelect(i, SELECT_BY_POS, MODE_TRADES)。

如果(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

返回(0)。

}

如果(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

返回(0)。

}

return(0);

}

}

我有一个问题,它总是反复修改回测器中的交易。我怎样才能让它修改一次交易。因为程序将进入睡眠状态,唯一需要修改的交易是任何仍然开放的交易。

请看所附的回测结果.Gif。我就差一点就能弄明白了--请指教!!我将这种获利 和止损的修改与睡眠模式结合起来使用。请看下面的代码

int start()

{

如果(UseHourTrade)

{

int a=0;

int b=0;

int c=0;

if(!(Hour()>=FromHourTrade1 && Hour()<=ToHourTrade1)) a=1;

if(!(Hour()>=FromHourTrade2 &&Hour()<=ToHourTrade2)) b=1;

if(!(Hour()>=FromHourTrade3 &&Hour()<=ToHourTrade3)) c=1;

如果(a==1 &&b==1 &&c==1)

{

评论(

"\n"," * SOLAR WIND EXPERT ADVISOR *" 。

"\n",

"/n", "- PROGRAM IN SLEEP CYCLE - ",

"\n",

"NON-TRADING HOURS!<")。

/////////////////// 修改睡眠周期开始时的止损和止盈 /////////////////

int h=0。

for (int cnt1=OrdersTotal()-1;cnt1>=0;cnt1--)

OrderSelect(h, SELECT_BY_POS, MODE_TRADES)。

如果(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

返回(0)。

}

如果(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

返回(0)。

}

return(0);

}

}

戴夫 <<<

请看所附缩略图!

附加的文件:
 

for (intcnt1=OrdersTotal()-1;cnt1>=0;cnt1--)

OrderSelect(cnt1, SELECT_BY_POS, MODE_TRADES)。

使其计入相同的数字

 

不明白。 我怎样才能纠正这个错误? 也许我确实看到了--让我把cnt1改成h,我是否正确?

戴夫

<<

 
phoenix:
你的OrderSelect()没有在运行的循环中进行计算

int start()

{

如果(UseHourTrade)

{

int a=0;

int b=0;

int c=0;

if(!(Hour()>=FromHourTrade1 && Hour()<=ToHourTrade1)) a=1;

if(!(Hour()>=FromHourTrade2 &&Hour()<=ToHourTrade2)) b=1;

if(!(Hour()>=FromHourTrade3 &&Hour()<=ToHourTrade3)) c=1;

如果(a==1 &&b==1 &&c==1)

{

评论(

"\n"," * SOLAR WIND EXPERT ADVISOR *" 。

"\n",

"/n", "- PROGRAM IN SLEEP CYCLE - ",

"\n",

"NON-TRADING HOURS!<")。

/////////////////// 修改睡眠周期开始时的止损和止盈/////////////////

//int h=0。

for (int h=OrdersTotal()-1;h>=0;h--)

OrderSelect(h, SELECT_BY_POS, MODE_TRADES)。

如果(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

返回(0)。

}

如果(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

返回(0)。

}

return(0);

}

}

///////////////////////////////////////////////////////////////////////////////////////

做了修改,但仍然得到一个不断循环的修改,而不是一次性的修改。

请再次提供建议,谢谢!

戴夫

<<<

 

请在[PHP][/PHP]代码内发布你的代码。阅读和调试格式化的代码 要容易得多。

 

指标输入标签

我如何以及在哪里对一个指标进行编码,使其在连接到图表时不再显示输入标签?

谢谢。

太阳系

 
iscuba11:
int start()

{

如果(使用小时贸易)。

{

int a=0;

int b=0;

int c=0;

if(!(Hour()>=FromHourTrade1 && Hour()<=ToHourTrade1)) a=1;

if(!(Hour()>=FromHourTrade2 &&Hour()<=ToHourTrade2)) b=1;

if(!(Hour()>=FromHourTrade3 &&Hour()<=ToHourTrade3)) c=1;

如果(a==1 &&b==1 &&c==1)

{

评论(

"\n"," * SOLAR WIND EXPERT ADVISOR *" 。

"\n",

"/n", "- PROGRAM IN SLEEP CYCLE - ",

"\n",

"NON-TRADING HOURS!<")。

/////////////////// 修改睡眠周期开始时的止损和止盈 /////////////////

//int h=0。

for (int h=OrdersTotal()-1;h>=0;h--)

OrderSelect(h, SELECT_BY_POS, MODE_TRADES)。

如果(OrderType()>=OP_SELL && OrderSymbol()==Symbol() && (OrderMagicNumber() ==MagicNumber ||MagicNumber==0))

{if( OrderStopLoss() > Ask + Point * 15 || OrderStopLoss() ==0 )

OrderModify(OrderTicket(),OrderOpenPrice(),Ask+(15 *Point),Bid-(20*Point),Cyan); //修改止损和止盈

返回(0)。

}

如果(OrderType()>=OP_BUY && OrderSymbol()==Symbol() && (OrderMagicNumber() ==MagicNumber || MagicNumber==0))

{

如果( OrderStopLoss() < Bid - Point * 15 )

OrderModify(OrderTicket(),OrderOpenPrice(),Bid-(15*Point),Ask+(20*Point),Cyan); //修改止损和止盈

返回(0)。

}

return(0);

}

}

///////////////////////////////////////////////////////////////////////////////////////

做了修改,但仍然得到一个不断循环的修改,而不是一次性的修改。

请再次提供建议,谢谢!

戴夫

<<<

试着添加紫色的线...可能会有帮助

 
solaris:
我如何以及在哪里给指标编码,使其在连接到图表时不再显示输入标签?

谢谢。

太阳系

为什么不把它保存为模板呢......这样,当你在新的图表中调用所有指标时,就不需要再设置任何参数 了。

 

我已经按照你的建议做了! (感谢您的耐心指导)

for (int cnt1=OrdersTotal()-1;cnt1>=0;cnt1--)

OrderSelect(cnt1, SELECT_BY_POS, MODE_TRADES)。

**但我仍然像以前一样在单笔交易中得到大量的循环修改!

很明显,我的逻辑中存在一个循环中的循环!

戴夫

<<

请看最新的回测 结果。 请原谅logo.htm--无法摆脱它。

附加的文件:
 
iscuba11:
我已经按照你的建议做了! (感谢您的耐心解答)

for (int cnt1=OrdersTotal()-1;cnt1>=0;cnt1--)

OrderSelect(cnt1, SELECT_BY_POS, MODE_TRADES)。

**但我仍然像以前一样在单笔交易中得到大量的循环修改!

显然,我的逻辑中存在一个循环中的循环!

戴夫

<<
请看最新的回测结果。 对不起,logo.htm - 无法摆脱它。

尝试添加上面的紫色吗?

theif( OrderStopLoss() > Ask + Point * 15 || OrderStopLoss() == 0 )

andif( OrderStopLoss() < Bid - Point * 15 )