Params
Numeric lot(0);
Numeric FastLen(28); // 分钟线
Numeric SlowLen(30); //分钟
Numeric NomLen(20); //日线
Numeric NomL(10); //10日高低点
Numeric Ch(5); //前多少根日线
Numeric Length(100); //多少根分钟线
Numeric ReBar(200);
Numeric dh(50);
Vars
Numeric MinPoint(0); // 声明变量MinPoint,一个最小变动单位,也就是一跳。
Numeric MyEntryPrice(0); // 声明变量MyEntryPrice,英文好的,看英文意思都知道的,开仓价格,本例是开仓均价,也可根据需要设置为某次入场的价格。
Series<Numeric> FastMA; // 快速均线
Series<Numeric> SlowMA; // 慢速均线
Numeric NomMA;
Series<Numeric> CCC;
Series<Numeric> ReEntryCount; // 跟踪止损后记录BAR序号
Numeric MyExitPrice; // 声明变量MyExitPrice,平仓价格。
Series<Numeric> ATR;
Series<Numeric> StopPri; //跟踪止损价
Series<Numeric> StopLPri;
Series<Numeric> stopwin;
Series<Numeric> HighValue; //多头进场之后的盈利峰值价
Series<Numeric> AF; //跟踪Acceleration
Series<Numeric> HighestAfterEntry; //声明序列变量HighestAfterEntry,开仓后出现的最高价。
Series<Numeric> LowestAfterEntry; //声明序列变量LowestAfterEntry,开仓后出现的最低价。
Numeric StopPrice(0);
Series<Bool> Condition1(False);
series<Bool> Yun(False);
Numeric StopATR;
Numeric HH;
Numeric HHH; // 最近N根BAR的高点
Numeric LL;
Numeric PP; // 最近N根BAR的低
Numeric DDH;
Numeric Bigbar;
Series<Numeric> PPP;
Series<Numeric> LD;
Series<Numeric> HD;
Series<Bool> Yang; //锤子线阳
Series<Bool> yin;// 吊头线阴
// Series<Bool> Condition1; // 条件1
// Series<Bool> Condition2; // 条件2
Numeric MyRange; //K线幅度
Events
OnBar(ArrayRef<Integer> indexs)
{
If(MarketPosition ==0 And Time >= 0.0900 And Time <0.0901) // 开仓/
{ If(Open>HD)
SellShort(0,open);
If(Open<LD)
Buy(0,OPEN);
}
}
OnBarClose(ArrayRef<Integer> indexs)
{ //
If(MarketPosition==1 AND VOL>0 And time >=0.0900 and time <=0.0901) // 有多仓的情况下。
{Sell(0,Close);
}
If(MarketPosition==-1 AND VOL >0 And time >=0.0900 and time <=0.0901)
{BuyToCover(0,Close);}
}
感觉逻辑和顺序上都没问题呀
为什么不应该先发平仓再发开仓?
先平仓节省保证金不好吗?
从来都是听说反手最好先平仓,再开仓,怎么你这就要先开仓了?
很难理解啊
但事实上还是先发了平仓单,然后发的进场单,最后导致没平掉,老师帮忙看看哪里会有问题?
你的问题我记得之前不是说过了,你这个信号闪烁了,策略逻辑有问题。具体哪里的代码有问题要写日志调试排查的。
零基础课程里有用输出语句做日志排查的教程。如果暂时学不会工具,也可以看一下收费编写服务进行修正