Params
// 均线参数
Numeric MALength1(5);
Numeric MALength2(10);
Numeric MALength3(20);
Numeric MALength4(28);
Numeric MALength5(40);
// 资金管理参数
Numeric FixedMargin(100000); // 固定保证金(元)
Numeric FixedStopLoss(10000); // 固定止损金额(元)
Numeric MarginRatio(0.15); // 保证金比例(15%)
Vars
// 均线变量
Numeric MA1;
Numeric MA2;
Numeric MA3;
Numeric MA4;
Numeric MA5;
Numeric MinMA; // 均线最小值
Numeric MaxMA; // 均线最大值
// 开仓手数计算
Numeric ContractValue; // 每手合约价值
Numeric MarginPerContract; // 每手保证金
Numeric GDJE; // 保证金计算的手数
Numeric DYSDL; // 做多止损计算的手数
Numeric KYSDL; // 做空止损计算的手数
Numeric KDSS; // 最终开多手数
Numeric KKSS; // 最终开空手数
Numeric StopDistanceLong; // 多头止损距离
Numeric StopDistanceShort; // 空头止损距离
Begin
// 计算5根均线值
MA1 = AverageFC(Close, MALength1);
MA2 = AverageFC(Close, MALength2);
MA3 = AverageFC(Close, MALength3);
MA4 = AverageFC(Close, MALength4);
MA5 = AverageFC(Close, MALength5);
// 计算均线最小值和最大值
MinMA = Min(MA1, MA2);
MinMA = Min(MinMA, MA3);
MinMA = Min(MinMA, MA4);
MinMA = Min(MinMA, MA5);
MaxMA = Max(MA1, MA2);
MaxMA = Max(MaxMA, MA3);
MaxMA = Max(MaxMA, MA4);
MaxMA = Max(MaxMA, MA5);
// 计算每手合约价值和保证金
ContractValue = Close * ContractUnit;
MarginPerContract = ContractValue * MarginRatio;
// 方式1:固定保证金计算手数
If(MarginPerContract > 0)
{
GDJE = FixedMargin / MarginPerContract;
}
Else
{
GDJE = 0;
}
GDJE = IntPart(GDJE); // 取整数部分
// 方式2:固定止损金额计算手数
// 做多止损距离(当前价与最小均线距离)
StopDistanceLong = Abs(Close - MinMA);
If(StopDistanceLong > 0 && ContractUnit > 0)
{
DYSDL = FixedStopLoss / (ContractUnit * StopDistanceLong);
}
Else
{
DYSDL = 0;
}
// 做空止损距离(最大均线与当前价距离)
StopDistanceShort = Abs(Close - MaxMA);
If(StopDistanceShort > 0 && ContractUnit > 0)
{
KYSDL = FixedStopLoss / (ContractUnit * StopDistanceShort);
}
Else
{
KYSDL = 0;
}
// 取整数部分
DYSDL = IntPart(DYSDL);
KYSDL = IntPart(KYSDL);
// 最终手数
KDSS = Min(GDJE, Max(DYSDL, 0));
KKSS = Min(GDJE, Max(KYSDL, 0));
// 输出结果显示
Commentary("===== 智能开仓手数计算 =====");
Commentary("当前价格: " + Text(Close));
Commentary("每手合约价值: " + Text(ContractValue) + " 元");
Commentary("每手保证金(" + Text(MarginRatio*100) + "%): " + Text(MarginPerContract) + " 元");
Commentary("5根均线值: " + Text(MA1) + ", " + Text(MA2) + ", " + Text(MA3) + ", " + Text(MA4) + ", " + Text(MA5));
Commentary("5根均线最小值: " + Text(MinMA));
Commentary("5根均线最大值: " + Text(MaxMA));
Commentary("保证金计算手数: " + Text(GDJE) + " 手");
Commentary("固定止损计算手数(多): " + Text(DYSDL) + " 手");
Commentary("固定止损计算手数(空): " + Text(KYSDL) + " 手");
Commentary("----------------------------");
Commentary("最终开多仓手数: " + Text(KDSS) + " 手");
Commentary("最终开空仓手数: " + Text(KKSS) + " 手");
End
ai写的?旗舰版语法?
新建公式,然后工具栏找一键升级转换一下。
如果还不行,问作者
你这个是函数 不是公式
在f+的里面编辑
没法直接用
先在官网视频区看看基础课程吧