using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using TradeFunctions;
//MACD策略
//DIFF大于0做多
//DIFF小于0做空
namespace TradeScript
{
public class UserScript:UserScriptMain
{
double DEA = 0;
int DelaySec = 60 * 5; //K线开始后,等待5分钟下单
int Count = 1; //持仓数量
//初始化,常数设置
public override void Init()
{
SetConst("短期均线",12); //设置常数,可在策略窗口右键菜单修改参数
SetConst("长期均线",26); //设置常数
}
//策略运行
public override void Run()
{
int num_short;
int num_long;
GetConst("短期均线",out num_short); //取得常数
GetConst("长期均线",out num_long);
double EMA_short = EMA(Close, num_short); //计算短期均线
double EMA_long = EMA(Close, num_long); //计算长期均线
double DIFF = EMA_short-EMA_long; //计算DIFF
DEA = DEA*8/10+DIFF*2/10;
double BAR = 2*(DIFF-DEA);
//如果DIFF大于0,且持仓小于等于0,买入,
if (DIFF> 0 && Positions <= 0)
{
ClearPositionsNextBar(DelaySec); //清除所持仓位
BuyNextBar(Count, DelaySec);
}
//如果DIFF小于0,且持仓小于等于0,卖出
else if (DIFF < 0 && Positions >= 0)
{
ClearPositionsNextBar(DelaySec); //清除所持仓位
SellNextBar(Count, DelaySec);
}
Line("零线", 0, 1); //绘制短期均线,红色
StickLine("MACD",0,DIFF); //绘制铸线
Line("Bar", BAR, 1,GRAY); //绘制短期均线,红色
}
}
}