/*策略设计说明----初始需求_20250326
转指标:
N:=14;
M:=3;
TR1:=MAX(MAX((HIGH-LOW),ABS(REF(CLOSE,1)-HIGH)),ABS(REF(CLOSE,1)-LOW));
UP:=(H+L)/2+MA(TR1,N)*M;
DN:=(H+L)/2-MA(TR1,N)*M;
L1:=REF(UP,BARSLAST(UP<=REF(UP,1)));
L2:=LLV(UP,N*1.5);
LL:=IF(L2<>REF(L2,1) AND L1<REF(L1,1),L1,IF(L1=L2,L1,L2));
S1:=BARSLAST(CROSS(0.5,UP=LL))+1;
S2:=CROSS(COUNT((CROSS(C,LL) OR CROSS(C,REF(LL,2))) AND UP>LL,S1),0.5);
A6:=BARSLAST(S2);
B6:=BARSLAST(CROSS(HHV(DN,A6+1),C));
BY:=CROSS(B6,A6);
SL:=CROSS(A6,B6);
SUPERTREN:IF(B6>A6,NULL,LLV(UP,BARSLAST(SL)+1)),COLORGREEN;
IF(B6>A6,HHV(DN,BARSLAST(BY)+1),NULL),COLORRED,;
用这指标写策略
*/
Params
Numeric Lots(1); //版本:V1.0----手数
Vars
Global Numeric jump; //每跳多少元
Global String tmpMSyms2; //当前的真实主力合约
Series<Bool> cond_b; //开仓条件
Events
OnInit()
{
print("----start_main--" + "Symbol:" + Symbol());
if(1 == 1)
{
AddDataFlag(Enum_Data_RolloverBackWard());//设置后复权
AddDataFlag(Enum_Data_RolloverRealPrice());//映射真实价格。
}
//当前的真实主力合约
Array<String> tmpMSyms; //映射集合
if(GetOrderMapRelatedSymbols(tmpMSyms))
{
Integer i3;
for i3 = 0 to GetArraySize(tmpMSyms) - 1
{
if(!(FindFirstOf(tmpMSyms[i3], "888") == 2 or FindFirstOf(tmpMSyms[i3], "000") == 2 or FindFirstOf(tmpMSyms[i3], "999") <= 2) and tmpMSyms[i3] != "")
{
tmpMSyms2 = tmpMSyms[i3];
print("当前真实主力合约:" + tmpMSyms2);
break;
}
}
}
Else
{
tmpMSyms2 = symbol;
print("当前真实主力合约:" + tmpMSyms2);
}
jump = MinMove() * PriceScale(); //每跳多少元
}
OnBar(ArrayRef<Integer> indexs)
{
//原麦语言指标---------------以下
Numeric N:=14;
Numeric M:=3;
Numeric TR1:=MAX(MAX((HIGH-LOW),ABS(REF(CLOSE,1)-HIGH)),
你下面的TB代码显然是不全的,不知道你是复制不全,还是本来就不全
不全肯定是不能编译的
/*策略设计说明----初始需求_20250326
转指标:
N:=14;
M:=3;
TR1:=MAX(MAX((HIGH-LOW),ABS(REF(CLOSE,1)-HIGH)),ABS(REF(CLOSE,1)-LOW));
UP:=(H+L)/2+MA(TR1,N)*M;
DN:=(H+L)/2-MA(TR1,N)*M;
L1:=REF(UP,BARSLAST(UP<=REF(UP,1)));
L2:=LLV(UP,N*1.5);
LL:=IF(L2<>REF(L2,1) AND L1<REF(L1,1),L1,IF(L1=L2,L1,L2));
S1:=BARSLAST(CROSS(0.5,UP=LL))+1;
S2:=CROSS(COUNT((CROSS(C,LL) OR CROSS(C,REF(LL,2))) AND UP>LL,S1),0.5);
A6:=BARSLAST(S2);
B6:=BARSLAST(CROSS(HHV(DN,A6+1),C));
BY:=CROSS(B6,A6);
SL:=CROSS(A6,B6);
SUPERTREN:IF(B6>A6,NULL,LLV(UP,BARSLAST(SL)+1)),COLORGREEN;
IF(B6>A6,HHV(DN,BARSLAST(BY)+1),NULL),COLORRED,;
用这指标写策略
*/
Params
Numeric Lots(1); //版本:V1.0----手数
Vars
Global Numeric jump; //每跳多少元
Global String tmpMSyms2; //当前的真实主力合约
Series<Bool> cond_b; //开仓条件
Events
OnInit()
{
print("----start_main--" + "Symbol:" + Symbol());
if(1 == 1)
{
AddDataFlag(Enum_Data_RolloverBackWard());//设置后复权
AddDataFlag(Enum_Data_RolloverRealPrice());//映射真实价格。
}
//当前的真实主力合约
Array<String> tmpMSyms; //映射集合
if(GetOrderMapRelatedSymbols(tmpMSyms))
{
Integer i3;
for i3 = 0 to GetArraySize(tmpMSyms) - 1
{
if(!(FindFirstOf(tmpMSyms[i3], "888") == 2 or FindFirstOf(tmpMSyms[i3], "000") == 2 or FindFirstOf(tmpMSyms[i3], "999") <= 2) and tmpMSyms[i3] != "")
{
tmpMSyms2 = tmpMSyms[i3];
print("当前真实主力合约:" + tmpMSyms2);
break;
}
}
}
Else
{
tmpMSyms2 = symbol;
print("当前真实主力合约:" + tmpMSyms2);
}
jump = MinMove() * PriceScale(); //每跳多少元
}
OnBar(ArrayRef<Integer> indexs)
{
//原麦语言指标---------------以下
Numeric N:=14;
Numeric M:=3;
Numeric TR1:=MAX(MAX((HIGH-LOW),ABS(REF(CLOSE,1)-HIGH)),