加载中 ...
首页 > 股票 > 证券要闻 > 正文

mt4的k线剩余时间(mt4显示k线走完剩余华夏回报二号基金净值时间)

2023-10-23 00:13:50 来源:倾延资


mt4软件自带两个ea买卖战略,macd和moving average(ma),这儿解析的是ma。

一、战略思路

K线上穿均线时,假如无仓,则开多仓,假如有空仓,则平仓;

K线下穿均线时,假如无仓,则开空仓,假如有多仓,则平仓。

二、代码解析

//双斜线后为注释内容,对程序履行没影响。注:绿色字体为我的注释,黑色注释为原程序自带。

#define MAGICMA 20210201//大局标识,用于区别该战略与其他战略,在对单子进行挑选时会用到,保证该战略不会操作其它战略的单子

//--- Inputs(输入变量,这些变量答应用户输入,也能够加载、保存,如下图所示)input double Lots =0.1;//下单手数

input double MaximumRisk =0.02;//可用的最大资金份额2%

input double DecreaseFactor=3;//作者自己界说的数据,经过下文能够看到,影响下单量

input int MovingPeriod =12;//移动平均线周期

input int MovingShift =6;//均线向左的偏移量

//| Calculate open positions |

//核算当时开单的数量,包含买单和卖单,不考虑锁单的状况,只要买单、卖单、空仓三种状况

int CalculateCurrentOrders(string symbol)

{

int buys=0,sells=0;(初始化买奇数和卖奇数为0)

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

{

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

if(OrderSymbol()==Symbol() && OrderMagicNumber()==MAGICMA)

(单子的钱银对是当时的钱银对,而且战略标识符是该战略的)

{

if(OrderType()==OP_BUY) buys++;

if(OrderType()==OP_SELL) sells++;

//订单类型为整数型,0-BUY,1-SELL,2-BUYLIMT,3-BUYSTOP,4-SELLLIMT,5-SELLSTOP,下文中还会用到“>OP_SELL”代表挂单

}

}

if(buys>0) return(buys);

else return(-sells);

(假如买奇数大于0,回来买奇数,不然回来卖奇数的负数,假如空仓就会回来0。)

}

//| Calculate optimal lot size |//核算下单的数量

double LotsOptimized()

{

double lot=Lots;

int orders=HistoryTotal(); // history orders total

int losses=0; // number of losses orders without a break亏本的单量

//--- select lot size

lot=NormalizeDouble(AccountFreeMargin()*MaximumRisk/1000.0,1);

//--- calcuulate number of losses orders without a break

if(DecreaseFactor>0)

{

for(int i=orders-1;i>=0;i--)

{

if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)==false)

{

Print("Error in history!");

break;

}

if(OrderSymbol()!=Symbol() || OrderType()>OP_SELL)

continue;

//---当不是买单和卖单时(比方挂单),持续

if(OrderProfit()>0) break;

if(OrderProfit()<0) losses++;//赢利小于0的,亏奇数+1

}

if(losses>1)

lot=NormalizeDouble(lot-lot*losses/DecreaseFactor,1);

//批改下单量, 假如 亏本奇数>1时,则从头核算下单量,并保存小数点后1位,其核算公式为:下单量=(lot-lot*losses/DecreaseFactor(=3))。

}

//--- return lot size

if(lot<0.1) lot=0.1;

return(lot);

}

//| Check for open order conditions |(建仓函数)

void CheckForOpen()

{

double ma;

int res;

//--- go trading only for first tiks of new bar

if(Volume[0]>1) return;

//只要在新K线的初次报价时履行,假如当时K线的成交价次数大于1时,回来。
(不是K线的开盘时刻点,即当时k线还没收盘确认,则直接回来;不然,假如是K线第一个成交价,则向下持续运转)

//--- get Moving Average核算ma值

ma=iMA(NULL,0,MovingPeriod,MovingShift,MODE_SMA,PRICE_CLOSE,0);

//--- sell conditions

if(Open[1]>ma && Close[1]<ma)

// 假如前1根K线下穿均线(即K线的开盘价大于均线值、收盘价小于均线值)

{

res=OrderSend(Symbol(),OP_SELL,LotsOptimized(),Bid,3,0,0,"",MAGICMA,0,Red);

// 发送仓单(当时钱银对,卖出方向,开仓量核算(),买价,滑点=3,无止损,无止赢,订单编号,标上赤色箭头)

return;

}

//--- buy conditions

if(Open[1]<ma && Close[1]>ma)

// 假如前1根K线上穿均线(即K线的开盘价小于均线值、收盘价大于均线值)

{

res=OrderSend(Symbol(),OP_BUY,LotsOptimized(),Ask,3,0,0,"",MAGICMA,0,Blue);

// 发送仓单(当时钱银对,买入方向,开仓量核算(),卖价,滑点=3,无止损,无止赢,订单编号,标上蓝色箭头)

return;

}

}

//| Check for close order conditions |(平仓函数)

void CheckForClose()

{

double ma;

//--- go trading only for first tiks of new bar

if(Volume[0]>1) return;

//--- get Moving Average

ma=iMA(NULL,0,MovingPeriod,MovingShift,MODE_SMA,PRICE_CLOSE,0);

//---

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

{

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

// 假如 没有本系统所买卖的仓单时,跳出循环

if(OrderMagicNumber()!=MAGICMA || OrderSymbol()!=Symbol()) continue;

// 假如 仓单编号不是本系统编号,或许 仓单钱银对不是当时钱银对时,持续挑选

//--- check order type

if(OrderType()==OP_BUY)

{

if(Open[1]>ma && Close[1]<ma)

{

if(!OrderClose(OrderTicket(),OrderLots(),Bid,3,White))

// 假如第1根K线开盘价下穿均线(即开盘价高于均价而收盘价低于均价),则进行多头平仓(仓单编号,持仓数量,买价,滑点=3,用白色箭头显现)

Print("OrderClose error ",GetLastError());

}

break;

}

if(OrderType()==OP_SELL)

{

if(Open[1]<ma && Close[1]>ma)

{

if(!OrderClose(OrderTicket(),OrderLots(),Ask,3,White))

// 假如第1根K线开盘价上穿均线(即开盘价低于均价而收盘价高于均价),则进行空头平仓(仓单编号,持仓数量,卖价,滑点=3,用白色箭头显现)

Print("OrderClose error ",GetLastError());

}

break;

}

}

}

//| OnTick function |(循环函数,每更新一次数据履行一次函数)

void OnTick()

{

//--- check for history and trading

if(Bars<100 || IsTradeAllowed()==false)

//K线数小于100或不答应智能买卖时,回来

return;

//--- calculate open orders by current symbol

if(CalculateCurrentOrders(Symbol())==0) CheckForOpen();

else CheckForClose();

//假如当时无单,进入建仓函数,不然进入平仓函数

}

三、战略回测

回测时,需求先下载前史数据,东西---前史数据中心---挑选标的目标,下载。

这儿挑选了欧美钱银对,翻开战略测验窗口,按钮在新订单左面,或是按快捷键ctrl+r,进行如下设置:

挑选买卖战略、买卖种类、ma时刻周期、测验时刻区间。点击开端,进行测验,成果如下:
猜你喜欢的标签:合肥安凯客车 深冷股份

“走马消息,分享精选全球有价值的财经新闻”的新闻页面文章、图片、音频、视频等稿件均为自媒体人、第三方机构发布或转载。如稿件涉及版权等问题,请与

我们联系删除或处理,客服邮箱,稿件内容仅为传递更多信息之目的,不代表本网观点,亦不代表本网站赞同

其观点或证实其内容的真实性。

  • 声音提醒
  • 60秒后自动更新
  • 中国8月CPI年率2.3%,预期2.1%,前值2.1%。中国8月PPI年率4.1%,预期4.0%,前值4.6%。

    08:00
  • 【统计局解读8月CPI:主要受食品价格上涨较多影响】从环比看,CPI上涨0.7%,涨幅比上月扩大0.4个百分点,主要受食品价格上涨较多影响。食品价格上涨2.4%,涨幅比上月扩大2.3个百分点,影响CPI上涨约0.46个百分点。从同比看,CPI上涨2.3%,涨幅比上月扩大0.2个百分点。1-8月平均,CPI上涨2.0%,与1-7月平均涨幅相同,表现出稳定态势。

    08:00
  • 【 统计局:从调查的40个行业大类看,8月价格上涨的有30个 】统计局:从环比看,PPI上涨0.4%,涨幅比上月扩大0.3个百分点。生产资料价格上涨0.5%,涨幅比上月扩大0.4个百分点;生活资料价格上涨0.3%,扩大0.1个百分点。从调查的40个行业大类看,价格上涨的有30个,持平的有4个,下降的有6个。 在主要行业中,涨幅扩大的有黑色金属冶炼和压延加工业,上涨2.1%,比上月扩大1.6个百分点;石油、煤炭及其他燃料加工业,上涨1.7%,扩大0.8个百分点。化学原料和化学制品制造业价格由降转升,上涨0.6%。

    08:00
  • 【日本经济已重回增长轨道】日本政府公布的数据显示,第二季度经济扩张速度明显快于最初估值,因企业在劳动力严重短缺的情况下支出超预期。第二季度日本经济折合成年率增长3.0%,高于1.9%的初步估计。经济数据证实,该全球第三大经济体已重回增长轨道。(华尔街日报)

    08:00
  • 工信部:1-7月我国规模以上互联网和相关服务企业完成业务收入4965亿元,同比增长25.9%。

    08:00
  • 【华泰宏观:通胀短期快速上行风险因素主要在猪价】华泰宏观李超团队点评8月通胀数据称,今年二、三季度全国部分地区的异常天气(霜冻、降雨等)因素触发了粮食、鲜菜和鲜果价格的波动预期,但这些因素对整体通胀影响有限,未来重点关注的通胀风险因素仍然是猪价和油价,短期尤其需要关注生猪疫情的传播情况。中性预测下半年通胀高点可能在+2.5%附近,年底前有望从高点小幅回落。

    08:00
  • 【中国信通院:8月国内市场手机出货量同比环比均下降】中国信通院公布数据显示:2018年8月,国内手机市场出货量3259.5万部,同比下降20.9%,环比下降11.8%,其中智能手机出货量为3044.8万部,同比下降 17.4%; 2018年1-8月,国内手机市场出货量2.66亿部,同比下降17.7%。

    08:00
  • 土耳其第二季度经济同比增长5.2%。

    08:00
  • 乘联会:中国8月份广义乘用车零售销量176万辆,同比减少7.4%。

    08:00
  • 央行连续第十四个交易日不开展逆回购操作,今日无逆回购到期。

    08:00
  • 【黑田东彦:日本央行需要维持宽松政策一段时间】日本央行已经做出调整,以灵活地解决副作用和长期收益率的变化。央行在7月政策会议的决定中明确承诺将利率在更长时间内维持在低水平。(日本静冈新闻)

    08:00
  • 澳洲联储助理主席Bullock:广泛的家庭财务压力并非迫在眉睫,只有少数借贷者发现难以偿还本金和利息贷款。大部分家庭能够偿还债务。

    08:00
  • 【 美联储罗森格伦:9月很可能加息 】美联储罗森格伦:经济表现强劲,未来或需采取“温和紧缩”的政策。美联储若调高对中性利率的预估,从而调升对利率路径的预估,并不会感到意外。

    08:00
  • 美联储罗森格伦:经济表现强劲,未来或需采取“温和紧缩”的政策。美联储若调高对中性利率的预估,从而调升对利率路径的预估,并不会感到意外。

    08:00
  • 美联储罗森格伦:鉴于经济表现强劲,未来或需采取“温和紧缩的”政策。

    08:00