问题是,为什么画线,画在 data0的开盘价,而不是data1的?
Params
// 1、主参数
Numeric n(55); // 0随机/非0人工 前一日波幅百分比 单位:%
// 2、通用型参数
Numeric BAP(1); // 滑点
Numeric TradeCapital(0); // 保证金
Numeric Lots(1); // 手数
Numeric leverage(0); // 杠杆倍数 仅测试用途 实盘改为0
Numeric MainMonth(0); // 合约月份 0当前合约 1关联主力合约 其它具体合约如1910
String AccountName(gs000); // 账户名
Numeric Coordinate(0); // 窗口坐标
Vars
Numeric k1; // 前一日波幅百分比 单位:%
// 1、通用型变量
Numeric BidAskSpread(1); // 买卖价差
NumericSeries TradePrice; // 交易价格
NumericSeries TradeUnit; // 交易手数
NumericSeries TradeDirection; // 交易方向
NumericSeries TradeDirection1; // 交易方向
NumericSeries TradeDirection2; // 交易方向
StringSeries Symbol1; // 输出合约
BoolSeries BuyConditon(False); // 买入开仓条件
BoolSeries SellShortConditon(False); // 卖出开仓条件
BoolSeries SellConditon(False); // 卖出平仓条件
BoolSeries BuyToCoverConditon(False); // 买入平仓条件
// 2、非通用型变量
Numeric n_net;
NumericSeries HH1;
NumericSeries LL1;
NumericSeries TC1;
NumericSeries Range1(0);
NumericSeries BuyPosition_MAIN;
NumericSeries SellPosition_MAIN;
Begin
//If(Date>20210420) Return;
If(MainMonth==0) Symbol1=Symbol;
If(MainMonth==1) Symbol1=RelativeSymbol;
If(MainMonth<>0 && MainMonth<>1) Symbol1=SymbolType+Text(MainMonth);
If(n==0) k1=IntPart(Rand(30,100));
If(n<>0) k1=n;
// 一、初始化和公式计算
If(!CallAuctionFilter()) Return;
BidAskSpread=BAP*MinMove*PriceScale;
n_net=Close[1]/Close[k1+1];
HH1=Data1.HighD(1);
LL1=Data1.LowD(1);
TC1=Data1.CloseD(1);
Range1=Max((HH1-TC1),(TC1-LL1));
BuyPosition_MAIN = Data1.OpenD(0);
SellPosition_MAIN = Data1.OpenD(0);
// 五、绘图
If(n_net>1) PlotNumeric(BuyPosition_MAIN,BuyPosition_MAIN,0,Green,0);
If(n_net<1) PlotNumeric(BuyPosition_MAIN,BuyPosition_MAIN,0,red,0);
If(n_net<1) PlotNumeric(SellPosition_MAIN,SellPosition_MAIN,0,Green,0);
If(n_net>1) PlotNumeric(SellPosition_MAIN,SellPosition_MAIN,0,red,0);
Commentary(net=+Text(n_net));
End
OpenD这个函数目前在旗舰版里面只能定位到第一个图层的数值,建议使用TBQ实现