- 精华
- 0
- 在线时间
- 21 小时
- UID
- 232261
- 积分
- 25
- 帖子
- 18
- 阅读权限
- 10
- 注册时间
- 2016-4-15
- 最后登录
- 2016-11-10
- 精华
- 0
- UID
- 232261
- 积分
- 25
- 帖子
- 18
- 主题
- 7
- 阅读权限
- 10
- 注册时间
- 2016-4-15
- 最后登录
- 2016-11-10
|
Begin
//C
HBarLength1 = SwingHighBar(1,C,N,SL);
LBarLength1 = SwingLowBar(1,C,N,SL);
/*
HBarLength2 = SwingHighBar(2,C,N,SL);
LBarLength1 = SwingLowBar(2,C,N,SL);
EXHigh1 = SwingHigh(1,C,N,SL);
EXHigh2 = SwingHigh(2,C,N,SL);
EXLow1 = SwingLow(1,C,N,SL);
EXLow2 = SwingLow(2,C,N,SL);
*/
/*/RSI.....................................................
If(CurrentBar <= 7 - 1)
{
NetChgAvg1 = ( Close - Close[7] ) /7 ;
TotChgAvg1 = Average( Abs( Close - Close[1] ), 7 ) ;
}Else
{
SF1 = 1/7;
Change1 = Close - Close[1] ;
NetChgAvg1 = NetChgAvg1[1] + SF1 * ( Change1 - NetChgAvg1[1] ) ;
TotChgAvg1 = TotChgAvg1[1] + SF1 * ( Abs( Change1 ) - TotChgAvg1[1] ) ;
}
If( TotChgAvg1 <> 0 )
{
ChgRatio1 = NetChgAvg1 / TotChgAvg1;
}else
{
ChgRatio1 = 0 ;
}
If(CurrentBar <= 14 - 1)
{
NetChgAvg2 = ( Close - Close[14] ) /14 ;
TotChgAvg2 = Average( Abs( Close - Close[1] ), 14 ) ;
}Else
{
SF2 = 1/14;
Change2 = Close - Close[1] ;
NetChgAvg2 = NetChgAvg2[1] + SF2 * ( Change2 - NetChgAvg2[1] ) ;
TotChgAvg2 = TotChgAvg2[1] + SF2 * ( Abs( Change2 ) - TotChgAvg2[1] ) ;
}
If( TotChgAvg2 <> 0 )
{
ChgRatio2 = NetChgAvg2 / TotChgAvg2;
}else
{
ChgRatio2 = 0 ;
}
RSI1 = 50 * ( ChgRatio1 + 1 );
RSI2 = 50 * ( ChgRatio2 + 1 );
*/
//MA.....................................................
MA1 = AverageFC(Close,2);
MA2 = AverageFC(Close,7);
//MACD...................................................
MACDValue = XAverage( Close, 12 ) - XAverage( Close, 26 ) ;
AvgMACD = XAverage(MACDValue,9);
MACDDiff = MACDValue - AvgMACD;
/*/CCI.......................................................
TmpValue = High + Low + Close;
Mean = AverageFC( TmpValue, 14 ) ;
AvgDev = 0 ;
for Counter = 0 to 14 - 1
{
AvgDev = AvgDev + Abs( TmpValue[Counter] - Mean ) ;
}
AvgDev = AvgDev / 14 ;
if( AvgDev == 0)
CCIValue = 0;
Else
CCIValue = ( TmpValue - Mean ) / ( 0.015 * AvgDev ) ;
CCIAvg = AverageFC(CCIValue, 9 );
*/
//主程序
//多
if(MarketPosition<>1)
{
MABNthCon = NthCon(CrossOver(MA1,MA2),1);
MACDBNthCon = NthCon(MACDDiff<0&&MACDDiff[1]>MACDDiff[2]&&MACDDiff[2]>MACDDiff[3],1);
//MACDNthCon = NthCon(CrossOver(MACDValue,AvgMACD),1);
If(LBarLength1 <= Length)
{
SumBCon = SumBCon + 1;
If(MABNthCon <= Length)
{
SumBCon = SumBCon + 1;
If(MACDBNthCon <= Length)
{
SumBCon = SumBCon + 1;
}
}
}
if(SumBCon>=Num)
{
BuyToCover(0,open);
Buy(Lots,open);
SumBCon = 0;
}
}
//空
if(MarketPosition<>-1)
{
MASNthCon = NthCon(CrossUnder(MA1,MA2),1);
MACDSNthCon = NthCon(MACDDiff>0&&MACDDiff[1]<MACDDiff[2]&&MACDDiff[2]<MACDDiff[3],1);
//MACDNthCon = NthCon(CrossUnder(MACDValue,AvgMACD),1);
If(HBarLength1 <= Length)
{
SumSCon = SumSCon + 1;
If(MASNthCon <= Length)
{
SumSCon = SumSCon + 1;
If(MACDSNthCon <= Length)
{
SumSCon = SumSCon + 1;
}
}
}
if(SumSCon>=Num)
{
Sell(0,open);
SellShort(Lots,open);
SumSCon = 0;
}
}
if (MarketPosition==1 and low<AvgEntryPrice*(1-Rate*0.01))
{
Sell(0,Min(open,AvgEntryPrice*(1-Rate*0.01)));
}
if (MarketPosition==-1 and high>avgentryprice*(1+Rate*0.01))
{
BuyToCover(0,Max(open,avgentryprice*(1+Rate*0.01)));
}
If((Date[-1]!=InvalidInteger && Date!=Date[-1])||(Date[-1]==InvalidInteger && Date < CurrentDate))
{
Sell(0,Close);
BuyToCover(0,Close);
}Else If(Date==CurrentDate && Time==0.1510 && CurrentTime>=0.1513)
{
Sell(0,Close);
BuyToCover(0,Close);
}
End |
|