
等级: 专业版
- 注册:
- 2022-1-11
- 曾用名:
|

楼主 |
发表于 2024-4-23 15:15
|
显示全部楼层
Params
//默认螺纹888 1小时
Numeric Length(20); //周期
Numeric Offset(2); //标准差倍数
Numeric X(2); //过滤均线的Length倍数, 范围及步长:1-5,1
Numeric TRS(75);//移动止损止盈幅度 参数范围及步长: 5-200,5
Numeric Fund(20000); //投入保证金;
Vars
Numeric Lots(0);
Series<Numeric> ma1;
Series<Numeric> UpLine; //上轨
Series<Numeric> DownLine; //下轨
Series<Numeric> MidLine; //中间线
Series<Numeric> Band;
Series<Numeric> cond1;
Series<Numeric> cond2;
Series<Numeric> cond3;
Series<Numeric> cond4;
Series<Numeric> kcond1;
Series<Numeric> kcond2;
Series<Numeric> kcond3;
Series<Numeric> kcond4;
Series<Numeric> BB;
Series<Numeric> WIDTH;
Plot plt1;
Plot plt2;
//出场变量
Series<Numeric> MyPrice;//开仓价格
Series<Numeric> MyPrice2;//开仓价格
Series<Numeric> HighAfterEntry;//开仓后出现的最高价
Series<Numeric> LowAfterEntry;//开仓后出现的最低价
Series<Numeric> liQKA;
Series<Numeric> DliqPoint;
Series<Numeric> KliqPoint;
Series<Numeric> barcoutN;
Series<Numeric> bar_entry_count;
Series<Numeric> kaicang_kg;
Events
//此处实现事件函数
//初始化事件函数,策略运行期间,首先运行且只有一次,应用在订阅数据等操作
OnInit()
{
//与数据源有关
Range[0:DataCount-1]
{
//=========数据源相关设置==============
AddDataFlag(Enum_Data_RolloverBackWard()); //设置后复权
AddDataFlag(Enum_Data_RolloverRealPrice()); //设置映射真实价格
AddDataFlag(Enum_Data_AutoSwapPosition()); //设置自动换仓
//AddDataFlag(Enum_Data_IgnoreSwapSignalCalc()); //设置忽略换仓信号计算
plt1.figure(0);
plt2.figure(0);
}
}
//Bar更新事件函数,参数indexs表示变化的数据源图层ID数组
OnBar(ArrayRef<Integer> indexs)
{
//计算手数,FUND是投入的保证金,最低下单一手
Lots = Max(1, Round(Fund/(O*ContractUnit*BigPointValue* MarginRatio/rollover), 0));
//布林通道计算
ma1 = AverageFC(Close,Length*X);
MidLine = AverageFC(Close,Length);
Band = StandardDev(Close,Length,2);
UpLine = MidLine + Offset * Band;
DownLine = MidLine - Offset * Band;
cond1=IIF(MidLine>MidLine[1] and C>MidLine,MidLine,cond1); // 根据条件判断更新cond1的值
cond2=IIF(UpLine>UpLine[1] and H>UpLine ,UpLine,cond2); // 根据条件判断更新cond2的值
cond3=IIF(DownLine<DownLine[1] and L<DownLine ,DownLine,cond3); // 根据条件判断更新cond3的值
cond4=IIF(ma1>ma1[1] and C>ma1 ,ma1,cond4); // 根据条件判断更新cond4的值
kcond1=IIF(MidLine<MidLine[1] and C<MidLine,MidLine,kcond1); // 根据条件判断更新kcond1的值
kcond2=IIF(UpLine>UpLine[1] and H>UpLine ,UpLine,kcond2); // 根据条件判断更新kcond2的值
kcond3=IIF(DownLine<DownLine[1] and L<DownLine ,DownLine,kcond3); // 根据条件判断更新kcond3的值
kcond4=IIF(ma1<ma1[1] and C<ma1 ,ma1,kcond4); // 根据条件判断更新kcond4的值
PlotNumeric("MidLine",cond1,cond1,White);
PlotNumeric("UpLine",cond2,cond2,red);
PlotNumeric("DownLine",cond3,cond3,Green); |
|