您现在的位置:程序化交易>> 期货公式>> 文华财经>> 文华财经知识>>正文内容

请老师看一下我的独立止损组件写的对不。 [赢顺期货]

  • 咨询内容: 和跟踪止损差不多。 止损要求:股指限价20个价差止损。做多如价格下跌,则20个价差止损。如开多后价格上行,则止损价抬高为原止损位+(最高价-开仓价)/2. 空头采用相同的策略。 谢谢! VAR Price,MinPrice;//定义最新价变量,最小变动价位 VAR BPRICE,SPRICE,HPRICE,LPRICE;//定义多头持仓均价,空头持仓均价,波段最高价,波段最低价 VAR LoseBit; //定义止损点差 VOID MAIN() { Price=Price("if1202"); //让PRICE函数取if1202的最新价 LoseBit=20; //定义止损点差 MinPrice=MinPrice("if1202");//定义最小变动价位 BPRICE=T_BuyAvgPrice("if1202");//取得持仓栏中该合约多头持仓均价 SPRICE=T_SellAvgPrice("if1202");//取得持仓栏中该合约空头持仓均价 IF (T_BuyPosition("if1202")>0)//如果多头持仓大于0 { SPDeal(); // 执行卖平程序 } IF (T_SellPosition("if1202")>0) //如果空头持仓大于0 { BPDeal(); //执行买平程序 } } VOID SPDeal() //定义卖平函数 { IF (BPRICE-Price>LoseBit*MinPrice||BPRICE-Price==LoseBit*MinPrice) //如果多头持仓均价-最新价大于等于止损点差*最小变动价位 { T_Deal("if1202",1,1,T_BuyPosition("if1202"),0); //发出委托,以最新价卖平多头持仓 } ELSE IF (BPRICE-Price<0) //如果最新价大于多头持仓均价 { hprice="ReadGlobal("HPRICE");" //读取上一次最高价,如果第一次运行,此处为0 IF="IF" (HPRICE==0||Price>HPRICE) //如果 上一次最高价为0或者最新价大于上一次最高价 { HPRICE=Price; //将上一次最高价赋值为当前最新价 } ELSE IF (HPRICE>=BPRICE && Price<=BPRICE-100*MinPrice+(HPRICE-BKPRICE)/2) { T_Deal("if1202",1,1,T_BuyPosition("if1202"),0); //将多头持仓以最新价全平 HPRICE=0; //将上一次最高价清零 } WriteGlobal("HPRICE",HPRICE); //将上一次最高价写入HPRICE } } VOID BPDeal() //定义平空仓函数 { IF (Price-SPRICE>LoseBit*MinPrice||Price-SPRICE==LoseBit*MinPrice) //如果当前价格减去空头开仓均价>=止损点差*最小变动价位 { T_Deal("if1202",0,1,T_SellPosition("if1202"),0); //将当前合约的持仓全部平掉 } ELSE IF (Price=SPRICE+100*MinPrice-(SKPRICE-LPRICE)/2) { T_Deal("ru1109",0,1,T_SellPosition("if1202"),0); //全平 LPRICE=0; //对上一次最低价重新赋值 } WriteGlobal("LPRICE",LPRICE); //将LPRICE写入注册表 } }

     

  • 赢顺技术人员:

    为方便查看请重新发送源码,以设计模式发送,不要以代码模式,谢谢合作。

     

  • 赢顺客服: 好的。和跟踪止损差不多。 止损要求:股指限价20个价差止损。做多如价格下跌,则20个价差止损。如开多后价格上行,则止损价抬高为原止损位+(最高价-开仓价)/2. 空头采用相同的策略。 谢谢!


    VAR Price,MinPrice;//定义最新价变量,最小变动价位VAR BPRICE,SPRICE,HPRICE,LPRICE;//定义多头持仓均价,空头持仓均价,波段最高价,波段最低价VAR LoseBit; //定义止损点差VOID MAIN(){ Price=Price("if1202"); //让PRICE函数取得if1202的最新价 LoseBit=20; //定义止损点差 MinPrice=MinPrice("if1202");//定义最小变动价位 BPRICE=T_BuyAvgPrice("if1202");//取得持仓栏中该合约多头持仓均价 SPRICE=T_SellAvgPrice("if1202");//取得持仓栏中该合约空头持仓均价 IF (T_BuyPosition("if1202")>0)//如果多头持仓大于0 {  SPDeal(); // 执行卖平程序 } IF (T_SellPosition("if1202")>0)  //如果空头持仓大于0  {  BPDeal(); //执行买平程序 }}VOID SPDeal() //定义卖平函数{ IF (BPRICE-Price>LoseBit*MinPrice||BPRICE-Price==LoseBit*MinPrice) //如果多头持仓均价-最新价大于等于止损点差*最小变动价位 {  T_Deal("if1202",1,1,T_BuyPosition("if1202"),0); //发出委托,以最新价卖平多头持仓 } ELSE IF (BPRICE-Price<0) //如果最新价大于多头持仓均价 {  HPRICE=ReadGlobal("HPRICE"); //读取上一次最高价,如果第一次运行,此处为0  IF (HPRICE==0||Price>HPRICE) //如果 上一次最高价为0或者最新价大于上一次最高价  {   HPRICE=Price;  //将上一次最高价赋值为当前最新价  }  ELSE IF (HPRICE>=BPRICE && Price<=BPRICE-100*MinPrice+(HPRICE-BKPRICE)/2)   {   T_Deal("if1202",1,1,T_BuyPosition("if1202"),0); //将多头持仓以最新价全平   HPRICE=0; //将上一次最高价清零  }  WriteGlobal("HPRICE",HPRICE); //将上一次最高价写入HPRICE }}VOID BPDeal() //定义平空仓函数{ IF (Price-SPRICE>LoseBit*MinPrice||Price-SPRICE==LoseBit*MinPrice) //如果当前价格减去空头开仓均价>=止损点差*最小变动价位 {  T_Deal("if1202",0,1,T_SellPosition("if1202"),0); //将当前合约的持仓全部平掉 } ELSE IF (Price<SPRICE) //当前最新价小于空头持仓均价 {  LPRICE=ReadGlobal("LPRICE"); //读取上一次最低价的值  IF(Price<LPRICE||LPRICE==0) //如果最新价小于上一次最低价或者上一次最低价为0  {   LPRICE=Price; //最低价等于最新价  }  ELSE IF(LPRICE<=SPRICE && Price>=SPRICE+100*MinPrice-(SKPRICE-LPRICE)/2)   {   T_Deal("ru1109",0,1,T_SellPosition("if1202"),0); //全平   LPRICE=0; //对上一次最低价重新赋值  }  WriteGlobal("LPRICE",LPRICE); //将LPRICE写入注册表 }}

     

  • 网友回复:

    1.组件倒数第三行RU1109没有改过来。

    2.股指编码用大写,IF 不是小写 if

    3.原止损价应该是-20 您写的是100

     

  • 网友回复: 好的我止损价位是20,如2400做多,止损价2380.上面的是不是指100*0.2=20.
    还是就是指价差。

 

如果以上指标公式不适用于您常用的行情软件

或者您想改编成选股公式,以便快速选出某种形态个股的话,

可以联系我们相关技术人员 QQ: 262069696  点击在线交流进行 有偿 改编!

 


【字体: 】【打印文章】【查看评论

相关文章

    没有相关内容