//------------------------------------------------------------------------
// 简称: danjunxian
// 名称:
// 类别: 公式应用
// 类型: 用户应用
// 输出: Void
//------------------------------------------------------------------------
Params
numeric ma_1canshu(20);
numeric baifenbi(50);
Vars
numeric yitiao;
series<numeric> ma_1;
numeric kaicangshoushu;
numeric tickzichan;
numeric kaicangjia;
Events
OnInit()
{
AddDataFlag(Enum_Data_RolloverBackWard()); //设置后复权
AddDataFlag(Enum_Data_RolloverRealPrice()); //设置映射真实价格
AddDataFlag(Enum_Data_AutoSwapPosition()); //设置自动换仓
AddDataFlag(Enum_Data_IgnoreSwapSignalCalc()); //设置忽略换仓信号计算
//=========交易相关设置==============
SetInitCapital(20000); //设置初始资金为2万
}
//Bar更新事件函数,参数indexs表示变化的数据源图层ID数组
OnBar(ArrayRef<Integer> indexs)
{
yitiao=MinMove*PriceScale;
tickzichan = Portfolio_CurrentCapital() + Portfolio_UsedMargin();
kaicangshoushu = intpart(tickzichan* (baifenbi/100))/(close[1] * ContractUnit()*BigPointValue()*(marginratio()+0.2));
ma_1= AverageFC(Close,ma_1canshu);
plotnumeric("MA1",ma_1);
if(marketposition<>1&&close>ma_1);
{
kaicangjia = (close+yitiao);
buy(kaicangshoushu,kaicangjia);
}
if(marketposition<>-1&&close<ma_1);
{
kaicangjia = (close-yitiao);
sellshort(kaicangshoushu,kaicangjia);
}
}
公式的意思:
单均线,close>ma_1反手买开,close<ma_1反手卖开
开仓价:收盘价 + 一滑点
开仓手数:总权益*50%/每手保证金(就是每次开仓都是一半仓位)
加载到K线上是错的,不知道错哪了?
比如这一句,
if(marketposition<>1&&close>ma_1);
{
kaicangjia = (close+yitiao);
buy(kaicangshoushu,kaicangjia);
}
改完后应该是这样对吗?
if(marketposition<>1&&close[1]>ma_1);
{
kaicangjia = (open+yitiao);
buy(kaicangshoushu,kaicangjia);
}
公式的意思:
单均线,close>ma_1反手买开,close<ma_1反手卖开
开仓价:收盘价 + 一滑点
开仓手数:总权益*50%/每手保证金(就是每次开仓都是一半仓位)
按照上边这个意思,这个程序其他地方有没有错的?劳烦工程师帮忙检查
是哦,那么除了这个价格问题,其他地方有没有不对的?
你好,还有个问题,修改完后我想以收盘价作为开平仓价格,但加载到K线图上发现开平仓价格对不上?