如何编码? - 页 69 1...626364656667686970717273747576...347 新评论 waltini 2008.02.12 09:16 #681 嗨,沃尔夫 wolfe: 我知道这个问题以前已经说过了,但谁能告诉我一些代码,允许每条街只有一个交易? 谢谢。 这对我来说是有效的 datetime LastOpenTime=0。 ////////////////////////////////////////// int Order; for(int t=0;t<OrdersTotal();t++) { if(OrderSelect(t, SELECT_BY_POS, MODE_TRADES)) { 如果(OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumbers && OrderType() == OP_SELL) { 如果(OrderOpenTime()>LastOpenTime)LastOpenTime=OrderOpenTime()。 } } } 然后我就把它贴在我的代码中 如果(LastOpenTime0) { OrderSend(blah blah) Time[0]是你的时间框架的蜡烛的开始,所以要确保你选择正确的时间框架。 新人对MQL4和MQL5的任何问题,对算法和代码的帮助和讨论 [存档!]任何菜鸟问题,为了不使论坛变得混乱。专业人士,不要路过。没有你,哪里都不能去 - 4. [警告关闭!]任何新手问题,为了不给论坛添乱。专业人士,不要走过。没有你,哪里都不能去。 Erman Ardianto 2008.02.12 14:21 #682 waltini: 这对我来说是有效的datetime LastOpenTime=0。 ////////////////////////////////////////// .................... 时间[0]是你的时间框架的蜡烛的开始,所以请确保你选择正确的时间框架。 这可能更简单一点。 datetime LastOpenTime; //Global var [/CODE] [CODE] int init() { LastOpenTime=Time[0]; } int start() { ................ if(LastOpenTime!=Time[0]) { // do your trade code LastOpenTime=Time[0]; } .............. return(0); } 你的 "交易代码 "将在任何蜡烛上只执行一次。即使您关闭MT4并再次打开它,该蜡烛上也不会再有任何交易。但是请注意,假设你在下午5点的蜡烛上激活了EA,那么在这根蜡烛上也不会有任何交易,你必须等待下一根蜡烛的到来。 nittany1 2008.02.12 16:47 #683 wolfe: 我知道这个问题以前已经涉及过了,但谁能告诉我一些代码,允许每条街只有一个交易? 谢谢。 全局,把这个放在init()之前 datetime PreviousBar;[/CODE] In the order placement and/or order close stuff, wrap it in this: if(NewBar() == true) { if blah blah blah, gimme pips // not actual functions but you get the idea if blah blah blah, close orders // um } Common function outside main loop: [CODE]//--- returns true if current bar just formed bool NewBar() { if(PreviousBar<Time[0]) { PreviousBar = Time[0]; return(true); } else { return(false); } return(false); } How to code? Detecting the start of How to properly make timebandit 2008.02.13 03:45 #684 关于编程的帮助 你好。 我一直在做我的工作,尝试编程一些东西,但我遇到了一块砖墙。所以我尝试了一些真正简单的东西。如果我取消注释 "Print("Five"); "并测试程序,它只会打印 "Yahooooooo"。(好吧,它也打印了 "一")。现在把 "Print("Five"); "注释掉,即使是 "Yahooooooo "也不打印了。我错过了什么? 附加的文件: trial.mq4 2 kb k3iroll 2008.02.13 06:23 #685 当一个交易达到TP时,关闭所有挂单和开单 你好。 我试图在我的EA中写一个代码,一旦有一笔交易达到TP,就关闭所有的挂单和开单。以下是我使用的代码,似乎不工作。谁能看一下并告诉我缺少什么。谢谢。 if( PreviousOpenOrders > OpenOrders ) { for( cnt = OrdersTotal()-1; cnt >= 0; cnt-- ) { OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES)。 mode = OrderType()。 如果( OrderSymbol() == Symbol() &&) OrderMagicNumber()==Magic) { 如果( mode == OP_BUY ) OrderClose(OrderTicket(),OrderLots(),OrderClosePrice(),slipage,Blue)。 如果( 模式 == OP_SELL ) OrderClose(OrderTicket(),OrderLots(),OrderClosePrice(),slipage,Red); 如果(模式 == OP_SELLLIMIT) OrderDelete(OrderTicket())。 如果(模式 == OP_BUYLIMIT) OrderDelete(OrderTicket())。 } } } } 10点3.mq4 问吧! 基本问题... ralphronnquist 2008.02.13 06:46 #686 分别使用Bid和Ask而不是OrderClosePrice()... k3iroll 2008.02.13 07:44 #687 ralph.ronnquist: 分别使用Bid和Ask而不是OrderClosePrice()... 你好,拉尔夫。 你能帮我举个例子吗?谢谢你的帮助。 Michel 2008.02.13 07:48 #688 timebandit: 嗨,我一直在做我的工作,尝试编程一些东西,但我遇到了一块砖墙。所以我尝试了一些真正简单的东西。如果我取消注释 "Print("Five"); "并测试程序,它只会打印 "Yahooooooo"。(好吧,它也打印了 "一")。现在把 "Print("Five"); "注释掉,即使是 "Yahooooooo "也不打印了。我错过了什么? 如果你不使用括号,只有一行被执行。这取决于你想做什么,但你应该这样做。 if(d>5) { Print("Five"); Print("Yahoooooooooooooooooooooooo"); } ralphronnquist 2008.02.13 08:09 #689 if( mode == OP_BUY ) OrderClose(OrderTicket(),OrderLots(),Bid,slippage,Blue); if( mode == OP_SELL ) OrderClose(OrderTicket(),OrderLots(),Ask,slippage,Red); RonaldRaygun 2008.02.13 20:25 #690 移动一次止损 这是我的一点代码,用于在一定的利润后将 止损移动到收支平衡。这有什么问题吗? //MoveOnce if(MoveStopOnce && MoveStopWhenPrice > 0) { if(Bid - OrderOpenPrice() == Point * MoveStopWhenPrice) { OrderModify(OrderTicket(),OrderOpenPrice(), Bid - Point * MoveStopTo, OrderTakeProfit(), 0, Red); if (!EachTickMode) BarCount = Bars; continue; } } 1...626364656667686970717273747576...347 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
嗨,沃尔夫
我知道这个问题以前已经说过了,但谁能告诉我一些代码,允许每条街只有一个交易? 谢谢。
这对我来说是有效的
datetime LastOpenTime=0。
//////////////////////////////////////////
int Order;
for(int t=0;t<OrdersTotal();t++)
{
if(OrderSelect(t, SELECT_BY_POS, MODE_TRADES))
{
如果(OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumbers && OrderType() == OP_SELL)
{
如果(OrderOpenTime()>LastOpenTime)LastOpenTime=OrderOpenTime()。
}
}
}
然后我就把它贴在我的代码中
如果(LastOpenTime0)
{ OrderSend(blah blah)
Time[0]是你的时间框架的蜡烛的开始,所以要确保你选择正确的时间框架。
这对我来说是有效的
datetime LastOpenTime=0。
//////////////////////////////////////////
....................
时间[0]是你的时间框架的蜡烛的开始,所以请确保你选择正确的时间框架。这可能更简单一点。
datetime LastOpenTime; //Global var
[/CODE]
[CODE]
int init()
{
LastOpenTime=Time[0];
}
int start()
{
................
if(LastOpenTime!=Time[0])
{
// do your trade code
LastOpenTime=Time[0];
}
..............
return(0);
}你的 "交易代码 "将在任何蜡烛上只执行一次。即使您关闭MT4并再次打开它,该蜡烛上也不会再有任何交易。但是请注意,假设你在下午5点的蜡烛上激活了EA,那么在这根蜡烛上也不会有任何交易,你必须等待下一根蜡烛的到来。
我知道这个问题以前已经涉及过了,但谁能告诉我一些代码,允许每条街只有一个交易? 谢谢。
全局,把这个放在init()之前
In the order placement and/or order close stuff, wrap it in this:
{
if blah blah blah, gimme pips // not actual functions but you get the idea
if blah blah blah, close orders // um
}Common function outside main loop:
[CODE]//--- returns true if current bar just formed
bool NewBar()
{
if(PreviousBar<Time[0])
{
PreviousBar = Time[0];
return(true);
}
else
{
return(false);
}
return(false);
}关于编程的帮助
你好。
我一直在做我的工作,尝试编程一些东西,但我遇到了一块砖墙。所以我尝试了一些真正简单的东西。如果我取消注释 "Print("Five"); "并测试程序,它只会打印 "Yahooooooo"。(好吧,它也打印了 "一")。现在把 "Print("Five"); "注释掉,即使是 "Yahooooooo "也不打印了。我错过了什么?
当一个交易达到TP时,关闭所有挂单和开单
你好。
我试图在我的EA中写一个代码,一旦有一笔交易达到TP,就关闭所有的挂单和开单。以下是我使用的代码,似乎不工作。谁能看一下并告诉我缺少什么。谢谢。
if( PreviousOpenOrders > OpenOrders )
{
for( cnt = OrdersTotal()-1; cnt >= 0; cnt-- )
{
OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES)。
mode = OrderType()。
如果( OrderSymbol() == Symbol() &&)
OrderMagicNumber()==Magic)
{
如果( mode == OP_BUY ) OrderClose(OrderTicket(),OrderLots(),OrderClosePrice(),slipage,Blue)。
如果( 模式 == OP_SELL ) OrderClose(OrderTicket(),OrderLots(),OrderClosePrice(),slipage,Red);
如果(模式 == OP_SELLLIMIT) OrderDelete(OrderTicket())。
如果(模式 == OP_BUYLIMIT) OrderDelete(OrderTicket())。
}
}
}
}
分别使用Bid和Ask而不是OrderClosePrice()...
分别使用Bid和Ask而不是OrderClosePrice()...
你好,拉尔夫。
你能帮我举个例子吗?谢谢你的帮助。
嗨,我一直在做我的工作,尝试编程一些东西,但我遇到了一块砖墙。所以我尝试了一些真正简单的东西。如果我取消注释 "Print("Five"); "并测试程序,它只会打印 "Yahooooooo"。(好吧,它也打印了 "一")。现在把 "Print("Five"); "注释掉,即使是 "Yahooooooo "也不打印了。我错过了什么?
如果你不使用括号,只有一行被执行。这取决于你想做什么,但你应该这样做。
{
Print("Five");
Print("Yahoooooooooooooooooooooooo");
}if( mode == OP_BUY ) OrderClose(OrderTicket(),OrderLots(),Bid,slippage,Blue);
if( mode == OP_SELL ) OrderClose(OrderTicket(),OrderLots(),Ask,slippage,Red);
移动一次止损
这是我的一点代码,用于在一定的利润后将 止损移动到收支平衡。这有什么问题吗?
if(MoveStopOnce && MoveStopWhenPrice > 0) {
if(Bid - OrderOpenPrice() == Point * MoveStopWhenPrice) {
OrderModify(OrderTicket(),OrderOpenPrice(), Bid - Point * MoveStopTo, OrderTakeProfit(), 0, Red);
if (!EachTickMode) BarCount = Bars;
continue;
}
}