- 精华
- 0
- 在线时间
- 2542 小时
- UID
- 73474
- 积分
- 1249
- 帖子
- 695
- 阅读权限
- 60
- 注册时间
- 2011-10-22
- 最后登录
- 2015-11-6
- 精华
- 0
- UID
- 73474
- 积分
- 1249
- 帖子
- 695
- 主题
- 30
- 阅读权限
- 60
- 注册时间
- 2011-10-22
- 最后登录
- 2015-11-6
|
请高手指点,加减仓模型赋值部分怎么样编写?FirstEntryCon = ...
怎么样才能测试通过啊???
加仓减仓
本例仅以做多为例,做空类似。模板以首次开仓2手后每赢利30跳加仓一次,每次1手,最多加仓3次;开仓后每亏损30跳减仓1手。也可以转换为开仓价格的百分比值,或波动率的百分比等其任何设置的变量进行处理。
Vars
Numeric MinPoint; //一个最小变动单位,也就是一跳
NumericSeries firstPrice; //第一次开仓价格
NumericSeries LastPrice; //最后一次开仓价格
Numeric AddSet(30); //加仓设置
Numeric SubSet(30); //减仓设置
Bool FirstEntryCon; //首次开仓条件
Begin
FirstEntryCon = ...
MinPoint = MinMove*PriceScale;
//多头开仓部分
If(MarketPosition==0)
{
If(FirstEntryCon)
{
firstPrice = Open;
LastPrice = firstPrice;
Buy(2,firstPrice);
}
}else If(MarketPosition==1) //有多仓的情况
{
While(CurrentEntries < 4 && High >= LastPrice + AddSet*MinPoint) //加仓
{
LastPrice = LastPrice + AddSet*MinPoint;
if(Open > LastPrice) LastPrice = Open;
Buy(1,LastPrice);
}
While(CurrentEntries > 0 && Low <= firstPrice - SubSet*MinPoint) //减仓
{
firstPrice = firstPrice - SubSet*MinPoint;
if(Open < firstPrice) firstPrice = Open;
Sell(1,firstPrice);
}
}
//空头开仓部分
If(MarketPosition==0)
{
If(FirstEntryCon)
{
firstPrice = Open;
LastPrice = firstPrice;
Buy(2,firstPrice);
}
}else If(MarketPosition==-1) //有空仓的情况
{
While(CurrentEntries < 4 && High <= LastPrice - AddSet*MinPoint) //加仓
{
LastPrice = LastPrice - AddSet*MinPoint;
if(Open < LastPrice) LastPrice = Open;
Buy(1,LastPrice);
}
While(CurrentEntries > 0 && Low >= firstPrice + SubSet*MinPoint) //减仓
{
firstPrice = firstPrice + SubSet*MinPoint;
if(Open > firstPrice) firstPrice = Open;
Sell(1,firstPrice);
}
}
|
|