- 精华
- 0
- 在线时间
- 174 小时
- UID
- 86748
- 积分
- 141
- 帖子
- 30
- 阅读权限
- 40
- 注册时间
- 2011-12-15
- 最后登录
- 2019-4-1
- 精华
- 0
- UID
- 86748
- 积分
- 141
- 帖子
- 30
- 主题
- 9
- 阅读权限
- 40
- 注册时间
- 2011-12-15
- 最后登录
- 2019-4-1
|
//------------------------------------------------------------------------
// 简称: SAR_system
// 名称:
// 类别: 公式应用
// 类型: 用户应用
// 输出: 穿堂风
//------------------------------------------------------------------------
Params
Numeric AfStep(0.02);
Numeric AfLimit(0.2) ;
Numeric malen(120);
Numeric stopLoss(1);
Numeric BuyLots(1);
Numeric offset(0);
Vars
Numeric oParCl( 0 );
Numeric oParOp( 0 );
Numeric oPosition( 0 );
Numeric oTransition( 0 );
NumericSeries oParOp_s;
Numeric oParOp_p;
Numeric i_offset;
Numeric ma;
Bool bUpline;
string strkey;
string strValue;
Numeric i_stopLoss;
Begin
ma = Average(Open,malen);
bUpline = Open>= ma;
ParabolicSAR( AfStep, AfLimit, oParCl, oParOp, oPosition, oTransition ) ;
oParOp_s = oParOp;
oParOp_p = oParOp_s[1];
i_offset = offset*MinMove*PriceScale;
i_stopLoss = stopLoss*(OpenD(0)/100);
Commentary("oParOp:"+Text(oParOp));
Commentary("oTransition:"+Text(oTransition));
Commentary("oPosition:"+Text(oPosition));
If(CurrentBar>malen)
{
PlotNumeric("oParCl",oParCl);
If(malen != 0)
{
PlotNumeric("ma",ma);
}
If(MarketPosition == 0)
{
If(malen == 0)
{
bUpline = True;
}
If(oTransition == 1 and bUpline)
{
Buy(BuyLots,Max(Open,oParOp_p)+i_offset);
Return;
}
If(malen == 0)
{
bUpline = False;
}
If(oTransition == -1 and bUpline==False)
{
SellShort(BuyLots,Min(Open,oParOp_p)-i_offset);
Return;
}
}
If(MarketPosition == 1)
{
If(malen == 0)
{
bUpline = False;
}
If(LastEntryPrice-Low>=i_stopLoss)
{
Sell(BuyLots,Min(Open,LastEntryPrice-i_stopLoss)-i_offset);
Return;
}
If(oPosition == -1)
{
If(oTransition == -1 and bUpline==False)
{
SellShort(BuyLots,Min(Open,oParOp_p)-i_offset);
}
Else
{
Sell(BuyLots,Min(Open,oParOp_p)-i_offset);
}
}
}
If(MarketPosition == -1)
{
If(malen == 0)
{
bUpline = True;
}
If(High-LastEntryPrice>=i_stopLoss)
{
BuyToCover(BuyLots,Max(Open,LastEntryPrice+i_stopLoss)+i_offset);
Return;
}
If(oPosition == 1)
{
If(oTransition == 1 and bUpline)
{
Buy(BuyLots,Max(Open,oParOp_p)+i_offset);
}
Else
{
BuyToCover(BuyLots,Max(Open,oParOp_p)+i_offset);
}
}
}
}
End
//------------------------------------------------------------------------
// 编译版本 GS2010.12.08
// 用户版本 2011/09/05 12:21
// 版权所有 穿堂风
// 更改声明 TradeBlazer Software保留对TradeBlazer平台
// 每一版本的TrabeBlazer公式修改和重写的权利
//------------------------------------------------------------------------
看了这个指令,在这个原有基础上,只做判断出场规则,进场规则不变可以吗? |
|