四十、区块量化 LON策略
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import talib
import cross_order as order
import time
import pandas as pd
def LON(df, n=10):
"""
钱龙长线指标是一种描述当前趋势的指标,相比均线只使用收盘价而言,钱龙长线指标在描述趋势时,还考虑到了最高价、最低价、成交量对趋势的影响。
最常用的使用方法是,LON指标上穿0线时做多;LON指标下穿0线时做空。
@param df: 数据源
@param n: 时间
@return:
"""
lc = df['close'].shift(1)
a = (df['high'].rolling(2).max() - df['low'].rolling(2).min()) * 100
vid = df['volume'].rolling(2).sum() / a
rc = (df['close'] - lc) * vid
long = rc.cumsum()
dif = long.ewm(com=9, adjust=False).mean()
dea = long.ewm(com=19, adjust=False).mean()
lon = dif - dea
return pd.DataFrame({'lon': lon, 'lonma': lon.rolling(n).mean()}, index=df.index)
def main():
for symbol in order.symbol_pool:
print("任务开始时间:", time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(time.time())))
# 设置杠杆倍数
order.set_leverage(symbol=symbol, leverage='18')
# 获取标的的最新价
df = order.get_candlesticks(symbol=symbol, interval='4H', limit='200')
close = df['close'].values
lon = LON(df, 10)
# 做多止盈价格=委托价+atr
slpx = close[-1] * 1.008
# 做空止盈价格=委托价-atr
tppx = close[-1] / 1.004
print(
'重要参数:\n币种:{}\n当前价格:{:.2f}\nlon值:{:.2f}\nlonma值:{:.2f}\n止盈价格:{:.2f}\n止损价格:{:.2f}'
.format(symbol, close[-1], lon['lon'].iloc[-1], lon['lonma'].iloc[-1], slpx, tppx))
if lon['lon'].iloc[-1] < 0:
if lon['lon'].iloc[-2] > lon['lonma'].iloc[-2] and lon['lon'].iloc[-1] < lon['lonma'].iloc[-1]:
print('LON指标下穿0轴时做空,市价单卖出')
order.down_cross_order(symbol=symbol, message='LON指标下穿0轴时做空,市价单卖出')
elif lon['lon'].iloc[-1] > 0:
if lon['lon'].iloc[-2] < lon['lonma'].iloc[-2] and lon['lon'].iloc[-1] > lon['lonma'].iloc[-1]:
print('LON指标上穿0轴时做多,市价单买入')
order.up_cross_order(symbol=symbol, message='LON指标上穿0轴时做多,市价单买入')
time.sleep(5)
print("任务结束时间:", time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(time.time())))
print("-----------------------------------v----------------------------------------")
if __name__ == '__main__':
print("-----------------------------------^----------------------------------------")
main()
# -*- coding: utf-8 -*-
import talib
import cross_order as order
import time
import pandas as pd
def LON(df, n=10):
"""
钱龙长线指标是一种描述当前趋势的指标,相比均线只使用收盘价而言,钱龙长线指标在描述趋势时,还考虑到了最高价、最低价、成交量对趋势的影响。
最常用的使用方法是,LON指标上穿0线时做多;LON指标下穿0线时做空。
@param df: 数据源
@param n: 时间
@return:
"""
lc = df['close'].shift(1)
a = (df['high'].rolling(2).max() - df['low'].rolling(2).min()) * 100
vid = df['volume'].rolling(2).sum() / a
rc = (df['close'] - lc) * vid
long = rc.cumsum()
dif = long.ewm(com=9, adjust=False).mean()
dea = long.ewm(com=19, adjust=False).mean()
lon = dif - dea
return pd.DataFrame({'lon': lon, 'lonma': lon.rolling(n).mean()}, index=df.index)
def main():
for symbol in order.symbol_pool:
print("任务开始时间:", time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(time.time())))
# 设置杠杆倍数
order.set_leverage(symbol=symbol, leverage='18')
# 获取标的的最新价
df = order.get_candlesticks(symbol=symbol, interval='4H', limit='200')
close = df['close'].values
lon = LON(df, 10)
# 做多止盈价格=委托价+atr
slpx = close[-1] * 1.008
# 做空止盈价格=委托价-atr
tppx = close[-1] / 1.004
print(
'重要参数:\n币种:{}\n当前价格:{:.2f}\nlon值:{:.2f}\nlonma值:{:.2f}\n止盈价格:{:.2f}\n止损价格:{:.2f}'
.format(symbol, close[-1], lon['lon'].iloc[-1], lon['lonma'].iloc[-1], slpx, tppx))
if lon['lon'].iloc[-1] < 0:
if lon['lon'].iloc[-2] > lon['lonma'].iloc[-2] and lon['lon'].iloc[-1] < lon['lonma'].iloc[-1]:
print('LON指标下穿0轴时做空,市价单卖出')
order.down_cross_order(symbol=symbol, message='LON指标下穿0轴时做空,市价单卖出')
elif lon['lon'].iloc[-1] > 0:
if lon['lon'].iloc[-2] < lon['lonma'].iloc[-2] and lon['lon'].iloc[-1] > lon['lonma'].iloc[-1]:
print('LON指标上穿0轴时做多,市价单买入')
order.up_cross_order(symbol=symbol, message='LON指标上穿0轴时做多,市价单买入')
time.sleep(5)
print("任务结束时间:", time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(time.time())))
print("-----------------------------------v----------------------------------------")
if __name__ == '__main__':
print("-----------------------------------^----------------------------------------")
main()
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)