设为首页收藏本站

 找回密码
 注册
查看: 1459|回复: 2
打印 上一主题 下一主题

把文华9的盘口高频移植过来了,开始印钞票 [复制链接]

Rank: 1

精华
0
UID
292332
积分
2
帖子
1
主题
1
阅读权限
10
注册时间
2020-5-25
最后登录
2020-6-21
跳转到指定楼层
1#
发表于 2020-6-18 17:41:48 |只看该作者 |倒序浏览
  1. //------------------------------------------------------------------------
  2. // 简称: fuckinday
  3. // 名称: 高频盘口
  4. // 类别: 公式应用
  5. // 类型: 用户应用
  6. // 输出: QQ群:1077343160
  7. //------------------------------------------------------------------------
  8. Vars
  9.         Global Integer i;
  10.     Numeric Lots;                                                                //定义参数,下单手数
  11.     Numeric MinPoint;                                                        //定义参数
  12.     Numeric Lost;                                                                //定义参数,止损单位
  13.     Numeric Win;                                                                //定义参数,止盈单位
  14.     Numeric CurDate;                                                        //定义参数,当前日期
  15.     Numeric CurTime;                                                        //定义参数,当前时间
  16.     Numeric Bprice;                                                                //定义参数,多头持仓均价
  17.     Numeric Sprice;                                                                //定义参数,多头持仓均价

  18.     Numeric New_1;                                                         //定义参数,最新价
  19.     Global Numeric High_1;                                                        //定义参数,最高价
  20.     Bool CONQC;                                                         //定义参数
  21.     Numeric MinP;                                                                //定义参数,最小变动价位
  22.                
  23.         Bool BKID;
  24.        
  25.         Series<Numeric>  BidPrice;
  26.         Series<Numeric>  AskPrice;
  27.         Series<Numeric>  TickVolum;

  28.         Global Numeric TickCounter(0);
  29.         Global Numeric STR0;                                        //定义全局变量
  30.     Global Numeric STR1;                                        //定义全局变量
  31. Events
  32.         OnInit()
  33.         {
  34.                 //订阅深度行情,目前只有公式订阅的深度行情会触发 OnTick 事件
  35.                 //SubscribeBar("DCE.a2009","10s", SystemDateTime());
  36.         }
  37.         OnBar(ArrayRef<Integer> indexs)
  38.         {
  39.                 If(!QuoteDataExist())
  40.                 {
  41.                         Commentary("行情无效");
  42.                         Return;
  43.                 }
  44.                
  45.                 Lots = 2; // 下单手数
  46.                 Minpoint = 2; //当合约价格上涨2个最小变动价位
  47.                 Lost = 3; //止损3个最小变动价位
  48.                 Win = 10; //止盈10个最小变动价位
  49.                
  50.                 New_1 =  Q_Last();//获取当前合约最新价
  51.                 Bprice = A_BuyAvgPrice(); //取得持仓栏中该合约多头持仓均价
  52.                 Sprice = A_SellAvgPrice();
  53.                
  54.                 CurDate = CurrentDate(); // 获取当前日期
  55.                 CurTime = CurrentTime(); // 获取当前时间
  56.                
  57.                 MinP = MinMove*PriceScale;                  //最小变动价位
  58.                
  59.                 BidPrice = Q_BidPrice();
  60.                 AskPrice = Q_AskPrice();
  61.                
  62.                 TickVolum = Q_TotalVol();
  63.                
  64.                 // 收盘前30秒清仓
  65.                 CONQC = ((HourFromDateTime( CurDate + CurTime ) == 22 && MinuteFromDateTime( CurDate + CurTime ) == 59) || (HourFromDateTime( CurDate + CurTime ) == 14 && MinuteFromDateTime( CurDate + CurTime ) == 59) || ( HourFromDateTime( CurDate + CurTime ) == 10 && MinuteFromDateTime( CurDate + CurTime ) == 14 ) || ( HourFromDateTime( CurDate + CurTime ) == 11 ) && MinuteFromDateTime(CurDate + CurTime ) == 29 ) && SecondFromDateTime(CurDate +  CurTime ) > 30;//收盘前30秒
  66.                 If (CONQC)
  67.                 {
  68.                         Commentary("CONQC" + Text(1));
  69.                 }
  70.                 Commentary("STR1:" + Text(STR1));
  71.                 If (STR1 == 0 &&(CONQC == True))//满足在收盘前30秒内
  72.                 {
  73.                         Commentary("收盘前30秒清仓");//输出"收盘前30秒清仓"
  74.                         If (A_GetOpenOrderCount()>0)
  75.                         {
  76.                                 A_DeleteOrder();
  77.                         }
  78.                         if(A_BuyPosition()>0)
  79.                         {
  80.                                 A_SendOrder(Enum_Sell,Enum_Exit,A_BuyPosition(),BidPrice); //以买一价清仓
  81.                         }
  82.                        
  83.                         if(A_SellPosition()>0)
  84.                         {
  85.                                 A_SendOrder(Enum_Buy,Enum_Exit,A_SellPosition(),AskPrice); //以卖一价清仓
  86.                         }
  87.                         STR0=0;
  88.                         STR1=1;
  89.                         Return;
  90.                 }

  91.                 Commentary("开仓价格:"+"---"+Text(CurTime) + "---"+ Text(A_BuyPosition()) + "...." + Text(BidPrice) + "..."+Text(TickVolum));

  92.                 TickCounter= TickCounter + 1;
  93.                 If (TickCounter >= 4) // 数据保存完成
  94.                 {
  95.                         Commentary("STR0:"+Text(STR0) +  "--->"+Text(BidPrice[3]) + "---"+Text(BidPrice[2]) + "---"+Text(BidPrice[1]) + "---"+Text(BidPrice[0]));

  96.                         //连续3次当笔TICK的买一价都大于上一笔TICK的买一价,并且最新一笔的成交量大于上一笔TICK的成交量,对价做多
  97.                         If (STR0 == 0 && BidPrice[3] <  BidPrice[2] &&  BidPrice[2] <  BidPrice[1] &&  BidPrice[1] <  BidPrice[0] && CONQC != True) //连续3次当笔TICK的买一价都大于上一笔TICK的买一价,并且不在收盘前30秒内
  98.                         {
  99.                                 Commentary("TickVolum--->:"+Text(TickVolum[2]) + "---"+Text(TickVolum[1]) + "---"+Text(TickVolum[0]));

  100.                                 If ( TickVolum[1] - TickVolum[2]< TickVolum[0] - TickVolum[1] )//最新一笔的成交量大于上一笔TICK的成交量
  101.                                 {
  102.                                         Commentary("连续3次当笔TICK的买一价都大于上一笔TICK的买一价");//输出"连续3次当笔TICK的买一价都大于上一笔TICK的买一价"
  103.                                         BKID=A_SendOrder(Enum_Buy,Enum_Entry,Lots,AskPrice); //以卖一价买入Lots手仓位
  104.                                         STR0=1;
  105.                                         STR1=0;
  106.                                 }
  107.                         }
  108.                         //当合约价格上涨2个最小变动价位,加仓1手
  109.                         If (STR0 == 1 &&  A_BuyPosition() == Lots && CONQC != True)//委托索引BKID这笔委托单已经成交,并且不在收盘前30秒内
  110.                         {
  111.                                 If ( New_1 - Bprice> Minpoint * MinP)//最新价与BKID这笔委托单的成交价差了2个最小变动价位
  112.                                 {
  113.                                         Commentary("当合约价格上涨2个最小变动价位,加仓1手");//输出"当合约价格上涨2个最小变动价位,加仓1手"
  114.                                         BKID=A_SendOrder(Enum_Buy,Enum_Entry,1, AskPrice); //以卖一价加1手仓
  115.                                         STR0=2;
  116.                                         STR1=0;
  117.                                 }
  118.                         }
  119.                         If (STR0  == 2 && A_BuyPosition() == Lots+1 )//委托索引BKID这笔委托单已经成交
  120.                         {
  121.                                 STR0=1;
  122.                         }
  123.                 }
  124.                
  125.                 //止盈10个最小变动价位
  126.                 //止损3个最小变动价位
  127.                 If ( Bprice - New_1>= Lost * MinP || New_1 - Bprice >= Win * MinP)//最新价跌至开仓价下3个价位止损,或者超过开仓价10个价位止盈
  128.                 {
  129.                         If (STR0 != 0 && A_BuyPosition() > 0 )//持有多仓
  130.                         {
  131.                                 Commentary("止盈止损");//输出"止盈止损"
  132.                                 A_SendOrder(Enum_Sell,Enum_Exit, A_BuyPosition(),BidPrice); //以买一价止盈止损
  133.                                 STR0=0;
  134.                         }
  135.                 }
  136.                
  137.                 Commentary("New_1>>" + Text(New_1) + "  High_1>>"+Text(High_1));

  138.                 //当持仓手数超过了5手,并且最新价格超过了今天的最高价,对价平仓
  139.                 If (STR0 != 0 && A_BuyPosition() > 5 && New_1 > High_1) // 多头持仓超过5手,最新价格超过了今天的最高价
  140.                 {
  141.                         Commentary("当持仓手数超过了5手,并且最新价格超过了今天的最高价,对价平仓");//输出"当持仓手数超过了5手,并且最新价格超过了今天的最高价,对价平仓"
  142.                         A_SendOrder(Enum_Sell,Enum_Exit,A_BuyPosition(),BidPrice); //以买一价平多仓
  143.                         STR0=0;
  144.                 }
  145.        
  146.             High_1 = Q_High();
  147.         }
复制代码

Rank: 1

精华
0
UID
293062
积分
1
帖子
1
主题
0
阅读权限
10
注册时间
2020-6-17
最后登录
1970-1-1
2#
发表于 2020-6-22 16:56:05 |只看该作者
咋都没人回复呢

使用道具 举报

Rank: 3Rank: 3

精华
0
UID
12849
积分
230
帖子
109
主题
13
阅读权限
40
注册时间
2010-6-23
最后登录
2024-2-2
3#
发表于 2020-9-1 21:16:06 |只看该作者
Global 无法识别的字符串

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

bottom

静态版|手机版|联系我们|交易开拓者 ( 粤ICP备07044698   

GMT+8, 2024-4-24 10:18

Powered by Discuz! X2 LicensedChrome插件扩展

© 2011-2012 交易开拓者 Inc.

回顶部