OrderTicket( ) ,OrderM…

本文介绍了MT4平台中几个关键的指标函数,包括用于计算索引柱位置的intObjectGetShiftByValue()函数和获取指定柱值的doubleObjectGetValueByShift()函数。此外,还详细解释了用于移动图表上物件坐标的boolObjectMove()函数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

OrderTicket( ) ,OrderMagicNumber( ) , OrderCo...


OrderTicket( ) ,OrderMagicNumber( ) , OrderCo...   http://www.360doc.com/content/12/0215/16/6992572_186842515.shtml
 
  int ObjectGetShiftByValue( string name, double value)
函数计算并返回索引柱(移动当前相关的柱)给出的值。索引柱由第一和第二坐标应用线性方程计算。适用于趋势线和相似的物件。获得详细的错误信息, 查看 GetLastError() 函数。
参见 ObjectGetValueByShift() 函数。
参量:
name - 物件名称。
value - 价格值。
示例:
int shift=ObjectGetShiftByValue("MyTrendLine#123", 1.34);
double ObjectGetValueByShift( string name, int shift)
函数计算并返回指定柱的值(转移当前相关的柱)。索引柱由第一和第二坐标应用线性方程计算。适用于趋势线和相似的物件。获得详细的错误信息, 查看 GetLastError() 函数。
参见 ObjectGetShiftByValue() 函数。
参量:
name - 物件名称。
shift - 柱索引。
示例:
double price=ObjectGetValueByShift("MyTrendLine#123", 11);
bool ObjectMove( string name, int point, datetime time1, double price1)
函数在图移动一个物件座标。物件可能根据他们的类型有一个到三个座标。如果函数成功,返回值将是 TRUE,否则,它将是FALSE。获得详细的错误信息, 查看 GetLastError() 函数。物件坐标的开始数字必须是0。
参量:
name - 物件名称。
point - 坐标索引(0-2)。
time1 - 新时间值。
price1 - 新值。
//+------------------------------------------------------------------+ //| MA_Strategy_EA.mq4 | //| 基于均线多特性的综合自动交易策略 | //+------------------------------------------------------------------+ #property strict extern int FastMAPeriod = 5; extern int MediumMAPeriod = 10; extern int SlowMAPeriod = 20; extern int TrailingMAPeriod = 50; extern double DeviationThreshold = 2.0; // 百分比偏离阈值 extern int Slippage = 3; extern double LotSize = 0.1; //+------------------------------------------------------------------+ //| 初始化函数 | //+------------------------------------------------------------------+ int OnInit() { Print("均线综合策略EA已启动&quot;); return(INIT_SUCCEEDED); } //+------------------------------------------------------------------+ //| 主交易函数 | //+------------------------------------------------------------------+ void OnTick() { if (OrdersTotal() > 0) return; // 仅允许单笔持仓 double fastMA = iMA(NULL, 0, FastMAPeriod, 0, MODE_SMA, PRICE_CLOSE, 0); double mediumMA = iMA(NULL, 0, MediumMAPeriod, 0, MODE_SMA, PRICE_CLOSE, 0); double slowMA = iMA(NULL, 0, SlowMAPeriod, 0, MODE_SMA, PRICE_CLOSE, 0); double price = Close[0]; // 多均线排列判断 bool isBullish = (fastMA > mediumMA && mediumMA > slowMA); bool isBearish = (fastMA < mediumMA && mediumMA < slowMA); // 均线方向判断 double fastMA1 = iMA(NULL, 0, FastMAPeriod, 0, MODE_SMA, PRICE_CLOSE, 1); double fastMA2 = iMA(NULL, 0, FastMAPeriod, 0, MODE_SMA, PRICE_CLOSE, 2); bool isFastUp = (fastMA > fastMA1 && fastMA1 > fastMA2); bool isFastDown = (fastMA < fastMA1 && fastMA1 < fastMA2); // 多周期均线共振(H1与M15) double maH1 = iMA(NULL, PERIOD_H1, 20, 0, MODE_SMA, PRICE_CLOSE, 0); double maM15 = iMA(NULL, PERIOD_M15, 20, 0, MODE_SMA, PRICE_CLOSE, 0); bool isMultiTimeframeBullish = (maH1 > iMA(NULL, PERIOD_H1, 20, 0, MODE_SMA, PRICE_CLOSE, 1) && maM15 > iMA(NULL, PERIOD_M15, 20, 0, MODE_SMA, PRICE_CLOSE, 1)); // 价格与均线偏离程度 double deviation = (price - fastMA) / fastMA * 100; // 支撑与阻力判断 double support = iMA(NULL, 0, 50, 0, MODE_SMA, PRICE_CLOSE, 0); bool isNearSupport = (price > support && price < iMA(NULL, 0, 50, 0, MODE_SMA, PRICE_CLOSE, 1)); // 开仓逻辑 if (isBullish && isFastUp && isMultiTimeframeBullish && isNearSupport && deviation < -DeviationThreshold) { OrderSend(Symbol(), OP_BUY, LotSize, Ask, Slippage, 0, 0, "Buy Order&quot;, 0, 0, clrGreen); } else if (isBearish && isFastDown && !isMultiTimeframeBullish && deviation > DeviationThreshold) { OrderSend(Symbol(), OP_SELL, LotSize, Bid, Slippage, 0, 0, "Sell Order&quot;, 0, 0, clrRed); } // 动态止损与均线联动 for (int i = 0; i < OrdersTotal(); i++) { if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) { double trailingMA = iMA(NULL, 0, TrailingMAPeriod, 0, MODE_SMA, PRICE_CLOSE, 1); if (OrderType() == OP_BUY && Bid - trailingMA > 50 * Point) { OrderModify(OrderTicket(), OrderOpenPrice(), trailingMA, OrderTakeProfit(), 0, clrNONE); } else if (OrderType() == OP_SELL && trailingMA - Ask > 50 * Point) { OrderModify(OrderTicket(), OrderOpenPrice(), trailingMA, OrderTakeProfit(), 0, clrNONE); } } } } 把这个代码加上去一起全部完整发过来
最新发布
07-27
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值