Params

Numeric InitMP(0);        // 初始仓位,+-表示多空

Numeric FirstGrid(3);        // 第一格的间距,点数

Numeric TotalGrids(10);        // 总网格数,即最大持仓数

Numeric GridInterval(3);        // 网格间距,点数

Numeric WinGrid(3);        // 盈利点数

Numeric EveryLots(1);        // 每次开仓手数

Numeric OffsetPoint(0);        // 委托价格的偏移值(点数)

Numeric MidLineType(1); //价差中枢类型选项,1代表昨天的收盘价为价差中枢,2代表价差均线为价差中枢,3代表昨天的结算均价为价差中枢,4手动设置价差中枢

Numeric MidLineSetValue(100); //价差中枢类型选项为4时,手动设置价差中枢位置的具体点位

Numeric lenth(20);

Vars

Numeric MinPoint;

Numeric AvgOfClose;

Numeric AskLine;

Numeric BidLine;

Numeric MidLine;        // 中线值

Numeric MyRealMp(0);

Numeric TmpGridIndex;

Numeric TmpPrice;

bool btimecon;

Begin

bTimeCon = Time>0.0900 And (Time<0.1130 Or Time>0.1330) And Time<0.1450;

MinPoint = MinMove*PriceScale;

MyRealMp = GetGlobalVar(0);

If(BarStatus == 0)

{

If(MyRealMp == InvalidNumeric)

{

MyRealMp = InitMP;

SetGlobalVar(0,MyRealMp);

}

}Else If(BarStatus == 2 && A_AccountID != "" )

{

If(Data0.Q_AskPrice <= 0 || Data0.Q_BidPrice <= 0 || Data1.Q_AskPrice <= 0 || Data1.Q_BidPrice <= 0) Return;

If(Data0.Q_BidPrice == Data0.Q_UpperLimit || Data0.Q_AskPrice == Data0.Q_LowerLimit) Return;

If(Data1.Q_BidPrice == Data1.Q_UpperLimit || Data1.Q_AskPrice == Data1.Q_LowerLimit) Return;

If(Time == 0.0900 && Data0.Q_LastTime<0.090005 || Time == 0.1030 && Data0.Q_LastTime<0.103005 || Time == 0.1330 && Data0.Q_LastTime<0.133005 ) Return;

If(Time == 0.0900 && Data1.Q_LastTime<0.090005 || Time == 0.1030 && Data1.Q_LastTime<0.103005 || Time == 0.1330 && Data1.Q_LastTime<0.133005 ) Return;

If(Time==0.1459 && Data0.Q_LastTime > 0.145930) Return;

If(Time==0.1459 && Data1.Q_LastTime > 0.145930) Return;

If(MidLineType == 3 && (Data0.Q_PreSettlePrice()<=0 || Data1.Q_PreSettlePrice()<=0)) Return;

If(MidLineType == 1)

{

MidLine = Data0.CloseD[1]-Data1.CloseD[1];

}Else

If(MidLineType == 2)

{

MidLine = intpart(AverageFC(data0.close-data1.close,lenth));

}Else

If(MidLineType == 3)

{

MidLine = Data0.Q_PreSettlePrice()-Data1.Q_PreSettlePrice();

}Else

If(MidLineType == 4)

{

MidLine = MidLineSetValue;

}

AskLine = Data0.Q_AskPrice-Data1.Q_BidPrice;

BidLine = Data0.Q_BidPrice-Data1.Q_AskPrice;

Commentary("中线="+Text(MidLine));

Commentary("叫卖价="+Text(AskLine));

Commentary("叫买价"+Text(BidLine));

If(MyRealMp<=0 && BidLine > MidLine + FirstGrid*MinPoint)

{

TmpPrice = MidLine + FirstGrid*MinPoint + Abs(MyRealMp)*(GridInterval*MinPoint);

TmpPrice = Ceiling(TmpPrice,MinPoint);

Commentary("开仓价="+Text(TmpPrice));

TmpGridIndex = -1 - IntPart((BidLine - MidLine - FirstGrid*M

inPoint)/(GridInterval*MinPoint));

If(TmpGridIndex < MyRealMp && TmpGridIndex >= -1*TotalGrids &&btimecon)

{

MyRealMp = MyRealMp - 1;

Data0.A_SendOrder(Enum_Sell,Enum_Entry,EveryLots,Data0.Q_BidPrice-OffsetPoint*MinPoint);

Data1.A_SendOrder(Enum_Buy,Enum_Entry,EveryLots,Data1.Q_AskPrice+OffsetPoint*MinPoint);

}

}Else If(MyRealMp>=0 && AskLine < MidLine - FirstGrid*MinPoint)

{

TmpPrice = MidLine - FirstGrid*MinPoint - Abs(MyRealMp)*(GridInterval*MinPoint);

TmpPrice = Floor(TmpPrice,MinPoint);

Commentary("开仓价="+Text(TmpPrice));

TmpGridIndex = 1 + IntPart((MidLine - FirstGrid*MinPoint - AskLine)/(GridInterval*MinPoint));

If(TmpGridIndex > MyRealMp && TmpGridIndex <= TotalGrids &&btimecon)

{

MyRealMp = MyRealMp + 1;

Data0.A_SendOrder(Enum_Buy,Enum_Entry,EveryLots,Data0.Q_AskPrice+OffsetPoint*MinPoint);

Data1.A_SendOrder(Enum_Sell,Enum_Entry,EveryLots,Data1.Q_BidPrice-OffsetPoint*MinPoint);

}

}

If(MyRealMp > 0)

{

TmpPrice = MidLine - FirstGrid*MinPoint - (Abs(MyRealMp)-1)*(GridInterval*MinPoint) + WinGrid*MinPoint;

TmpPrice = Ceiling(TmpPrice,MinPoint);

Commentary("平仓价="+Text(TmpPrice));

}Else If(MyRealMp < 0)

{

TmpPrice = MidLine + FirstGrid*MinPoint + (Abs(MyRealMp)-1)*(GridInterval*MinPoint) - WinGrid*MinPoint;

TmpPrice = Floor(TmpPrice,MinPoint);

Commentary("平仓价="+Text(TmpPrice));

}

TmpGridIndex = -1 - IntPart((AskLine-FirstGrid*MinPoint+WinGrid*MinPoint-MidLine)/(GridInterval*MinPoint));

TmpGridIndex = min(0,TmpGridIndex);

If(TmpGridIndex > MyRealMp)

{

MyRealMp = MyRealMp + 1;

Data0.A_SendOrder(Enum_Buy,Enum_Exit,EveryLots,Data0.Q_AskPrice+OffsetPoint*MinPoint);

Data1.A_SendOrder(Enum_Sell,Enum_Exit,EveryLots,Data1.Q_BidPrice-OffsetPoint*MinPoint);

}

TmpGridIndex = 1 + IntPart((MidLine-FirstGrid*MinPoint+WinGrid*MinPoint-BidLine)/(GridInterval*MinPoint));

TmpGridIndex = max(0,TmpGridIndex);

If(TmpGridIndex < MyRealMp)

{

MyRealMp = MyRealMp - 1;

Data0.A_SendOrder(Enum_Sell,Enum_Exit,EveryLots,Data0.Q_BidPrice-OffsetPoint*MinPoint);

Data1.A_SendOrder(Enum_Buy,Enum_Exit,EveryLots,Data1.Q_AskPrice+OffsetPoint*MinPoint);

}

SetGlobalVar(0,MyRealMp);

}

Commentary("实际仓位="+Text(MyRealMp));

if(MyRealMp<0&&time>0.1450)

{

MyRealMp = MyRealMp + 1;

Data0.A_SendOrder(Enum_Buy,Enum_Exit,EveryLots,Data0.Q_AskPrice+OffsetPoint*MinPoint);

Data1.A_SendOrder(Enum_Sell,Enum_Exit,EveryLots,Data1.Q_BidPrice-OffsetPoint*MinPoint);

SetGlobalVar(0,MyRealMp);

}Else

if(MyRealMp>0&&time>0.1450)

{

MyRealMp = MyRealMp - 1;

Data0.A_SendOrder(Enum_Sell,Enum_Exit,EveryLots,Data0.Q_BidPrice-OffsetPoint*MinPoint);

Data1.A_SendOrder(Enum_Buy,Enum_Exit,EveryLots,Data1.Q_AskPrice+OffsetPoint*MinPoint);

SetGlobalVar(0,MyRealMp);

}

End

python 网格交易源码_网格交易策略[tb源码]相关推荐

  1. python 网格交易源码_网格交易策略(难度:中级)

    什么是网格交易策略 网格交易又名渔网交易,就是跌买涨卖.它适合震荡市,震荡市就是行情价围着一个数字上下浮动的,这个数字就是设置的价格中轴线. 设定中枢价格后,对投资标的进行机械式操作,下跌时,进行分档 ...

  2. python窗口动态实时显示时间_量化交易实时动态监视系统(纯Python,只需要浏览器就能用)-直接GitHub开源可下载...

    APP demo(还在优化):http://silverzy.com/tradings/ Github:https://github.com/jianwang0212/Dash_eth(如果可以sta ...

  3. python历史性分布计算代码_量化交易中,如何使用Python计算「筹码分布」指标【附代码】 [量化小讲堂-64]...

    引言: 邢不行的系列帖子"量化小讲堂",通过实际案例教初学者使用python进行量化投资,了解行业研究方向,希望能对大家有帮助. [历史文章汇总] 请点击此处 这是邢不行第  64 ...

  4. php公众号交友源码_个性定制微信导航源码,PHP公众号导航源码,含手机wap版,微信数据...

    程序采用PHP5+MYSQL做为技术基础进行开发.2 z# c2 u. j" A 带数据,带手机版,PC版风格全网首发,大气. F  h; \( x- E  k7 y        程序含数 ...

  5. app分发源码_第三方苹果企业签名源码

    第三方苹果企业签名源码 c6wlmsv 第三方苹果企业签名源码 ApplD需要一个易于描述的名称.应当这样讲,如果我们想要了解ios签名是什么意思,就先来谈谈苹果APP的上架问题.当前苹果的APP应用 ...

  6. http状态码_一些常见的HTTP状态码

    点击上方"Java专栏",选择"置顶或者星标" 第一时间阅读精彩文章! ☞ 程序员进阶必备资源免费送「21种技术方向!」 点击查看☜ 来源:Linux公社 链接 ...

  7. java 外码 内码_什么是汉字的内码、外码、交换码、字形码?

    展开全部 1.内码是指计算机汉字系统中使用的二进制字符编码,是沟通输入.输62616964757a686964616fe78988e69d8331333433616234出与系统平台之间的交换码,通过 ...

  8. python 网格交易源码_网格交易法策略源码

    网格交易法的源码 //+------------------------------------------------------------------+ //| Grid1.1.mq4 | // ...

  9. python 网格交易源码_网格交易策略源码(MT4.0源码)

    //+------------------------------------------------------------------+ //| Grid1.1.mq4 | //| Copy* 顺 ...

最新文章

  1. html5 原生 弹窗,一起来看 HTML 5.2 中新的原生元素 dialog
  2. java jsp js xml_jsp实现将信息放入xml中的方法
  3. hoj 3005 Game Rigging 强联通分量求缩点
  4. 使用GPS实时记录运动路线
  5. 【Matlab】编译器和工作区等窗口怎么调整位置?
  6. Python用泰勒公式模拟函数
  7. typeorm 生成实体类_android常用orm框架greenDAO创建表生成实体类
  8. Linux 下Kill多进程的方法
  9. 由于找不到iUtils.dll,无法继续执行代码。重新安装程序可能会解决此问题。
  10. 阿里巴巴YunOS加入物联网标准组织ZigBee联盟
  11. bzoj 4017: 小Q的无敌异或
  12. JAVA设计模式之工厂模式(简单,工厂,抽象)
  13. simhash实现html页面相似度,基于改进的Simhash算法的相似文档识别技术
  14. 黑白表格样式教师求职简历免费word模板
  15. ps曲线操作(转载)
  16. 如何批量保存虾皮购物中的商品主图、颜色分类图片
  17. 技术大佬都在看的几个公众号
  18. SAX错误–序言中不允许包含内容
  19. 用python画圣诞树的圣诞树代码
  20. 2022年上半年,产品经理的55条心得总结!

热门文章

  1. 青少年CTF-WEB-Queen
  2. UVA 12235 Help Bubu
  3. SAP ST05 追踪找表法
  4. 实用一位加法电路-全加器(全加器真值表、全加器的逻辑组合电路)、几种基本组合逻辑电路真值表 补充:逻辑电路基础:与门、或门、非门----计算机组成原理
  5. Java通过freemaker实现健康报告生成(包含列表、列表合并列)
  6. 读论文:Noise2Noise: Learning Image Restoration without Clean Data
  7. 在linux上运行python脚本(安装pytorch踩坑记录,pyinstaller使用方式,构建docker镜像)
  8. 三线制PT100测正温(篇一)
  9. DLL输出类使用研究手记(ZZ)
  10. 你听不出是AI在唱歌!这个日本虚拟歌姬,横扫中英日三种语言