- 精华
- 0
- 在线时间
- 525 小时
- UID
- 213396
- 积分
- 187
- 帖子
- 140
- 阅读权限
- 40
- 注册时间
- 2015-7-10
- 最后登录
- 2023-4-14
- 精华
- 0
- UID
- 213396
- 积分
- 187
- 帖子
- 140
- 主题
- 26
- 阅读权限
- 40
- 注册时间
- 2015-7-10
- 最后登录
- 2023-4-14
|
又一个强势策略
Params
Numeric offset(6);
Vars
Numeric totalequity;
Numeric turtleunits;
NumericSeries dd;
NumericSeries count;
NumericSeries hh;
NumericSeries ll;
NumericSeries hhh;
NumericSeries lll;
Numeric ii;
Numeric jj;
Numeric qq;
Numeric n;
Numeric m;
Numeric k;
Numeric kk;
Numeric i;
Numeric j;
Numeric s;
Numeric f;
Numeric tin;
Numeric tinn;
Numeric tinnn;
Numeric ff;
Numeric at;
Numeric tt;
Numeric zz;
Numeric yj;
Numeric yjj;
Numeric yjjj;
Numeric yjjjj;
NumericSeries junjia;
NumericSeries aa;
Numeric bu;
NumericSeries buu;
NumericSeries buuu;
NumericSeries buuuu;
Numeric pu;
NumericSeries puu;
NumericSeries puuu;
NumericSeries puuuu;
Begin
TotalEquity = A_FreeMargin + A_TotalMargin; //账户最新资产 = 按当前Bar开盘价计算的可用资金 + 持仓保证金
TurtleUnits=(TotalEquity/(MarginRatio*ContractUnit()*BigPointValue()*Close))*1/5;
TurtleUnits = IntPart(TurtleUnits); // 对小数取整
if(GetGlobalVar(13)!=8 && BarStatus==2 && time==0.0900 || GetGlobalVar(13)!=8 && BarStatus==2 && time==0.2100)
{
SetGlobalVar(13,8);
SetGlobalVar(1,1);
SetGlobalVar(2,1);
SetGlobalVar(0,1);
SetGlobalVar(4,1);
SetGlobalVar(20,0);
SetGlobalVar(21,0);
SetGlobalVar(22,1);
SetGlobalVar(23,1);
SetGlobalVar(30,0);
SetGlobalVar(31,0);
SetGlobalVar(32,0);
SetGlobalVar(40,0);
SetGlobalVar(41,0);
SetGlobalVar(60,1);
SetGlobalVar(61,1);
SetGlobalVar(62,1);
SetGlobalVar(63,1);
SetGlobalVar(70,0);
SetGlobalVar(71,0);
SetGlobalVar(72,0);
SetGlobalVar(73,0);
SetGlobalVar(74,0);
SetGlobalVar(75,0);
SetGlobalVar(76,0);
SetGlobalVar(77,0);
SetGlobalVar(80,0);
SetGlobalVar(81,0);
SetGlobalVar(82,0);
SetGlobalVar(83,0);
SetGlobalVar(84,0);
SetGlobalVar(85,0);
SetGlobalVar(92,999999);
SetGlobalVar(93,0);
SetGlobalVar(100,0);
}
Else If(Time!=0.0900 && Time!=0.2100)
SetGlobalVar(13,1);
if(GetGlobalVar(14)!=8 && BarStatus==2 )
{
SetGlobalVar(1,1);
SetGlobalVar(2,1);
SetGlobalVar(0,1);
SetGlobalVar(4,1);
SetGlobalVar(20,0);
SetGlobalVar(21,0);
SetGlobalVar(22,1);
SetGlobalVar(23,1);
SetGlobalVar(30,0);
SetGlobalVar(31,0);
SetGlobalVar(32,0);
SetGlobalVar(40,0);
SetGlobalVar(41,0);
SetGlobalVar(60,1);
SetGlobalVar(61,1);
SetGlobalVar(62,1);
SetGlobalVar(63,1);
SetGlobalVar(70,0);
SetGlobalVar(71,0);
SetGlobalVar(72,0);
SetGlobalVar(73,0);
SetGlobalVar(74,0);
SetGlobalVar(75,0);
SetGlobalVar(76,0);
SetGlobalVar(77,0);
SetGlobalVar(80,0);
SetGlobalVar(81,0);
SetGlobalVar(82,0);
SetGlobalVar(83,0);
SetGlobalVar(84,0);
SetGlobalVar(85,0);
SetGlobalVar(92,999999);
SetGlobalVar(93,0);
SetGlobalVar(100,0);
SetGlobalVar(14,8);
}
if(time!=time[1]+0.0001 && time==0.0900 or time!=time[1]+0.0001 && time==0.2100)
count=1;
Else
count=count+1;
if(GetGlobalVar(22)==1 && Close!=Open && BarStatus==2 && Vol>0 or GetGlobalVar(22)==1 && Close==Open && BarStatus==2 && Vol>0)
{
SetGlobalVar(30,Close);
SetGlobalVar(22,2);
}
if(GetGlobalVar(23)==1 && BarStatus==2)
{
SetGlobalVar(31,Close);
SetGlobalVar(32,Close);
SetGlobalVar(23,2);
}
if(Close>GetGlobalVar(31))
SetGlobalVar(60,1);
if(Close<GetGlobalVar(31))
SetGlobalVar(61,1);
if(Close<GetGlobalVar(32))
SetGlobalVar(62,1);
if(Close>GetGlobalVar(32))
SetGlobalVar(63,1);
if(Close>GetGlobalVar(31) && BarStatus==2 && GetGlobalVar(60)==1)
{
SetGlobalVar(76,GetGlobalVar(40));
SetGlobalVar(40,GetGlobalVar(40)+1);
SetGlobalVar(31,Close);
SetGlobalVar(60,2);
}
if(Close<GetGlobalVar(31) && BarStatus==2 && GetGlobalVar(61)==1)
{
SetGlobalVar(76,GetGlobalVar(40));
SetGlobalVar(40,GetGlobalVar(40)-1);
SetGlobalVar(31,Close);
SetGlobalVar(61,2);
}
if(BarStatus==2 && GetGlobalVar(80)!=CurrentBar && GetGlobalVar(70)==0)
SetGlobalVar(80,CurrentBar);
if(BarStatus==2 && GetGlobalVar(81)!=CurrentBar && GetGlobalVar(71)==0)
SetGlobalVar(81,CurrentBar);
if(GetGlobalVar(80)!=CurrentBar)
SetGlobalVar(70,0);
Else if(GetGlobalVar(76)<GetGlobalVar(40))
SetGlobalVar(70,GetGlobalVar(70)+Q_LastVol);
if(GetGlobalVar(81)!=CurrentBar)
SetGlobalVar(71,0);
Else if(GetGlobalVar(76)>GetGlobalVar(40))
SetGlobalVar(71,GetGlobalVar(71)-Q_LastVol);
if(BarStatus==2 && CurrentBar>=GetGlobalVar(84)+2 && GetGlobalVar(74)==0)
SetGlobalVar(84,CurrentBar);
if(CurrentBar>=GetGlobalVar(84)+2)
SetGlobalVar(74,0);
Else if(GetGlobalVar(76)<GetGlobalVar(40) && Close==High)
SetGlobalVar(74,GetGlobalVar(74)+Q_LastVol);
if(Close<GetGlobalVar(32) && BarStatus==2 && GetGlobalVar(62)==1)
{
SetGlobalVar(77,GetGlobalVar(41));
SetGlobalVar(41,GetGlobalVar(41)+1);
SetGlobalVar(32,Close);
SetGlobalVar(62,2);
}
if(Close>GetGlobalVar(32) && BarStatus==2 && GetGlobalVar(63)==1)
{
SetGlobalVar(77,GetGlobalVar(41));
SetGlobalVar(41,GetGlobalVar(41)-1);
SetGlobalVar(32,Close);
SetGlobalVar(63,2);
}
if(BarStatus==2 && GetGlobalVar(82)!=CurrentBar && GetGlobalVar(72)==0)
SetGlobalVar(82,CurrentBar);
if(BarStatus==2 && GetGlobalVar(83)!=CurrentBar && GetGlobalVar(73)==0)
SetGlobalVar(83,CurrentBar);
if(GetGlobalVar(82)!=CurrentBar)
SetGlobalVar(72,0);
Else if(GetGlobalVar(77)<GetGlobalVar(41))
SetGlobalVar(72,GetGlobalVar(72)+Q_LastVol);
if(GetGlobalVar(83)!=CurrentBar)
SetGlobalVar(73,0);
Else if(GetGlobalVar(77)>GetGlobalVar(41))
SetGlobalVar(73,GetGlobalVar(73)-Q_LastVol);
if(BarStatus==2 && CurrentBar>=GetGlobalVar(85)+2 && GetGlobalVar(75)==0)
SetGlobalVar(85,CurrentBar);
if(CurrentBar>=GetGlobalVar(85)+2)
SetGlobalVar(75,0);
Else if(GetGlobalVar(77)<GetGlobalVar(41) && Close==Low)
SetGlobalVar(75,GetGlobalVar(75)+Q_LastVol);
hhh=GetGlobalVar(74);
lll=GetGlobalVar(75);
if(GetGlobalVar(74)>10000 && GetGlobalVar(74)>GetGlobalVar(75))
SetGlobalVar(201,CurrentBar);
if(CurrentBar>GetGlobalVar(201) && hhh[1]>10000 && hhh[1]>lll[1])
{
if(High-Low<=5)
{
SetGlobalVar(92,High[1]);
SetGlobalVar(93,Low[1]);
}
Else
{
SetGlobalVar(92,High[1]);
SetGlobalVar(93,High[1]-5);
}
}
if(GetGlobalVar(75)>10000 && GetGlobalVar(75)>GetGlobalVar(74))
SetGlobalVar(200,CurrentBar);
if(CurrentBar>GetGlobalVar(200) && lll[1]>10000 && lll[1]>hhh[1])
{
if(High-Low<=5)
{
SetGlobalVar(92,High[1]);
SetGlobalVar(93,Low[1]);
}
Else
{
SetGlobalVar(92,Low[1]+5);
SetGlobalVar(93,Low[1]);
}
}
Junjia=(High+Low)/2;
ii=count;
jj=count;
qq=count;
For j=0 to jj
{
For i=0 to ii
{
If(abs(junjia[i]-junjia[j])<=1)
{
n=n+1;
yj=yj+junjia[i];
tin=i;
bu=High[i];
if(bu>buu)
buu=bu;
pu=Low[i];
puu=99999;
if(pu<puu)
puu=pu;
}
if(i==qq)
{
k=n;
n=0;
yjj=yj;
yj=0;
yjjj=yjj/k;
buuu=buu;
buu=0;
puuu=puu;
puu=0;
}
}
if(k>kk)
{
kk=k;
yjjjj=yjjj;
tinn=tin;
zz=j;
buuuu=buuu;
puuuu=puuu;
}
}
for s=0 to tinn
{
if(junjia[s]>yjjjj)
f=f+hhh[s];
if(junjia[s]<yjjjj)
at=at+lll[s];
}
if(f>ff)
ff=f;
if(at>tt)
tt=at;
if(kk>=8)
SetGlobalVar(100,100);
Else
SetGlobalVar(100,1000);
hh=Highest(high,tinn);
ll=Lowest(low,tinn);
if(currenttime>0.0900 && currenttime<0.1458)
{
if(A_BuyPosition==0 && A_SellPosition==0 && BarStatus==2 && vol>0)
{
if(GetGlobalVar(0)==1 && ff>tt && ff>10000)
{
A_SendOrder(Enum_Buy,Enum_Entry,TurtleUnits,Q_AskPrice+offset*MinMove*PriceScale);
SetGlobalVar(0,2);
SetGlobalVar(4,2);
SetGlobalVar(2,1);
SetGlobalVar(101,ff);
SetGlobalVar(102,tt);
}
Else if(GetGlobalVar(4)==1 && ff<tt && tt>10000)
{
A_SendOrder(Enum_Sell,Enum_Entry,TurtleUnits,Q_BidPrice-offset*MinMove*PriceScale);
SetGlobalVar(4,2);
SetGlobalVar(0,2);
SetGlobalVar(1,1);
SetGlobalVar(101,ff);
SetGlobalVar(102,tt);
}
}
if(A_SellPosition>0 && BarStatus==2 && vol>0)
{
if(GetGlobalVar(1)==1 && ff>tt && ff>10000 && Close>yjjjj && Close>buuuu)
{
if(a_todaysellposition>0)
A_SendOrder(Enum_Buy,Enum_ExitToday,A_TodaySellPosition,Q_AskPrice+offset*MinMove*PriceScale);
Else
A_SendOrder(Enum_Buy,Enum_Exit,A_SellPosition,Q_AskPrice+offset*MinMove*PriceScale);
A_SendOrder(Enum_Buy,Enum_Entry,TurtleUnits,Q_AskPrice+offset*MinMove*PriceScale);
SetGlobalVar(1,2);
SetGlobalVar(2,1);
SetGlobalVar(101,ff);
SetGlobalVar(102,tt);
SetGlobalVar(103,hh[1]);
SetGlobalVar(104,tinn);
}
else if(GetGlobalVar(1)==1 && A_TotalAvgPrice-Close>=30 && A_TotalAvgPrice!=InvalidNumeric)
{
if(a_todaysellposition>0)
A_SendOrder(Enum_Buy,Enum_ExitToday,A_TodaySellPosition,Q_AskPrice+offset*MinMove*PriceScale);
Else
A_SendOrder(Enum_Buy,Enum_Exit,A_SellPosition,Q_AskPrice+offset*MinMove*PriceScale);
SetGlobalVar(1,3);
SetGlobalVar(2,3);
SetGlobalVar(4,3);
SetGlobalVar(0,3);
}
}
if(A_BuyPosition>0 && BarStatus==2 && vol>0)
{
if(GetGlobalVar(2)==1 && ff<tt && tt>10000 && Close<yjjjj && Close<puuuu)
{
if(A_TodayBuyPosition>0)
A_SendOrder(Enum_Sell,Enum_ExitToday,A_TodayBuyPosition,Q_BidPrice-offset*MinMove*PriceScale);
Else
A_SendOrder(Enum_Sell,Enum_Exit,A_BuyPosition,Q_BidPrice-offset*MinMove*PriceScale);
A_SendOrder(Enum_Sell,Enum_Entry,TurtleUnits,Q_BidPrice-offset*MinMove*PriceScale);
SetGlobalVar(2,2);
SetGlobalVar(1,1);
SetGlobalVar(101,ff);
SetGlobalVar(102,tt);
SetGlobalVar(103,ll[1]);
SetGlobalVar(104,tinn);
}
else if(GetGlobalVar(2)==1 && Close-A_TotalAvgPrice>=30)
{
if(A_TodayBuyPosition>0)
A_SendOrder(Enum_Sell,Enum_ExitToday,A_TodayBuyPosition,Q_BidPrice-offset*MinMove*PriceScale);
Else
A_SendOrder(Enum_Sell,Enum_Exit,A_BuyPosition,Q_BidPrice-offset*MinMove*PriceScale);
SetGlobalVar(2,3);
SetGlobalVar(1,3);
SetGlobalVar(4,3);
SetGlobalVar(0,3);
}
}
}
|
|