如何编码? - 页 59

 

大家好...

我怎样才能在元编辑器中设置订单代码。

我使用的是模拟账户......是否可以在模拟账户中设置一个订单?

我试过了,但失败了

 

BE参数

你好。

我需要帮助在这个EA中添加BE止损参数。这个EA是我从这个主题的第一页中得到的,它基于Trendmanager系统。

谢谢。

查。

e-trendmanager.mq4

附加的文件:
 

请提供MQ4文件

你好。
我有这个TrendmanagerEA文本文件,请问谁能把它转换成MQ4文件,我将测试并与另一个EA进行比较。

提前感谢。

查。

#property copyright "Copyright ฉ 2006, www.easyforexsignals.com"

#property link "paul@easyforexsignals.com"

#define LONGCOLOR DodgerBlue

#define SHORTCOLOR Orange Red

#define MAGICTM 20070610

外置双倍TMlots=0.1;

外置 int MoveStopAmount = 20;

外置 int MoveStopAfterProfitof = 55;

外置 int minadxlevel = 20;

外部双数 minSolarWind = 0.25;

外置双数minJuice = 0.001;

外置int StopLoss=50。

Slippage = 3,

TakeProfit=120。

datetime LastTMSignalTime;

Extern int MinTimeBetweenSignals = 60;

int init(){

返回(0)。

}

int deinit(){

return(0);

}

int start()

{

int res= 0;

如果(Bars<100 || IsTradeAllowed()==false) 返回。

CheckTrendManager(); // 检查趋势管理器系统

CheckForTMClose(); // 检查该系统的收盘情况

CheckForStopMove(); //移动任何未平仓交易的止损。

}

void CheckForStopMove() {

for(int i=0;i<OrdersTotal();i++)

{

if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break;

如果(OrderMagicNumber()!=MAGICTM || OrderSymbol()!=Symbol()) 继续。

如果(OrderType()==OP_BUY)

{

//上移止损点以锁定利润

如果((OrderOpenPrice()-Ask)>=(MoveStopAfterProfitof * Point()){

OrderModify(OrderTicket(),0,OrderOpenPrice()+(MoveStopAmount*Point),OrderTakeProfit(),0,Black) 。

}

}

如果(OrderType()==OP_SELL)

{

// 上移止损点以锁定利润

如果((OrderOpenPrice()- Bid) >= (MoveStopAfterProfitof * Point()){

OrderModify(OrderTicket(),0,OrderOpenPrice()-(MoveStopAmount*Point),OrderTakeProfit(),0,Black) 。

}

}

}

}

空白 检查趋势管理器() {

如果(Time[0]-LastTMSignalTime > MinTimeBetweenSignals) {

双倍 PipsStopLoss, PipsTakeProfit;

double TMbuy = iCustom(Symbol(),Period(), "TrendManagerNT",2, 0);

double TMsell = iCustom(Symbol(),Period(), "TrendManagerNT",3, 0);

int orderresult;

如果(TMbuy > 0) {

如果(CheckFilters(OP_BUY)==true) {

PipsStopLoss = Ask-(StopLoss * Point())。

PipsTakeProfit = Ask+(TakeProfit * Point())。

CloseExisting(OP_SELL);

orderresult =OrderSend(Symbol(),OP_BUY,TMlots,Ask,Slippage,PipsStopLoss,PipsTakeProfit,"",MAGICTM,0,Maroon)。

Print(Time[0] + "BUY ON TM,订单结果是:" + orderresult + "stop:"+ PipsStopLoss + ",takeprofit:" + PipsTakeProfit+ PipsTakeProfit)。

LastTMSignalTime = Time[0];

}

}

如果(TMsell > 0){

如果(CheckFilters(OP_SELL)==true) {

PipsStopLoss = Bid+(StopLoss * Point())。

PipsTakeProfit = Bid-(TakeProfit * Point())。

CloseExisting(OP_BUY);

orderresult = OrderSend(Symbol(),OP_SELL,TMlots,Bid,Slippage,PipsStopLoss,PipsTakeProfit,"",MAGICTM,0,Green)。

Print(Time[0] + "SELL ON TM, order result was:" + orderresult + "stop:"+ PipsStopLoss + ",takeprofit:" + PipsTakeProfit+ PipsTakeProfit)。

LastTMSignalTime = Time[0];

}

}

}

}

void CheckForTMClose() {

double TMclosesell = iCustom(Symbol(),Period(), "TrendManagerNT",4, 0);

double TMclosebuy = iCustom(Symbol(),Period(), "TrendManagerNT",5, 0);

for(int i=0;i<OrdersTotal();i++)

{

if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break;

如果(OrderMagicNumber()!=MAGICTM || OrderSymbol()!=Symbol()) 继续。

//---- 就关闭它

如果((TMclosesell > 0) && (OrderType()==OP_SELL)){

OrderClose(OrderTicket(),OrderLots(), Bid,10,Pink)。

}

如果((TMclosebuy > 0) && (OrderType()==OP_BUY)){

OrderClose(OrderTicket(),OrderLots(),Bid,10,Pink)。

}

}

}

//只是关闭任何现有的头寸

void CloseExisting(int OrderTyp)

{

for(int i=0;i<OrdersTotal();i++)

{

if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break;

如果(OrderMagicNumber()!=MAGICTM || OrderSymbol()!=Symbol()) 继续。

//----,只需关闭它就可以了 Std slippage

如果(OrderType()==OrderTyp)

{

OrderClose(OrderTicket(),OrderLots(), Bid,10,White)。

}

}

}

bool CheckFilters(int OrderTyp) {

return(true);

}

 

只需将文件重命名为以.mq4为扩展名。这就是全部。

 

你好。

我试图改变它,但不工作。你能为我完成它吗?

谢谢。

查。

 
chawichsak:
你好。

我试图改变它,但没有成功。你能为我完成它吗?

谢谢。

查。

已完成,但修复了代码中的一些错误。

罗伯特

附加的文件:
 

需要对ordeersend功能的帮助

大家好。

我在使用ordersend()函数 时遇到了麻烦。

这是我的代码。

int x = 1;

int init()

{

return(0);

}

int deinit()

{

return(0);

}

int start()

{

double prixdachat = MathMax(High[1],High[2]);

double prixdevente = MathMin(Low[1], Low[2]);

int ticket1,ticket2;

if (x==1)

{

ticket1=OrderSend(Symbol(),OP_BUY,1,prixdachat+10*Point,5,prixdachat,prixdachat+20*Point, "ordre",1,15,Green);

ticket2=OrderSend(Symbol(),OP_SELL,1,prixdevente-10*Point,5,prixdevente,prixdevente-20*Point, "ordre",2,15,Red);

Print("order launched");

x++;

if(ticket1<0)

{

Print("OrderSend 1 failed with error #," GetLastError() )。

return(0);

}

if(ticket2<0)

{

Print("OrderSend 2 failed with error #",GetLastError());

return(0);

}

}

return(0);

}

使用这段代码,我得到了错误#130(错误停止)。

谁能解释一下哪里出了问题,我不明白......

谢谢。

 

如果您使用所谓的"即时执行",即使用OP_BUY或OP_SELL订单,您不能指定买入时的Ask和卖出时的Bid以外的进入价格。

 
fracte:
你好。

ticket1=OrderSend(Symbol(),OP_BUY,1,prixdachat+10*Point,5,prixdachat,prixdachat+20*Point, "ordre",1,15,Green) 。

ticket2=OrderSend(Symbol(),OP_SELL,1,prixdevente-10*Point,5,prixdevente,prixdevente-20*Point, "ordre",2,15,Red)。

使用这段代码,我得到了错误#130(错误停止)。

谁能给我解释一下哪里出了问题,我不明白...

谢谢。

使用挂单 代替即时订单。

(例如,将OP_BUY改为OP_BUYSTOP,OP_SELL改为OP_SELLSTOP)

就会好起来。

 

非常感谢Pip先生。

CHA。

原因: