请老师看一下我的独立止损组件写的对不。 [赢顺期货]
- 咨询内容:
和跟踪止损差不多。
止损要求:股指限价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.
还是就是指价差。
如果以上指标公式不适用于您常用的行情软件
或者您想改编成选股公式,以便快速选出某种形态个股的话,
- 上一篇:今天赢顺行情的锌和棕榈和WH3的涨跌不一…
- 下一篇:才发现手机安卓版问题
相关文章
-
没有相关内容