[求助]請老師幫忙翻譯一下
作者:文華財經 來源:cxh99.com 發布時間:2018年01月25日
-
咨詢內容:
?請老師幫忙翻譯2個開拓者TB的策略:
策略一:
ParamsNumeric shares(1);Numeric Params3(2);Numeric Params4(3);Numeric Params2(0.70);Numeric Params1(1.30);Numeric Params5(9.15);VarsNumeric i(0);?Numeric n(0);Numeric var1(0);Numeric var2(0);Numeric var3(0);Numeric var4(0);Numeric var5(0);Numeric var6(0);NumericSeries var7(0);NumericSeries var8(0);NumericSeries var9(0);NumericSeries var10(0);Numeric var11(0);Numeric var12(0);Numeric var13(0);Numeric var14(0);
Begin
If(CurrentBar == 0 || Date != Date[1])
{
var7 = 1;
var8 = High;
var9 = Low;
}Else
{
var7 = var7 + 1;
If(High > var8)
var8 = High;
If(Low < var9)
var9 = Low;
}
var10 = Close;
For i = 1 to Params3
{
If(i == 1)
{
n = var7;
var11 = var8[n];
var12 = var9[n];
var13 = var10[n];
var14 = var10[n];
}Else
{
n = n + var7[n];
}
If(var8[n] > var11)
var11 = var8[n];
If(var9[n] < var12)
var12 = var9[n];
If(var10[n] > var13)
var13 = var10[n];
If(var10[n] < var14)
var14 = var10[n];
}
var1 = Max(var11 - var14, var13 - var12);
For i = 1 to Params4
{
If(i == 1)
{
n = var7;
var11 = var8[n];
var12 = var9[n];
var13 = var10[n];
var14 = var10[n];
}Else
{
n = n + var7[n];
}
If(var8[n] > var11)
var11 = var8[n];
If(var9[n] < var12)
var12 = var9[n];
If(var10[n] > var13)
var13 = var10[n];
If(var10[n] < var14)
var14 = var10[n];
}
var2 = Max(var11 - var14, var13 - var12);
var3 = OpenD(0) + var1 * Params1;
var4 = OpenD(0) - var2 * Params2;
var5 = PriceScale * MinMove;
If(Time < Params5 / 100) Return;
If(MarketPosition ?!= 1)
{
If(High >= var3)
{
Buy(shares, Max(Open, var3));
Return;
}
}
If(MarketPosition != -1)
{
If(Low <= var4)
{
SellShort(shares, Min(Open, var4));
}
}End
策略二:
ParamsNumeric lots(1); ?Numeric PAR_1(2);Numeric PAR_2(12);Numeric PAR_3(4.25);Numeric PAR_4(32); ? ?Numeric PAR_5(2);?Numeric PAR_6(1); ?Numeric PAR_7(86);?Numeric
PAR_8(6); ?Numeric PAR_9(930); ? ??Numeric PAR_10(1400); ??VarsNumericSeries VAR_1; ? ? ? ? ??Numeric VAR_2(0);Numeric VAR_3;?Numeric VAR_4;?Numeric VAR_5;?Numeric VAR_6;?NumericSeries VAR_7; ? ? ? ?NumericSeries VAR_8; ? ??Numeric VAR_9;Numeric VAR_10;bool boll_1;Numeric tmp;Numeric tmp2;bool boll_2;bool boll_3;bool boll_4;Begin
VAR_1=AvgTrueRange(PAR_7);
boll_1=Time>0.0001*PAR_9 And Time <PAR_10 * 0.0001;
if (BarsSinceEntry == 1){VAR_7 = AvgEntryPrice;VAR_8 = AvgEntryPrice;}Else If(BarsSinceEntry > 1){VAR_7 = Max(VAR_7[1],High[1]);VAR_8 = Min(VAR_8[1],Low[1]);}Else{VAR_7 = VAR_7[1];VAR_8 = VAR_8[1];}
? ?VAR_6 = MinMove*PriceScale;
VAR_3=Average(high[1]-low[1],PAR_1);
VAR_4=Average(open,PAR_2)+VAR_3*PAR_3;VAR_5=Average(open,PAR_2)-VAR_3*PAR_3;
boll_4=boll_1 ?and MarketPosition<>-1 && Low<=VAR_5 ;
boll_3=boll_1 ?and MarketPosition<>1 && high>=VAR_4 ;
If(boll_4)? ? {? ? ?VAR_10 = VAR_5-VAR_2*VAR_6;? ? ?If(Open < VAR_5)?
VAR_10 = Open-VAR_2*VAR_6;
sellshort(lots,VAR_10);
Return;? ? }
If(boll_3)? ? {
VAR_10 = VAR_4+VAR_2*VAR_6;? ? ?If(Open > VAR_4)?
VAR_10 = Open+VAR_2*VAR_6;
?Buy(lots,VAR_10);Return;? ? }
? ? If(MarketPosition==1 && BarsSinceEntry >0) ?
{
VAR_9 = EntryPrice * (1-PAR_4/1000); ?
If (VAR_7 >= EntryPrice * (1 + PAR_5/1000)) ?
{
VAR_9 = VAR_7*(1-PAR_6/1000);
}
}
If(Low <= VAR_9) ? ? ? ? ? ? ??
{?
VAR_10 = VAR_9;
If(Open < VAR_10) VAR_10 = Open;
Sell(Lots,VAR_10);
}
? ? Else If(MarketPosition ==-1 && BarsSinceEntry >0)?
{ ? ? ??
VAR_9 = EntryPrice * (1+PAR_4/1000); ?
If(VAR_8 <= EntryPrice*(1-PAR_5/1000)) ?
{
VAR_9 = VAR_8 * (1+PAR_6/1000);
}
}
If(High >= VAR_9)?
{
VAR_10 = VAR_9;
If(Open > VAR_10) ?VAR_10 =Open;
BuyToCover(Lots,VAR_10);
}
If(MarketPosition==1)
{
VAR_9 = VAR_7 - PAR_8*VAR_1[1]; ? ? ? ? ?
}
If(Low <= VAR_9) ? ? ? ? ? ? ??
{?
VAR_10 = VAR_9;
If(Open < VAR_10) VAR_10 = Open;
Sell(Lots,VAR_10);
}
Else If(MarketPosition ==-1)
{
VAR_9 = VAR_8 + PAR_8*VAR_1[1]; ? ? ? ??
}
If(High >= VAR_9)?
{
VAR_10 = VAR_9;
If(Open > VAR_10) ?VAR_10 =Open;
BuyToCover(Lots,VAR_10);
}
End
?
?來源:程序化99
-
文華技術人員:
您這是tb源碼,我們提供軟件兼容了TB的語法 ?
您復制源碼到文華的MQ軟件中,稍作修改就可以了,修改如下
您可以下載免費的模擬試用版體驗下:http://www.wenhua.com.cn/
?
?來源: m.kzuj.com.cn
-
文華客服:
?
Vars
Numeric shares(1);
Numeric Params3(2);
Numeric Params4(3);
Numeric Params2(0.70);
Numeric Params1(1.30);
Numeric Params5(9.15);
Numeric i(0);?
Numeric n(0);
Numeric var1(0);
Numeric var2(0);
Numeric var3(0);
Numeric var4(0);
Numeric var5(0);
Numeric var6(0);
NumericSeries var7(0);
NumericSeries var8(0);
NumericSeries var9(0);
NumericSeries var10(0);
Numeric var11(0);
Numeric var12(0);
Numeric var13(0);
Numeric var14(0);
Begin
If(CurrentBar == 0 || Date != Date[1])
{
var7 = 1;
var8 = High;
var9 = Low;
}Else
{
var7 = var7 + 1;
If(High > var8)
var8 = High;
If(Low < var9)
var9 = Low;
}
var10 = Close;
For i = 1 to Params3
{
If(i == 1)
{
n = var7;
var11 = var8[n];
var12 = var9[n];
var13 = var10[n];
var14 = var10[n];
}Else
{
n = n + var7[n];
}
If(var8[n] > var11)
var11 = var8[n];
If(var9[n] < var12)
var12 = var9[n];
If(var10[n] > var13)
var13 = var10[n];
If(var10[n] < var14)
var14 = var10[n];
}
var1 = Max(var11 - var14, var13 - var12);
For i = 1 to Params4
{
If(i == 1)
{
n = var7;
var11 = var8[n];
var12 = var9[n];
var13 = var10[n];
var14 = var10[n];
}Else
{
n = n + var7[n];
}
If(var8[n] > var11)
var11 = var8[n];
If(var9[n] < var12)
var12 = var9[n];
If(var10[n] > var13)
var13 = var10[n];
If(var10[n] < var14)
var14 = var10[n];
}
var2 = Max(var11 - var14, var13 - var12);
var3 = OpenD(0) + var1 * Params1;
var4 = OpenD(0) - var2 * Params2;
var5 = PriceScale * MinMove;
If(Time < Params5 / 100) Return;
If(MarketPosition ?!= 1)
{
If(High >= var3)
{
Buy(shares, Max(Open, var3));
Return;
}
}
If(MarketPosition != -1)
{
If(Low <= var4)
{
SellShort(shares, Min(Open, var4));
}
}
End
?
-
網友回復:
?
Params
Numeric lots(1); ?
Numeric PAR_1(2);
Numeric PAR_2(12);
Numeric PAR_4(32); ? ?
Numeric PAR_5(2);?
Numeric PAR_6(1); ?
Numeric PAR_7(86);?
Numeric?
PAR_8(6); ?
Numeric PAR_9(930); ? ??
Numeric PAR_10(1400); ??
Vars
Numeric PAR_3(4.25);
NumericSeries VAR_1; ? ? ? ? ??
Numeric VAR_2(0);
Numeric VAR_3;?
Numeric VAR_4;?
Numeric VAR_5;?
Numeric VAR_6;?
NumericSeries VAR_7; ? ? ? ?
NumericSeries VAR_8; ? ??
Numeric VAR_9;
Numeric VAR_10;
Numeric boll_1;
Numeric tmp;
Numeric tmp2;
Numeric boll_2;
Numeric boll_3;
Numeric boll_4;
Begin
VAR_1=AvgTrueRange(PAR_7);
boll_1=Time>0.0001*PAR_9 And Time <PAR_10 * 0.0001;
if (BarsSinceEntry == 1)
{
VAR_7 = AvgEntryPrice;
VAR_8 = AvgEntryPrice;
}
Else If(BarsSinceEntry > 1)
{
VAR_7 = Max(VAR_7[1],High[1]);
VAR_8 = Min(VAR_8[1],Low[1]);
}
Else
{
VAR_7 = VAR_7[1];
VAR_8 = VAR_8[1];
}
? ?VAR_6 = MinMove*PriceScale;
VAR_3=Average(high[1]-low[1],PAR_1);
VAR_4=Average(open,PAR_2)+VAR_3*PAR_3;
VAR_5=Average(open,PAR_2)-VAR_3*PAR_3;
boll_4=boll_1 ?and MarketPosition<>-1 && Low<=VAR_5 ;
boll_3=boll_1 ?and MarketPosition<>1 && high>=VAR_4 ;
If(boll_4)
? ? {
? ? ?VAR_10 = VAR_5-VAR_2*VAR_6;
? ? ?If(Open < VAR_5)?
VAR_10 = Open-VAR_2*VAR_6;
sellshort(lots,VAR_10);
Return;
? ? }
If(boll_3)
? ? {
VAR_10 = VAR_4+VAR_2*VAR_6;
? ? ?If(Open > VAR_4)?
VAR_10 = Open+VAR_2*VAR_6;
?
Buy(lots,VAR_10);
Return;
? ? }
? ? If(MarketPosition==1 && BarsSinceEntry >0) ?
{
VAR_9 = EntryPrice * (1-PAR_4/1000); ?
If (VAR_7 >= EntryPrice * (1 + PAR_5/1000)) ?
{
VAR_9 = VAR_7*(1-PAR_6/1000);
}
}
If(Low <= VAR_9) ? ? ? ? ? ? ??
{?
VAR_10 = VAR_9;
If(Open < VAR_10) VAR_10 = Open;
Sell(Lots,VAR_10);
}
? ? Else If(MarketPosition ==-1 && BarsSinceEntry >0)?
{ ? ? ??
VAR_9 = EntryPrice * (1+PAR_4/1000); ?
If(VAR_8 <= EntryPrice*(1-PAR_5/1000)) ?
{
VAR_9 = VAR_8 * (1+PAR_6/1000);
}
}
If(High >= VAR_9)?
{
VAR_10 = VAR_9;
If(Open > VAR_10) ?VAR_10 =Open;
BuyToCover(Lots,VAR_10);
}
If(MarketPosition==1)
{
VAR_9 = VAR_7 - PAR_8*VAR_1[1]; ? ? ? ? ?
}
If(Low <= VAR_9) ? ? ? ? ? ? ??
{?
VAR_10 = VAR_9;
If(Open < VAR_10) VAR_10 = Open;
Sell(Lots,VAR_10);
}
Else If(MarketPosition ==-1)
{
VAR_9 = VAR_8 + PAR_8*VAR_1[1]; ? ? ? ??
}
If(High >= VAR_9)?
{
VAR_10 = VAR_9;
If(Open > VAR_10) ?VAR_10 =Open;
BuyToCover(Lots,VAR_10);
}
End