python 网格交易源码_网格交易策略[tb源码]
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源码]相关推荐
- python 网格交易源码_网格交易策略(难度:中级)
什么是网格交易策略 网格交易又名渔网交易,就是跌买涨卖.它适合震荡市,震荡市就是行情价围着一个数字上下浮动的,这个数字就是设置的价格中轴线. 设定中枢价格后,对投资标的进行机械式操作,下跌时,进行分档 ...
- python窗口动态实时显示时间_量化交易实时动态监视系统(纯Python,只需要浏览器就能用)-直接GitHub开源可下载...
APP demo(还在优化):http://silverzy.com/tradings/ Github:https://github.com/jianwang0212/Dash_eth(如果可以sta ...
- python历史性分布计算代码_量化交易中,如何使用Python计算「筹码分布」指标【附代码】 [量化小讲堂-64]...
引言: 邢不行的系列帖子"量化小讲堂",通过实际案例教初学者使用python进行量化投资,了解行业研究方向,希望能对大家有帮助. [历史文章汇总] 请点击此处 这是邢不行第 64 ...
- php公众号交友源码_个性定制微信导航源码,PHP公众号导航源码,含手机wap版,微信数据...
程序采用PHP5+MYSQL做为技术基础进行开发.2 z# c2 u. j" A 带数据,带手机版,PC版风格全网首发,大气. F h; \( x- E k7 y 程序含数 ...
- app分发源码_第三方苹果企业签名源码
第三方苹果企业签名源码 c6wlmsv 第三方苹果企业签名源码 ApplD需要一个易于描述的名称.应当这样讲,如果我们想要了解ios签名是什么意思,就先来谈谈苹果APP的上架问题.当前苹果的APP应用 ...
- http状态码_一些常见的HTTP状态码
点击上方"Java专栏",选择"置顶或者星标" 第一时间阅读精彩文章! ☞ 程序员进阶必备资源免费送「21种技术方向!」 点击查看☜ 来源:Linux公社 链接 ...
- java 外码 内码_什么是汉字的内码、外码、交换码、字形码?
展开全部 1.内码是指计算机汉字系统中使用的二进制字符编码,是沟通输入.输62616964757a686964616fe78988e69d8331333433616234出与系统平台之间的交换码,通过 ...
- python 网格交易源码_网格交易法策略源码
网格交易法的源码 //+------------------------------------------------------------------+ //| Grid1.1.mq4 | // ...
- python 网格交易源码_网格交易策略源码(MT4.0源码)
//+------------------------------------------------------------------+ //| Grid1.1.mq4 | //| Copy* 顺 ...
最新文章
- html5 原生 弹窗,一起来看 HTML 5.2 中新的原生元素 dialog
- java jsp js xml_jsp实现将信息放入xml中的方法
- hoj 3005 Game Rigging 强联通分量求缩点
- 使用GPS实时记录运动路线
- 【Matlab】编译器和工作区等窗口怎么调整位置?
- Python用泰勒公式模拟函数
- typeorm 生成实体类_android常用orm框架greenDAO创建表生成实体类
- Linux 下Kill多进程的方法
- 由于找不到iUtils.dll,无法继续执行代码。重新安装程序可能会解决此问题。
- 阿里巴巴YunOS加入物联网标准组织ZigBee联盟
- bzoj 4017: 小Q的无敌异或
- JAVA设计模式之工厂模式(简单,工厂,抽象)
- simhash实现html页面相似度,基于改进的Simhash算法的相似文档识别技术
- 黑白表格样式教师求职简历免费word模板
- ps曲线操作(转载)
- 如何批量保存虾皮购物中的商品主图、颜色分类图片
- 技术大佬都在看的几个公众号
- SAX错误–序言中不允许包含内容
- 用python画圣诞树的圣诞树代码
- 2022年上半年,产品经理的55条心得总结!
热门文章
- 青少年CTF-WEB-Queen
- UVA 12235 Help Bubu
- SAP ST05 追踪找表法
- 实用一位加法电路-全加器(全加器真值表、全加器的逻辑组合电路)、几种基本组合逻辑电路真值表 补充:逻辑电路基础:与门、或门、非门----计算机组成原理
- Java通过freemaker实现健康报告生成(包含列表、列表合并列)
- 读论文:Noise2Noise: Learning Image Restoration without Clean Data
- 在linux上运行python脚本(安装pytorch踩坑记录,pyinstaller使用方式,构建docker镜像)
- 三线制PT100测正温(篇一)
- DLL输出类使用研究手记(ZZ)
- 你听不出是AI在唱歌!这个日本虚拟歌姬,横扫中英日三种语言