如何编码? - 页 180

 

关闭位置的问题

......

double cena=0;

static int isCrossed = 0;

isCrossed = Crossed (k,d);

如果(OrderSelect(ticket, SELECT_BY_POS))

{

c=OrderOpenPrice()。

返回(0)。

}

如果(isCrossed>0)

{

cena=((c-Ask)*10000);

return(0);

}

total = OrdersTotal();

if(total < 1)

{

如果(isCrossed == 1)

{

ticket = OrderSend(Symbol(), OP_BUY, Lots, Ask, 1000, cena,

cena , "EMA_CROSS", 12345, 0, Green)。

}

....

如果(isCrossed == 2)

{

ticket = OrderSend(Symbol(), OP_SELL, Lots, Bid, 1000, cena,

cena, "EMA_CROSS", 12345, 0, Red)。

......

一般来说,EA在EMA交叉时关闭头寸,同时打开另一个头寸

仓位打开了,但他们不愿意关闭;/。

请帮助

 

是否有可能在同一时刻关闭一个头寸并建立一个新的头寸?

(...)

if(OrdersTotal()!=0) {

(...)

OrderClose( OrderTicket(), OrderLots(), MarketInfo(OrderSymbol(), MODE_ASK), Slippage, Green ); }

if(OrdersTotal()==0) {

OrderSend(Symbol(), OP_BUY, Lots, Ask, Slippage, Ask - SL * Point, Ask + TP * Point, NULL, Magic, 0, Green); }

(...)

在这个代码示例中,空头头寸将在第一个跳动点被关闭,但多头头寸不会立即被打开。需要另一个tick来打开多头头寸。

预先感谢 :-)

 

是的,这是有可能的。只要把函数 RefreshRates()放在运算符之间。

 
 
pietra`:
...... 请帮助

它看起来像。我是Pietra。我的第二个名字是什么?

没有完整的代码,就无法帮助你。对不起。

 

需要编码帮助

有谁能帮助我在MT4编码中了解EA的最高和最低开仓价?一个EA有一些开仓。

我找到了这样的代码,但它是用来知道第一笔/最后一笔交易的开盘价。

double GetLastBuyPrice(int Magic)

{

int total=OrdersTotal()-1;

for (int cnt = total ; cnt >=0 ; cnt--)

{

OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES)。

如果(OrderMagicNumber() == Magic && OrderSymbol()==Symbol() && (OrderType()==OP_BUY))

{

返回(OrderOpenPrice())。

}

}

return(10000);

}

如何编写代码以了解最高/最低交易开盘价?

 

代码

lumanauw:
有谁能帮助我了解MT4编码,以了解EA的最高和最低开仓价?一个EA有一些开仓。

我找到了这样的代码,但它是用来知道第一笔/最后一笔交易的开盘。

Double opens[1000] = {0};

double maxopen = 0 ;

double minopen = 1000000 ;

// double GetLastBuyPrice(int Magic)

{

int total=OrdersTotal()-1;

for (int cnt = total; cnt >=0; cnt--)

{

OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES)。

如果(OrderMagicNumber() == Magic && OrderSymbol()==Symbol() && (OrderType()==OP_BUY))

{

opens[cnt] = OrderOpenPrice() ;

}

}

for ( cnt = 0 ; cnt <= total; cnt ++ )

{

if ( opens[cnt] > maxopen ) maxopen = opens[cnt] ;

if ( opens[cnt] < minopen ) minopen = opens[cnt] ;

}

}

如何编码以了解最高/最低的交易开盘价?

嗨。

按上面的方法修改代码。

它不是一个可以从其他地方调用的程序.....,

把它放在你的EA代码中你想要的地方。

OTR

 

需要帮助编写代码以打开一个以上的订单

我一直没有成功地添加代码来打开第二个订单。

我试图在同一信号的基础上开立2个订单,但TP水平不同。

以下是我开第一笔订单的代码。

希望得到任何帮助。

if(SlowSell<0 && FastSell<0 && PrevFastSell==0)

{

ticket=OrderSend(Symbol(),OP_SELL,LotSize,Bid,Slipage,Bid+StopLoss*Point,Bid-TakeProfit*Point, "MA_Angle_Trader",MagicNumber,0,Red)。

如果(ticket>0)

{

如果(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES))Print("SellStop订单 打开:",OrderOpenPrice())。

}

否则 Print("打开SellStop订单出错。",GetLastError())。

return(0);

ticket=OrderSend(Symbol(),OP_SELL,LotSize,Bid,Slipage,Bid+StopLoss*Point,0, "MA_Angle_Trader",MagicNumber,0,Red) 。

如果(ticket>0)

{

如果(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES))Print("SellStop订单打开:",OrderOpenPrice())。

}

否则 Print("打开SellStop订单出错。",GetLastError())。

返回(0)。

}

 

你好

我需要一些简单的编码帮助。

1) 在一定数量的点上对冲交易

2) 然后禁止/暂停任何进一步的交易..........。

确保它不会再次对冲,因为我将手动关闭对冲的交易。

 
williamcope:
我一直没有成功地添加代码来打开第二个订单。

我试图在同一信号的基础上开立2个订单,但TP水平不同。

以下是我开第一笔订单的代码。

希望得到任何帮助。

if(SlowSell<0 && FastSell<0 && PrevFastSell==0)

{

ticket=OrderSend(Symbol(),OP_SELL,LotSize,Bid,Slipage,Bid+StopLoss*Point,Bid-TakeProfit*Point, "MA_Angle_Trader",MagicNumber,0,Red)。

如果(ticket>0)

{

如果(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES))Print("SellStop订单打开:",OrderOpenPrice())。

}

否则 Print("打开SellStop订单出错。",GetLastError())。

return(0);

ticket=OrderSend(Symbol(),OP_SELL,LotSize,Bid,Slipage,Bid+StopLoss*Point,0, "MA_Angle_Trader",MagicNumber,0,Red) 。

如果(ticket>0)

{

如果(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES))Print("SellStop订单打开:",OrderOpenPrice())。

}

否则 Print("打开SellStop订单出错。",GetLastError())。

return(0);

}

替换第一个

return(0);

RefreshRates()。

原因: