[存档!]免费撰写顾问文章 - 页 83

 
intOrderSend( 字符串, int cmd, double volume, double price, int slippage, double stoploss, double takeprofit, string comment=NULL, int magic=0, datetime expiration=0, color arrow_color=CLR_NONE)
用于开仓或下挂单的主要功能。
返回交易服务器分配给订单的票据号码,如果失败则返回-1。要获得额外的错误信息,必须调用GetLastError() 函数。
注意事项。
在市场订单(OP_SELL或OP_BUY)开盘时,只有BID(用于卖出)或Ask(用于买入)的最新价格可以作为开盘价使用。如果对与当前证券不同的证券进行操作,必须使用MarketInfo() 函数,并使用MODE_BID或MODE_ASK参数,才能获得该证券的最新报价。不能应用计算的或未正常化的价格。如果价格线程中没有要求的开盘价,或者没有根据小数点后的数字数量 进行规范化处理,将产生错误 129(ERR_INVALID_PRICE)。如果要求的开盘价完全过期,将产生独立于滑点 参数的错误 138(ERR_REQUOTE)。如果要求的价格已经过期,但存在于线程中,那么将以当前价格开仓,而且只有当前价格位于价格+ 滑点的范围内。

止损和止盈水平不能离市场太近。可以使用MarketInfo() 函数和MODE_STOPLEVEL参数获得以点为单位的止损位的最小距离。如果出现错误的或不正常的停止水平,将产生错误 130(ERR_INVALID_STOPS)。

在下达挂单时,开盘价不能离市场太近。待定价格与当前市场价格的最小距离(以点为单位)可以通过MarketInfo() 函数中的MODE_STOPLEVEL参数获得。如果挂单的开盘价是假的,将产生错误 130(ERR_INVALID_STOPS)。

在一些交易服务器中,挂单到期时间的应用可以被禁用。在这种情况下,当在到期 参数中指定一个非零值时,将产生错误 147(ERR_TRADE_EXPIRATION_DENIED)。

在一些交易服务器上,未结订单和挂单的总量 可能受到限制。如果超过了这个限制,将不会有新的头寸被打开(或没有挂单被放置),交易服务器将返回错误 148(ERR_TRADE_TOO_MANY_ORDERS)。
参数。
标志 - 交易的符号。
cmd - 操作类型。它可以是贸易操作 枚举中的任何一个。
- 地段的数量。
价格 - 倾向于交易的价格。
滑移 - 买入或卖出订单的最大价格滑差。
止损 - 止损水平。
获利 - 获利水平。
评论 - 命令评论文本。评论的最后部分可以由服务器改变。
魔术 - 订单的神奇数字。可作为用户定义的标识符。
到期 - 订单到期时间(仅适用于待定订单)。
箭头_颜色 - 图表上开口箭头的颜色。如果参数缺失或有CLR_NONE值,则不会在图表上画出开口箭头。
 
#属性链接"dwgrell@gmail.com"

//----输入参数
外来的int period=16。
外来的int porog=50。

外来的双倍lot=1。
外部的inttern k=5000。

外部的bool pl=true。
//+------------------------------------------------------------------+
//|专家初始化功能 |
//+------------------------------------------------------------------+
int init()
{
//----

//----
return(0);
}
//+------------------------------------------------------------------+
//|专家去初始化功能|
//+------------------------------------------------------------------+
int deinit()
{
//----

//----
return(0);
}
//+------------------------------------------------------------------+
//|专家启动功能|
//+------------------------------------------------------------------+
int start()
{
double bs=NormalizeDouble(iCustom(Symbol(),0, "Aver",period,0,0),Digits)。
double ss=NormalizeDouble(iCustom(Symbol(),0, "Aver",period,1,0),Digits)。
double tpb=NormalizeDouble(bs+(bs-ss),Digits)。
double tps=NormalizeDouble(ss-(bs-ss),Digits)。
if(pl==true)double lots=MathMin(AccountFreeMargin()/k,5);
如果(pl==false)lot=lot。
如果(OrdersTotal()==0)
{
OrderSend(Symbol(),OP_BUYSTOP,lots,bs,3,ss,tpb,"",1394,0,Red);//打开购买限制。
OrderSend(Symbol(),OP_SELLSTOP,lots,ss,3,bs,tps,"",1394,0,Blue);//打开销售止损。
}
如果(OrdersTotal()==2)
{
OrderSelect(0,SELECT_BY_POS,MODE_TRADES);//选择最近的订单。
如果(OrderType()==OP_BUYSTOP &&bs<OrderOpenPrice())OrderModify(OrderTicket(),bs,ss,tpb,0,Red)。
如果(OrderType()==OP_SELLSTOP&&ss>OrderOpenPrice())OrderModify(OrderTicket(), ss,bs,tps,0,Blue)。
如果(OrderType()==OP_BUY &&ss>OrderStopLoss())OrderModify(OrderTicket(),OrderOpenPrice(),ss,OrderTakeProfit(),0,Red) 。
如果(OrderType()==OP_SELL&&bs<OrderStopLoss())OrderModify(OrderTicket(),OrderOpenPrice(),bs,OrderTakeProfit(),0,Red) 。
OrderSelect(1,SELECT_BY_POS,MODE_TRADES)。
如果(OrderType()==OP_BUYSTOP &&bs<OrderOpenPrice())OrderModify(OrderTicket(),bs,ss,tpb,0,Red)。
如果(OrderType()==OP_SELLSTOP&&ss>OrderOpenPrice())OrderModify(OrderTicket(), ss,bs,tps,0,Blue)。
如果(OrderType()==OP_BUY &&ss>OrderStopLoss())OrderModify(OrderTicket(),OrderOpenPrice(),ss,OrderTakeProfit(),0,Red) 。
如果(OrderType()==OP_SELL&&bs<OrderStopLoss())OrderModify(OrderTicket(),OrderOpenPrice(),bs,OrderTakeProfit(),0,Red) 。
}
如果(OrdersTotal()==1)
{
OrderSelect(0,SELECT_BY_POS,MODE_TRADES)。
如果(OrderType()==OP_BUY) {OrderModify(OrderTicket(),OrderOpenPrice(),ss,OrderTakeProfit(),0,Red);
OrderSend(Symbol(),OP_SELLSTOP,lots,ss,3,bs,tps,"",1394,0,Blue); }
如果(OrderType()==OP_SELL) {OrderModify(OrderTicket(),OrderOpenPrice(),bs,OrderTakeProfit(),0,Red);
OrderSend(Symbol(),OP_BUYSTOP,lots,bs,3,ss,tpb,",1394,0,Red) ;}
如果(OrderType()==OP_BUYSTOP) {OrderModify(OrderTicket(),bs,ss,tpb,0,Red);
OrderSend(Symbol(),OP_SELLSTOP,lots,ss,3,bs,tps,"",1394,0,Blue); }
如果(OrderType()==OP_SELLSTOP){OrderModify(OrderTicket(),ss,bs,tps,0,Blue);
OrderSend(Symbol(),OP_BUYSTOP,lots,bs,3,ss,tpb,",1394,0,Red) ;}
}

return(0);
}
//+------------------------------------------------------------------+
 
#property link "dwgrell@gmail.com"

//--- input parameters
extern int period=16;
extern int porog=50;

extern double lot=1;
extern int k=5000;

extern bool pl=true;
//+------------------------------------------------------------------+
//| expert initialization function |
//+------------------------------------------------------------------+
int init()
{
//----

//----
return(0);
}
//+------------------------------------------------------------------+
//| expert deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//----

//----
return(0);
}
//+------------------------------------------------------------------+
//| expert start function |
//+------------------------------------------------------------------+
int start()
{
double bs=NormalizeDouble(iCustom(Symbol(),0,"Aver",period,0,0),Digits);
double ss=NormalizeDouble(iCustom(Symbol(),0,"Aver",period,1,0),Digits);
double tpb=NormalizeDouble(bs+(bs-ss),Digits);
double tps=NormalizeDouble(ss-(bs-ss),Digits);
if(pl==true)double lots=MathMin(AccountFreeMargin()/k,5);
if(pl==false)lots=lot;
if(OrdersTotal()==0)
{
OrderSend(Symbol(),OP_BUYSTOP,lots,bs,3,0,0,"",1394,0,Red);//Открываем отложник на покупку.
OrderSend(Symbol(),OP_SELLSTOP,lots,ss,3,0,0,"",1394,0,Blue);//Открываем отложник на продажу.
}
if(OrdersTotal()==2)
{
OrderSelect(0,SELECT_BY_POS,MODE_TRADES);//Выбираем ближайший ордер.
if(OrderType()==OP_BUYSTOP &&bs<OrderOpenPrice())OrderModify(OrderTicket(),bs,0,0,0,Red);
if(OrderType()==OP_SELLSTOP&&ss>OrderOpenPrice())OrderModify(OrderTicket(),ss,0,0,0,Blue);
//if(OrderType()==OP_BUY &&ss>OrderStopLoss())OrderModify(OrderTicket(),OrderOpenPrice(),ss,OrderTakeProfit(),0,Red);
//if(OrderType()==OP_SELL&&bs<OrderStopLoss())OrderModify(OrderTicket(),OrderOpenPrice(),bs,OrderTakeProfit(),0,Red);
OrderSelect(1,SELECT_BY_POS,MODE_TRADES);
if(OrderType()==OP_BUYSTOP &&bs<OrderOpenPrice())OrderModify(OrderTicket(),bs,0,0,0,Red);
if(OrderType()==OP_SELLSTOP&&ss>OrderOpenPrice())OrderModify(OrderTicket(),ss,0,0,0,Blue);
//if(OrderType()==OP_BUY &&ss>OrderStopLoss())OrderModify(OrderTicket(),OrderOpenPrice(),ss,OrderTakeProfit(),0,Red);
//if(OrderType()==OP_SELL&&bs<OrderStopLoss())OrderModify(OrderTicket(),OrderOpenPrice(),bs,OrderTakeProfit(),0,Red);
}
if(OrdersTotal()==1)
{
OrderSelect(0,SELECT_BY_POS,MODE_TRADES);
if(OrderType()==OP_BUY) {/*OrderModify(OrderTicket(),OrderOpenPrice(),ss,OrderTakeProfit(),0,Red);*/
OrderSend(Symbol(),OP_SELLSTOP,lots,ss,3,0,0,"",1394,0,Blue);}
if(OrderType()==OP_SELL) {/*OrderModify(OrderTicket(),OrderOpenPrice(),bs,OrderTakeProfit(),0,Red);*/
OrderSend(Symbol(),OP_BUYSTOP,lots,bs,3,0,0,"",1394,0,Red);}
if(OrderType()==OP_BUYSTOP) {/*OrderModify(OrderTicket(),bs,ss,tpb,0,Red);*/
OrderSend(Symbol(),OP_SELLSTOP,lots,ss,3,0,0,"",1394,0,Blue);}
if(OrderType()==OP_SELLSTOP){/*OrderModify(OrderTicket(),ss,bs,tps,0,Blue);*/
OrderSend(Symbol(),OP_BUYSTOP,lots,bs,3,0,0,"",1394,0,Red);}
}

return(0);
}
//+------------------------------------------------------------------+
 
帐户: 154603姓名:Dmitriy货币:美元2011年7月12日, 14:23
已结束的交易。
票务开放时间类型尺寸项目价格S / LT / P关闭时间价格委员会税收互换盈利
37055732011.07.12 13:57购买2.16荣华富贵1.39821.39731.40652011.07.12 14:131.39730.000.000.00-194.40
37053282011.07.12 13:19购买2.01梦之城_梦之城娱乐_梦之城国际娱乐_梦之城国际娱乐平台1.39241.38991.39482011.07.12 13:491.39480.000.000.00482.40
37053562011.07.12 13:14出售2.17荣华富贵1.39001.39241.38762011.07.12 13:191.39240.000.000.00-520.80
37052852011.07.12 13:05出售2.17荣华富贵1.39141.39241.39042011.07.12 13:111.39040.000.000.00217.00
37052782011.07.12 13:04购买2.17梦之城_梦之城娱乐_梦之城国际娱乐_梦之城国际娱乐平台1.39241.39141.39342011.07.12 13:051.39140.000.000.00-217.00
37048122011.07.12 11:32购买2.40梦之城_梦之城娱乐_梦之城国际娱乐_梦之城国际娱乐平台1.39591.39141.40202011.07.12 13:011.39140.000.000.00-1 080.00
37040302011.07.12 13:01出售1.88梦之城_梦之城娱乐_梦之城国际娱乐_梦之城国际娱乐平台1.39141.39171.39112011.07.12 13:011.39170.000.000.00-56.40
37041582011.07.12 10:22购买2.13梦之城_梦之城娱乐_梦之城国际娱乐_梦之城国际娱乐平台1.38961.38981.39582011.07.12 11:301.39580.000.000.001 320.60
37040632011.07.12 10:12购买2.02梦之城_梦之城娱乐_梦之城国际娱乐_梦之城国际娱乐平台1.38611.38341.38882011.07.12 10:211.38880.000.000.00545.40
37040202011.07.12 10:05购买1.92梦之城_梦之城娱乐_梦之城国际娱乐_梦之城国际娱乐平台1.38481.38341.38592011.07.12 10:121.38590.000.000.00211.20
37040012011.07.12 10:04出售1.95梦之城_梦之城娱乐_梦之城国际娱乐_梦之城国际娱乐平台1.38371.38481.38312011.07.12 10:051.38480.000.000.00-214.50
37035052011.07.12 10:01购买1.82荣华富贵1.38431.38371.38492011.07.12 10:041.38370.000.000.00-109.20
37039202011.07.12 09:52出售2.04梦之城_梦之城娱乐_梦之城国际娱乐_梦之城国际娱乐平台1.38451.38431.37552011.07.12 10:011.38430.000.000.0040.80
37036312011.07.12 09:12出售1.88梦之城_梦之城娱乐_梦之城国际娱乐_梦之城国际娱乐平台1.38921.39351.38492011.07.12 09:501.38490.000.000.00808.40
37035332011.07.12 09:03出售1.80荣华富贵1.39151.39351.38952011.07.12 09:101.38950.000.000.00360.00
37035062011.07.12 09:02出售1.82荣华富贵1.39271.39301.39242011.07.12 09:021.39300.000.000.00-54.60
 
我不推荐它是真的。
 
我没有得到停止损失
 
在蜡烛图的低点止损
 
或最多,取决于哪个订单
 
试着研究一下EA的代码, 你就会明白为什么它变得很中性了。那里很简单,因为我是为一个测试员写的 但奇怪的是,这很有效。
 
说实话,我根本就不了解MQL编程。