// 获取合约代码前两位
symbolCode = SubStr(ContractCode,0,2);
// 设置品种持仓倍数(根据交割月规则)
LotMultiple = 1; // 默认值
if(symbolCode == "RB" || symbolCode == "WR" || symbolCode == "HC")
LotMultiple = 30; // 螺纹钢/线材/热卷
else if(symbolCode == "CU" || symbolCode == "AL" || symbolCode == "ZN" || symbolCode == "PB")
LotMultiple = 5; // 铜/铝/锌/铅
else if(symbolCode == "FU")
LotMultiple = 0; // 燃料油禁止持仓。ContractCode。TB中没有这函数?如何改谢谢?请大神帮助,谢谢。
试试这个DEMO
String StrSource(\"MO2405-P-5100\");
String TempStr(\"\");
String TempSymbol(\"\");
String TempTime(\"\");
Integer i;
If (FindFirstOf(StrSource, \"P\") >= 0)
Print(\"PutOption\");
Else
Print(\"CallOption\");
i = FindFirstOf(StrSource, \"-\");
StrSource = Left(StrSource, i);
Print(StrSource);
TempStr = Mid(StrSource, 1, 1);
If(TempStr >= \"0\" && TempStr <= \"9\")
{
TempSymbol = Left(StrSource, 1);
Print(\"Symbol: \" + TempSymbol);
TempTime = Right(StrSource, Len(StrSource) - 1);
Print(\"Time: \" + TempTime);
}
Else
{
TempSymbol = Left(StrSource, 2);
Print(\"Symbol: \" + TempSymbol);
TempTime = Right(StrSource, Len(StrSource) - 2);
Print(\"Time: \" + TempTime);
}
If(TempStr >= \"0\" && TempStr <= \"9\")
{
TempSymbol = Left(StrSource, 1);
Print(\"Symbol: \" + TempSymbol);
TempTime = Right(StrSource, Len(StrSource) - 1);
Print(\"Time: \" + TempTime);
}
Else
{
TempSymbol = Left(StrSource, 2);
Print(\"Symbol: \" + TempSymbol);
TempTime = Right(StrSource, Len(StrSource) - 2);
Print(\"Time: \" + TempTime);
}
大概意思就是类似的
主要是取第二个字符
判断是否数字
如果是数字
品种代码就取一位
如果不是数字
品种代码就是两位
StringSplit 可以对symbol字符串自己切割
请帮把上面代码改一下。因我不会改
你这上面的不会是AI写的吧
感觉最近都是DeepSeek用户🤣