如何在程序中修改工式应用里参数的值?

代码如下?我在程序中如何用指令修改KC的值?Params Integer zj(400000); //资金 Integer fx(3000); //风险金 //测试时K线走多少根Integer K_NUM(1); Integer MAX_czbl(4); //下单时允许最大误差比例 Numeric kc(0); //允许下单 Numeric pc(0); //允许平仓Vars Series<Integer> JZ1; //价值1 Series<Integer> JZ2; //价值2 Series<Integer> X; //最小公倍数 Series<Integer> lldlA; //理论单量1 Series<Integer> lldlB; //理论单量2 Series<Integer> jsdlA1; //近似单量1 Series<Integer> jsdlA2; //近似单量2 Series<Integer> jsdlA3; //近似单量3 Series<Integer> jsdlB1; //近似单量B1 Series<Integer> jsdlB2; //近似单量B2 Series<Integer> jsdlB3; //近似单量B3 Series<Integer> quzhi1; //单量取值1 Series<Integer> quzhi2; //单量取值2 Series<Numeric> WC1; //误差1 Series<Numeric> WC2; Series<Numeric> WC3; Series<Numeric> WC4; Series<Numeric> WC5; Series<Numeric> WC6; Series<Numeric> WC7; Series<Numeric> WC8; Series<Numeric> WC9; Series<Numeric> hycz; //合约差值 Series<Numeric> hyzz; //合约总值 Series<Numeric> bs; //最小倍数小于资金量时,下单时需要扩大的倍数 Series<Numeric> kcWC; //用于判断误差太大时,禁止开仓 Series<Numeric> zxWC; //最小误差 Events OnBar(ArrayRef<Integer> indexs) { JZ1 = data0.c*100; JZ2 = data1.c*100; X = zxgbs_h(JZ1,JZ2); lldlA = x/jz1/2; lldlB = x/jz2/2; If(x > zj) { jsdlA1 = intpart(lldlA*ZJ/X); //近似单量A jsdlA2 = jsdla1-1; jsdlA3 = jsdla1+1; jsdlB1 = intpart(lldlB*ZJ/X); //近似单量B jsdlB2 = jsdlB1-1; jsdlB3 = jsdlB1+1; WC1=Abs((jsdla1*jz1)/(jsdlb1*jz2)-1); //组合1误差 WC2=Abs((jsdla1*jz1)/(jsdlb2*jz2)-1); WC3=Abs((jsdla1*jz1)/(jsdlb3*jz2)-1); WC4=Abs((jsdla2*jz1)/(jsdlb1*jz2)-1); WC5=Abs((jsdla2*jz1)/(jsdlb2*jz2)-1); WC6=Abs((jsdla2*jz1)/(jsdlb3*jz2)-1); WC7=Abs((jsdla3*jz1)/(jsdlb1*jz2)-1); WC8=Abs((jsdla3*jz1)/(jsdlb2*jz2)-1); WC9=Abs((jsdla3*jz1)/(jsdlb3*jz2)-1); zxWC = Min(wc1,Min(wc2,Min(wc3,Min(wc4,Min(wc5,Min(wc6,Min(wc7,Min(wc8,wc9)))))))); //最小误差 If (wc1 == zxwc) {quzhi1 = jsdla1; quzhi2 = jsdlB1;} Else If (WC2 == zxwc) {quzhi1 = jsdla1; quzhi2 = jsdlB2;} Else If (wc3 == zxwc) {quzhi1 = jsdla1; quzhi2 = jsdlB3;} Else If (wc4 == zxwc) {quzhi1 = jsdla2; quzhi2 = jsdlB1;} Else If (wc5 == zxwc) {quzhi1 = jsdla2; quzhi2 = jsdlB2;} Else If (wc6 == zxwc) {quzhi1 = jsdla2; quzhi2 = jsdlB3;} Else If (wc7 == zxwc) {quzhi1 = jsdla3; quzhi2 = jsdlB1;} Else If (wc8 == zxwc) {quzhi1 = jsdla3; quzhi2 = jsdlB2;} Else If (wc9 == zxwc) {quzhi1 = jsdla3; quzhi2 = jsdlB3;} hycz = abs(quzhi2*jz2 - quzhi1*jz1); } else { bs=zj/x; //最小公倍数小于资金量时,扩大倍数 quzhi1 =intpart(bs*lldlA); // intpart(lldlA*ZJ/X) quzhi2 =intpart(bs*lldlB); // intpart(lldlB*ZJ/X) hycz = abs(quzhi2*jz2 - quzhi1*jz1); } hyzz = quzhi2*jz2 + quzhi1*jz1; kcWC = hycz/(hyzz/2)*100; //当差值过大时不开仓 If(hycz <= fx and MarketPosition ==0 and kcWC<=MAX_czbl and kc<>0) // and hyzz<zj { Buy(intpart(quzhi1[1]),JZ1/100*1.05); //做多 data1.Buy(intpart(data0.quzhi2[1]),data0.JZ2/100*1.05); //做多 //SellShort(quzhi1,JZ1/100*0.98); //做空 } //kc=0; If(MarketPosition<>0 and pc<>0) //BarsSinceEntry>=K_NUM and { Sell(0,JZ1/100*0.95); data1.Sell(0,data0.JZ2/100*0.95); //BuyToCover(0,0); } //Range[1:1] //{ // If(data0.hycz <= fx and MarketPosition ==0 and data0.kcWC<=MAX_czbl and kc<>0) // and data0.hyzz<zj // Buy(intpart(data0.quzhi2[1]/3),data0.JZ2/100*1.05); //做多 // SellShort(data0.quzhi2,data0.JZ2/100*0.98); //做空 // If(MarketPosition<>0 and BarsSinceEntry>=K_NUM and pc<>0) // Sell(0,data0.JZ2/100*0.95); //平多 // BuyToCover(0,0); //平空 //} Commentary(\"价值1:\"+Text(JZ1)); Commentary(\"价值2:\"+Text(JZ2)); Commentary(\"最小公倍数:\"+Text(X)); //Commentary(\"理论单量1:\"+Text(lldlA)); //Commentary(\"理论单量2:\"+Text(lldlB)); //Commentary(\"近似单量A1:\"+Text(jsdlA1)); //Commentary(\"近似单量B1:\"+Text(jsdlB1)); Commentary(\"取值1:\"+Text(quzhi1)); Commentary(\"取值2:\"+Text(quzhi2)); Commentary(\"合约价值1:\"+Text(quzhi1*jz1)); Commentary(\"合约价值2:\"+Text(quzhi2*jz2)); Commentary(\"资金使用量:\"+Text(hyzz)); Commentary(\"合约差值:\"+Text(hycz)); Commentary(\"误差:\"+Text(kcWC)); Commentary(\"开仓状态:\"+Text(kc)); Commentary(\"平仓状态:\"+Text(pc)); }

我这个问题没有老师能回答吗?就是能不能通过指令在程序中修改 PARAMS 里面设置的值?

这个问题简单点说其实就是能不能通过指令在程序中修改 PARAMS 里面设置的值?

这个我是是知道的,现在我觉得麻烦的是,我每次关闭开仓功能,都要人工在参数里修改一下这个KC值为0;而实际上,我在人工打开开仓功能(即人工设置KC=1),实现开仓后,即使后面再有信号我也不想开仓。现在我只能人工去调整KC的值 为0。我想实现的是,在程序中设计为:我开仓成功后,通过程序直接把KC的值改为0,这样我就不需要每次开仓后再去人工调整下KC的值。楼上的老师,这种情况有办法实现吗?

公式应用设置里有一个动态修改参数修改以后不会影响加载前的运行结果但是如果你刷新图表或者重新加载公式就不行了 历史信号就都没了 慎用

我简单描述一下我的需求,在盘中我通过KC值来判断是否开仓?默认值0是不开仓,盘中通过人工判断修改KC的值为1后,变成可以开仓。但是我希望开仓后,不要继续再开仓。这种情况下一般只能再次通过修改KC的值为0,才能实现。而我想通过自动的方式实现,即:在程序开完仓后,直接将KC的值 改成0,这样我就不用每次开仓后再人工去修改KC的值。但我不知道这种方式能不能实现?请指教,先谢谢各位老师!!!