首页 > 其他分享 >二十三、区块量化 TD指标

二十三、区块量化 TD指标

时间:2023-06-26 16:25:37浏览次数:34  
标签:13 二十三 symbol tdsequential order time TD 区块 td

#!/usr/bin/env python
# -*- coding: utf-8 -*-
import talib
import cross_order as order
import time


def TDSequential(close):
tdlist = [0, 0, 0, 0] # tdlist是存储TD结果用的,前4个无效用0占位置.因为TD定义是下标第n和n-4比较
top = 0 # 初始化上标
bot = 0 # 初始化下标
for i in range(4, len(close)): # 为何会从4开始,因为要用index n与index n-4 作比较,比他大才算TD上标1
if close.iloc[i] > close.iloc[i - 4]: # 由于i本身就是从4开始, 所以就是由4与0比较,i的最后一个循环到列表的最后一个数字,能够遍历完
top += 1
bot *= 0
if top <= 13:
tdlist.append(top)
else:
top *= 0
bot += 1
if top >= -13:
tdlist.append(-bot)
return tdlist


def main():
print("任务开始时间:", time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(time.time())))

for symbol in order.symbol_pool:
# 设置杠杆倍数
order.set_leverage(symbol=symbol, leverage='25')
# 获取标的的最新价
df = order.get_candlesticks(symbol=symbol, interval='15m', limit=str(300))
tdsequential = TDSequential(df['close'])
if (tdsequential[-2] == -8) and (tdsequential[-1] == -9):
order.up_cross(symbol, 'td(-9) 策略做多')
print('td(-9) 策略做多: ' + symbol)
elif (tdsequential[-2] == 8) and (tdsequential[-1] == 9):
order.down_cross(symbol, 'td(9) 策略做空')
print('td(9) 策略做空: ' + symbol)
if (tdsequential[-2] == -12) and (tdsequential[-1] == -13):
order.up_cross(symbol, 'td(-13) 策略做多')
print('td(-13) 策略做多: ' + symbol)
elif (tdsequential[-2] == 12) and (tdsequential[-1] == 13):
order.down_cross(symbol, 'td(13) 策略做空')
print('td(13) 策略做空: ' + symbol)

time.sleep(5)

print("任务结束时间:", time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(time.time())))


if __name__ == '__main__':
main()

标签:13,二十三,symbol,tdsequential,order,time,TD,区块,td
From: https://www.cnblogs.com/nbjjy/p/17505990.html

相关文章

  • Springboot graceful shutdown
    很多情况下,在应用程序启动后需要关闭时候,直接shutdown会导致正在处理的请求中断,而采用gracefulshutdown可以实现不再接受新的请求,并将已接收到的请求处理完毕再关闭程序释放资源 Springbootgracefulshutdown应用场景Springboot中提供了优雅停机方案,在关闭阶段会给应用程序......
  • C++面试八股文:std::array如何实现编译器排序?
    某日二师兄参加XXX科技公司的C++工程师开发岗位第25面:面试官:array熟悉吗?二师兄:你说的是原生数组还是std::array?面试官:你觉得两者有什么区别?二师兄:区别不是很大,原生数组(非动态数组)和std::array都在栈上开辟空间,初始化的时候需要提供数组长度,且长度不可改变。有一点区别的是,st......
  • C++面试八股文:std::array如何实现编译器排序?
    某日二师兄参加XXX科技公司的C++工程师开发岗位第25面:面试官:array熟悉吗?二师兄:你说的是原生数组还是std::array?面试官:你觉得两者有什么区别?二师兄:区别不是很大,原生数组(非动态数组)和std::array都在栈上开辟空间,初始化的时候需要提供数组长度,且长度不可改变。有一点区别的是,std......
  • 错误C3861 “_CrtDbgReportW”: 找不到标识符
    //crt_crtdbgreport.c#include<crtdbg.h>intmain(intargc,char*argv[]){#ifdef_DEBUG_CrtDbgReport(_CRT_ASSERT,__FILE__,__LINE__,argv[0],NULL);#endif}解决方法:用release版,或者把debug版本中预编译头的_debug去掉,这样在函数执行的时候就不会出现这......
  • C++面试八股文:std::string是如何实现的?
    C++面试八股文:std::string是如何实现的?某日二师兄参加XXX科技公司的C++工程师开发岗位第18面:面试官:std::string用过吧?二师兄:当然用过(废话,C++程序员就没有没用过std::string的)。面试官:std::string("hello")+"world"、"hello"+std::string("world")和std::string("hello")......
  • m基于多属性决策判决算法的异构网络垂直切换matlab仿真,异构网络为GSM,TDS,LTE
    1.算法仿真效果matlab2022a仿真结果如下:    2.算法涉及理论知识概要       异构网络垂直切换是指在不同的移动通信网络之间进行快速自适应切换的技术。在异构网络中,不同类型的网络可能具有不同的带宽、延迟、信号强度等性能指标,因此在不同的应用场景下,需要采......
  • XSSFClientAnchor 设置偏移无效 setDx setDy
    一、XSSFClientAnchor设置偏移无效setDxsetDy 原因是因为setDx,setDy所需要的x值y值并不是sheet.getColumnWidth(colNo)的值和row.getHeight()的值,而是需要进行一些转换。由于转换系数比较大,所以一般设个几百上千做测试基本是没反应,看起来就像没设置一样。这里先提供一下思......
  • 区块链基础之密码学及安全技术
    1.2密码学及安全技术1.2.1密码学知识1.2.1.1Hash函数Hash(哈希)哈希函数是一类数学函数,可以在有限合理的时间内,将任意长度的消息压缩为固定长度的输出值,并且是不可逆的。其输出值称为哈希值,也称为散列值。哈希算法的应用:消息认证:确保收到的消息和发送的消息都是未......
  • C++面试八股文:std::vector和std::list,如何选择?
    某日二师兄参加XXX科技公司的C++工程师开发岗位第24面:面试官:list用过吗?二师兄:嗯,用过。面试官:请讲一下list的实现原理。二师兄:std::list被称为双向链表,和C中手写双向链表本质上没有大的区别。list对象中有两个指针,一个指向上一个节点(node),一个指向下一个节点(node)。二师兄:与手写......
  • C++面试八股文:std::vector和std::list,如何选择?
    某日二师兄参加XXX科技公司的C++工程师开发岗位第24面:面试官:list用过吗?二师兄:嗯,用过。面试官:请讲一下list的实现原理。二师兄:std::list被称为双向链表,和C中手写双向链表本质上没有大的区别。list对象中有两个指针,一个指向上一个节点(node),一个指向下一个节点(node)。二师兄:与手......