- 精华
- 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
|
本帖最后由 qsb588986 于 2019-7-7 21:48 编辑
又一个新的。吃到肉。
Params
Numeric offset(6) ;
Vars
Numeric totalequity;
Numeric turtleunits;
NumericSeries count;
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(1,1);
SetGlobalVar(2,1);
SetGlobalVar(0,1);
SetGlobalVar(4,1);
SetGlobalVar(20,1);
SetGlobalVar(21,1);
SetGlobalVar(102,0);
SetGlobalVar(103,0);
}
Else If(Time!=0.0900 && Time!=0.2100)
SetGlobalVar(13,1);
if(GetGlobalVar(14)!=8 && BarStatus==2 )
{
SetGlobalVar(14,8);
SetGlobalVar(1,1);
SetGlobalVar(2,1);
SetGlobalVar(0,1);
SetGlobalVar(4,1);
SetGlobalVar(20,1);
SetGlobalVar(21,1);
SetGlobalVar(100,0);
SetGlobalVar(101,0);
SetGlobalVar(102,0);
SetGlobalVar(103,0);
}
if(GetGlobalVar(21)==1 && BarStatus==2)
{
SetGlobalVar(33,Close);
SetGlobalVar(34,Close);
SetGlobalVar(21,2);
}
if(Close>GetGlobalVar(33) && Close>GetGlobalVar(34) && GetGlobalVar(100)==0)
{
SetGlobalVar(33,Close);
SetGlobalVar(34,High);
}
else if(Close>GetGlobalVar(33) && Close<=GetGlobalVar(34))
{
SetGlobalVar(33,Close);
SetGlobalVar(34,High);
}
else if(Close<GetGlobalVar(33))
SetGlobalVar(33,Close);
if(Close<GetGlobalVar(35) && Close<GetGlobalVar(36) && GetGlobalVar(101)==0)
{
SetGlobalVar(35,Close);
SetGlobalVar(36,Low);
}
else if(Close<GetGlobalVar(35) && Close>=GetGlobalVar(36))
{
SetGlobalVar(35,Close);
SetGlobalVar(36,Low);
}
else if(Close>GetGlobalVar(35))
SetGlobalVar(35,Close);
if(Time+0.000002>CurrentTime && GetGlobalVar(9)!=9)
{
SetGlobalVar(100,0);
SetGlobalVar(102,0);
SetGlobalVar(9,9);
}
Else if(CurrentTime>time+0.000002)
SetGlobalVar(9,1);
if(Close>GetGlobalVar(34))
SetGlobalVar(100,0);
else if(Close==High)
{
SetGlobalVar(100,GetGlobalVar(100)+Q_AskVol);
if(GetGlobalVar(100)>=GetGlobalVar(102))
SetGlobalVar(102,GetGlobalVar(100));
}
if(Time+0.000002>CurrentTime && GetGlobalVar(10)!=10)
{
SetGlobalVar(101,0);
SetGlobalVar(103,0);
SetGlobalVar(10,10);
}
Else if(CurrentTime>time+0.000002)
SetGlobalVar(10,1);
if(Close<GetGlobalVar(36))
SetGlobalVar(101,0);
else if(Close==Low)
{
SetGlobalVar(101,GetGlobalVar(101)+Q_AskVol);
if(GetGlobalVar(101)>=GetGlobalVar(103))
SetGlobalVar(103,GetGlobalVar(101));
}
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(102)>=2* GetGlobalVar(103) && GetGlobalVar(102)>12000)
{
SetGlobalVar(91,1);
SetGlobalVar(92,2);
setglobalvar(109,high);
}
If(GetGlobalVar(103)>=2*GetGlobalVar(102) && GetGlobalVar(103)>12000)
{
SetGlobalVar(92,1);
SetGlobalVar(91,2);
setglobalvar(110,low);
}
if(currenttime>0.090 && currenttime<0.1458 or currenttime>0.2100 && currenttime<0.2258)
{
if(A_BuyPosition==0 && A_SellPosition==0 && BarStatus==2 && vol>0)
{
if(GetGlobalVar(0)==1 && GetGlobalVar(91)==1 && Close>GetGlobalVar(109))
{
A_SendOrder(Enum_Buy,Enum_Entry,TurtleUnits,Q_AskPrice+offset*MinMove*PriceScale);
SetGlobalVar(0,2);
SetGlobalVar(4,2);
SetGlobalVar(2,1);
}
Else if(GetGlobalVar(4)==1 && GetGlobalVar(92)==1 && Close<GetGlobalVar(110))
{
A_SendOrder(Enum_Sell,Enum_Entry,TurtleUnits,Q_BidPrice-offset*MinMove*PriceScale);
SetGlobalVar(4,2);
SetGlobalVar(0,2);
SetGlobalVar(1,1);
}
}
if(A_SellPosition>0 && BarStatus==2 && vol>0)
{
if(GetGlobalVar(1)==1 && GetGlobalVar(91)==1 && Close>GetGlobalVar(109))
{
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);
}
}
if(A_BuyPosition>0 && BarStatus==2 && vol>0)
{
if(GetGlobalVar(2)==1 && GetGlobalVar(92)==1 && Close<GetGlobalVar(110))
{
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);
}
}
}
if(A_GetOpenOrderCount==0)
SetGlobalVar(20,0);
Else
SetGlobalVar(20,1);
if(currenttime>0.1458 && currenttime<0.1500 && A_BuyPosition>0 or currenttime>0.1458 && currenttime<0.1500 && A_SellPosition>0 or currenttime>0.2258 && currenttime<0.2300 && A_BuyPosition>0 or currenttime>0.2258 && time<0.2300 && A_SellPosition>0)
{
if(A_TodayBuyPosition>0)
{
A_SendOrder(Enum_Sell,Enum_ExitToday,A_TodayBuyPosition,Q_BidPrice-offset*MinMove*PriceScale);
SetGlobalVar(20,1);
}
Else
{
A_SendOrder(Enum_Sell,Enum_Exit,A_BuyPosition,Q_BidPrice-offset*MinMove*PriceScale);
SetGlobalVar(20,1);
}
if(a_todaysellposition>0)
{
A_SendOrder(Enum_Buy,Enum_ExitToday,A_TodaySellPosition,Q_AskPrice+offset*MinMove*PriceScale);
SetGlobalVar(20,1);
}
Else
{
A_SendOrder(Enum_Buy,Enum_Exit,A_SellPosition,Q_AskPrice+offset*MinMove*PriceScale);
SetGlobalVar(20,1);
}
}
End
|
|