引言

一些用户是从通达信等软件上切换过来的,对于掘金框架及python语言不是很了解,很难上手。对此,小编整理了一些基本要点以及一些简单的示例,希望对大家有帮助。

从结构开始说起

通达信这类软件在编写公式之前首先要确定一个频率,是日线级别、分钟级别还是其他级别,然后再定义公式,这个选择的过程对应掘金python语句中的订阅函数(subscribe)。如果在通达信中选择日线频率,在掘金中就订阅’1d’频率。(特别说明,掘金除了bar数据,还支持tick级别的数据,用户可以在更高频率下编写策略)。

def init(context):# 定义标的context.symbol = 'SHSE.600519'# 订阅bar数据,获取成交量subscribe(symbols=context.symbol, frequency='1d', count=2)

确定好标的和频率以后就到了策略的主体部分,在通达信就表示为各种各样的公式,在掘金中需要将这些公式翻译成对应的python语言。公式翻译完成后,将翻译后的逻辑写在on_bar或on_tick里面。

什么是on_bar?

On_bar称为数据推送事件,和订阅函数配套使用,只有订阅了才会触发on_bar。每返回一根新的bar,就会驱动一次。可以将on_bar想象成一根又一根推过来的k线,通达信中的函数是对单根k线使用的,到了掘金中就转化为在on_bar里面编写函数。

一些不同点:

不同点1:通达信和掘金都是对获取的数据进行操作,通达信将其封装成易懂的函数,掘金将其直接暴露出来,让用户对原始数据进行提取、分析等,所以部分通达信函数在python中可以直接以索引形式获得,不需要再编写函数。

这些数据都包含哪些呢?
主要包括以下几个字段:开盘价、收盘价、最高价、最低价、成交额、成交量、持仓量。

这些字段的引用方式:

先用context.data()接口将订阅的数据提取出来,取出是dataframe格式。提取对应的字段用:data[‘字段名’]的形式。

high = data['high']     # 最高价
close = data['close']   # 收盘价
low = data['low']       # 最低价
open = data['open']     # 开盘价

提取出对应字段后发现,取出的数据并非单个数据,而是一列数据,这就出现了另一个引用上的不同之处。

不同点2:

在通达信中有一个REF(N)函数,用来表示滞后N期的数据,REF(CLOSE,1)就表示滞后1期的收盘价。转化到python中,需要用索引的方式直接取出前一期数据。比如:REF(CLOSE,1)在python中表示为CLOSE.iloc[-2],意思为CLOSE的倒数第二个元素,即CLOSE的前一期元素。(因为CLOSE的最后一个元素是当前日期的数据,倒数第二个元素才是前一日的数据,所以选择倒数第二个元素)

Tips : iloc的用法
iloc表示索引引用方法,使用方式为:df.iloc[m,n],表示df第m行n列的数据。如果df是一维数据,则df.iloc[n]表示df第n个数据。

整体结构示例:

举个例子:今天成交量比昨天成交量放大了1倍,则买入1手。

思路:

先确定频率(昨天、今天字样说明频率是日频),则先订阅’1d’的数据。

然后在on_bar里面写逻辑。
首先需要今日成交量、昨日成交量两个数据,直接在data里面获取。
然后写if条件,当满足今天成交量比昨天放大1倍,则开始下单。

最后,运行策略。
完成后就如下图所示:

# 今天成交量比昨天成交量放大了1倍,则买入1手
# 通达信: VOL/REF(VOL,1)>2
# 掘金pythondef init(context):# 定义标的context.symbol = 'SHSE.600519'# 订阅bar数据,获取成交量subscribe(symbols=context.symbol, frequency='1d', count=2)def on_bar(context, bars):data = context.data(symbol=context.symbol, frequency='1d', count=2)    # 获取订阅的数据vol_today = data['volume'].iloc[-1]                                    # 昨日成交量vol_yesterday = data['volume'].iloc[-2]                                # 今日成交量if vol_today/vol_yesterday > 2:order_volume(symbol=context.symbol, volume=100, side=OrderSide_Buy, order_type=OrderType_Market,position_effect=PositionEffect_Open)if __name__ == '__main__':run(strategy_id='请输入你的策略id',filename='main.py',mode=MODE_BACKTEST,token='请输入你的token',backtest_start_time='2020-12-01 08:00:00',backtest_end_time='2020-12-20 15:00:00',backtest_adjust=ADJUST_PREV,backtest_initial_cash=10000000,backtest_commission_ratio=0.0001,backtest_slippage_ratio=0.0001)

这就是一个简单的示例。

还有一些简单的练习,使用者可以参考一下。

# 例1:今天5日均量比昨天的5日均量放大了1倍,则买入1手
# 通达信: AA:=MA(VOL,5)     BB:REF(AA,1)       AA/BB > 2
# 掘金python
def init(context):# 定义标的context.symbol = 'SHSE.600519'# 订阅bar数据,获取成交量subscribe(symbols=context.symbol, frequency='1d', count=6)def on_bar(context, bars):data = context.data(symbol=context.symbol, frequency='1d', count=6)    # 获取订阅的数据vol_today_mean = np.mean(data['volume'].iloc[-1:-5])                                 # 昨日成交量vol_yesterday_mean = np.mean(data['volume'].iloc[-2:-6])                             # 今日成交量if vol_today_mean/vol_yesterday_mean > 2:order_volume(symbol=context.symbol, volume=100, side=OrderSide_Buy, order_type=OrderType_Market,position_effect=PositionEffect_Open)if __name__ == '__main__':run(strategy_id='请输入你的策略id',filename='main.py',mode=MODE_BACKTEST,token='请输入你的token',backtest_start_time='2020-12-01 08:00:00',backtest_end_time='2020-12-20 15:00:00',backtest_adjust=ADJUST_PREV,backtest_initial_cash=10000000,backtest_commission_ratio=0.0001,backtest_slippage_ratio=0.0001)# 例2:连续3天增量1倍以上,则买入1手
# 通达信:EVERY(V>= REF(V,1)*2,3)
# 掘金python
def init(context):# 定义标的context.symbol = 'SHSE.600519'# 订阅bar数据,获取成交量subscribe(symbols=context.symbol, frequency='1d', count=6)def on_bar(context, bars):data = context.data(symbol=context.symbol, frequency='1d', count=6)    # 获取订阅的数据data['vol_change'] = data['volume'] - data.volume.shift(1)             # 计算增量if np.all(data['vol_change'].iloc[-3:] > data.volume.shift(1).iloc[-3:])*2:     # 等价于 EVERY(V>= REF(V,1)*2,3)order_volume(symbol=context.symbol, volume=100, side=OrderSide_Buy, order_type=OrderType_Market,position_effect=PositionEffect_Open)if __name__ == '__main__':run(strategy_id='请输入你的策略id',filename='main.py',mode=MODE_BACKTEST,token='请输入你的token',backtest_start_time='2020-12-01 08:00:00',backtest_end_time='2020-12-20 15:00:00',backtest_adjust=ADJUST_PREV,backtest_initial_cash=10000000,backtest_commission_ratio=0.0001,backtest_slippage_ratio=0.0001)# 例3:涨幅达到7%以上,则买入1手
# 通达信:CLOSE/REF(CLOSE,1) > 1.07
# 掘金python
def init(context):# 定义标的context.symbol = 'SHSE.600519'# 订阅bar数据,获取成交量subscribe(symbols=context.symbol, frequency='1d', count=2)def on_bar(context, bars):data = context.data(symbol=context.symbol, frequency='1d', count=2)       # 获取订阅的数据data['price_change'] = data['close'] - data['close'].shift(1)             # 计算涨幅或跌幅if data['price_change'].iloc[-1] > 0.07:     # 等价于 CLOSE/REF(CLOSE,1) > 1.07order_volume(symbol=context.symbol, volume=100, side=OrderSide_Buy, order_type=OrderType_Market,position_effect=PositionEffect_Open)if __name__ == '__main__':run(strategy_id='请输入你的策略id',filename='main.py',mode=MODE_BACKTEST,token='请输入你的token',backtest_start_time='2020-12-01 08:00:00',backtest_end_time='2020-12-20 15:00:00',backtest_adjust=ADJUST_PREV,backtest_initial_cash=10000000,backtest_commission_ratio=0.0001,backtest_slippage_ratio=0.0001)# 例4:向上跳空,则买入1手
# 通达信:OPEN>REF(HIGH,1)
# 掘金python
def init(context):# 定义标的context.symbol = 'SHSE.600519'# 订阅bar数据,获取成交量subscribe(symbols=context.symbol, frequency='1d', count=2)def on_bar(context, bars):data = context.data(symbol=context.symbol, frequency='1d', count=2)       # 获取订阅的数据if data['open'].iloc[-1] > data['close'].iloc[-2]:   # 等价于 OPEN>REF(HIGH,1)order_volume(symbol=context.symbol, volume=100, side=OrderSide_Buy, order_type=OrderType_Market,position_effect=PositionEffect_Open)if __name__ == '__main__':run(strategy_id='请输入你的策略id',filename='main.py',mode=MODE_BACKTEST,token='请输入你的token',backtest_start_time='2020-12-01 08:00:00',backtest_end_time='2020-12-20 15:00:00',backtest_adjust=ADJUST_PREV,backtest_initial_cash=10000000,backtest_commission_ratio=0.0001,backtest_slippage_ratio=0.0001)# 例5:收盘价 > 1日前的25日内收盘价的最低值,则买入1手
# 通达信:c > ref(llv(c,25),1)
# 掘金python
def init(context):# 定义标的context.symbol = 'SHSE.600519'# 订阅bar数据,获取成交量subscribe(symbols=context.symbol, frequency='1d', count=25)def on_bar(context, bars):data = context.data(symbol=context.symbol, frequency='1d', count=25)       # 获取订阅的数据if data['close'].iloc[-1] <= data['close'].iloc[-2:].min():   # 等价于c > ref(llv(c,25),1)order_volume(symbol=context.symbol, volume=100, side=OrderSide_Buy, order_type=OrderType_Market,position_effect=PositionEffect_Open)if __name__ == '__main__':run(strategy_id='请输入你的策略id',filename='main.py',mode=MODE_BACKTEST,token='请输入你的token',backtest_start_time='2020-12-01 08:00:00',backtest_end_time='2020-12-20 15:00:00',backtest_adjust=ADJUST_PREV,backtest_initial_cash=10000000,backtest_commission_ratio=0.0001,backtest_slippage_ratio=0.0001)# 例6:横盘整理时(10日收盘价振幅在5%以内波动)清仓
# 通达信:(HHV(CLOSE,10)-LLV(CLOSE,10))/CLOSE < 0.05
# 掘金python
def init(context):# 定义标的context.symbol = 'SHSE.600519'# 订阅bar数据,获取成交量subscribe(symbols=context.symbol, frequency='1d', count=10)def on_bar(context, bars):data = context.data(symbol=context.symbol, frequency='1d', count=10)            # 获取订阅的数据(最近10日)if (data['close'].max() - data['close'].min())/data['close'].iloc[-1] < 0.05:     # (HHV(CLOSE,10)-LLV(CLOSE,10))/CLOSE < 0.05order_target_volume(symbol=context.symbol, volume=0, position_side=PositionSide_Long,order_type=OrderType_Market)if __name__ == '__main__':run(strategy_id='请输入你的策略id',filename='main.py',mode=MODE_BACKTEST,token='请输入你的token',backtest_start_time='2020-12-01 08:00:00',backtest_end_time='2020-12-20 15:00:00',backtest_adjust=ADJUST_PREV,backtest_initial_cash=10000000,backtest_commission_ratio=0.0001,backtest_slippage_ratio=0.0001)# 例7:阴转阳,买入1手
# 通达信公式:ref(c,1) < ref(o,1) and c > 0
# 掘金python:
def init(context):# 定义标的context.symbol = 'SHSE.600519'# 订阅bar数据,获取成交量subscribe(symbols=context.symbol, frequency='1d', count=2)def on_bar(context, bars):data = context.data(symbol=context.symbol, frequency='1d', count=2)            # 获取订阅的数据(最近10日)if (data['close'].iloc[-2] < data['open'].iloc[-2]) and \(data['close'].iloc[-1] > data['open'].iloc[-1]):     # (HHV(CLOSE,10)-LLV(CLOSE,10))/CLOSE < 0.05order_volume(symbol=context.symbol, volume=100, side=OrderSide_Buy, order_type=OrderType_Market,position_effect=PositionEffect_Open)if __name__ == '__main__':run(strategy_id='请输入你的策略id',filename='main.py',mode=MODE_BACKTEST,token='请输入你的token',backtest_start_time='2020-12-01 08:00:00',backtest_end_time='2020-12-20 15:00:00',backtest_adjust=ADJUST_PREV,backtest_initial_cash=10000000,backtest_commission_ratio=0.0001,backtest_slippage_ratio=0.0001)# 例8:当前价格上穿20日均线,买入1手
# 通达信公式:cross(c,ma(c,20))
# 掘金python:
def init(context):# 定义标的context.symbol = 'SHSE.600519'# 订阅bar数据,获取成交量subscribe(symbols=context.symbol, frequency='1d', count=21)def on_bar(context, bars):data = context.data(symbol=context.symbol, frequency='1d', count=21)            # 获取订阅的数据(最近21日)data['MA20'] = data['close'].rolling(20).mean()if (data['close'].iloc[-1] > data['MA20'].iloc[-1]) and (data['close'].iloc[-2] < data['MA20'].iloc[-2]):  # cross(c,ma(c,20))order_volume(symbol=context.symbol, volume=100, side=OrderSide_Buy, order_type=OrderType_Market,position_effect=PositionEffect_Open)if __name__ == '__main__':run(strategy_id='请输入你的策略id',filename='main.py',mode=MODE_BACKTEST,token='请输入你的token',backtest_start_time='2020-12-01 08:00:00',backtest_end_time='2020-12-20 15:00:00',backtest_adjust=ADJUST_PREV,backtest_initial_cash=10000000,backtest_commission_ratio=0.0001,backtest_slippage_ratio=0.0001)# 例9:金叉买入:5日均线上穿20日均线,买入1手
# 通达信公式:cross(ma(c,5),ma(c,20))
# 掘金python:
def init(context):# 定义标的context.symbol = 'SHSE.600519'# 订阅bar数据,获取成交量subscribe(symbols=context.symbol, frequency='1d', count=21)def on_bar(context, bars):data = context.data(symbol=context.symbol, frequency='1d', count=21)             # 获取订阅的数据(最近21日)data['MA5'] = data['close'].rolling(5).mean()                                    # 求5日均线data['MA20'] = data['close'].rolling(20).mean()                                  # 求20日均线if (data['MA5'].iloc[-1] > data['MA20'].iloc[-1]) and (data['MA5'].iloc[-2] < data['MA20'].iloc[-2]):    # 等价cross(ma(c,5),ma(c,20))order_volume(symbol=context.symbol, volume=100, side=OrderSide_Buy, order_type=OrderType_Market,position_effect=PositionEffect_Open)if __name__ == '__main__':run(strategy_id='请输入你的策略id',filename='main.py',mode=MODE_BACKTEST,token='请输入你的token',backtest_start_time='2020-12-01 08:00:00',backtest_end_time='2020-12-20 15:00:00',backtest_adjust=ADJUST_PREV,backtest_initial_cash=10000000,backtest_commission_ratio=0.0001,backtest_slippage_ratio=0.0001)# 例10:下影线长于上影线,买入1手
# 通达信公式:(c-l) > (h-c)
# 掘金python:
def init(context):# 定义标的context.symbol = 'SHSE.600519'# 订阅bar数据,获取成交量subscribe(symbols=context.symbol, frequency='1d', count=10)def on_bar(context, bars):data = context.data(symbol=context.symbol, frequency='1d', count=10)             # 获取订阅的数据(最近21日)if (data['close'].iloc[-1] - data['low'].iloc[-1] > data['high'].iloc[-1] - data['close'].iloc[-1]) > 0:# 等价于 (c-l) > (h-c)order_volume(symbol=context.symbol, volume=100, side=OrderSide_Buy, order_type=OrderType_Market,position_effect=PositionEffect_Open)if __name__ == '__main__':run(strategy_id='请输入你的策略id',filename='main.py',mode=MODE_BACKTEST,token='请输入你的token',backtest_start_time='2020-12-01 08:00:00',backtest_end_time='2020-12-20 15:00:00',backtest_adjust=ADJUST_PREV,backtest_initial_cash=10000000,backtest_commission_ratio=0.0001,backtest_slippage_ratio=0.0001)# 例11:乌云压顶则清仓
# 通达信公式:
# AA:=REF(C,1) > REF(O,1)  # 昨日收阳
# BB:=O>REF(C,1)  # 高开
# CC:=C<(REF(C,1)-REF(O,1))/2+REF(O,1)  # 盖顶低收
# DD:IF(AA AND BB AND CC,1,0)
# 掘金python:
def init(context):# 定义标的context.symbol = 'SHSE.600519'# 订阅bar数据,获取成交量subscribe(symbols=context.symbol, frequency='1d', count=2)def on_bar(context, bars):data = context.data(symbol=context.symbol, frequency='1d', count=2)             # 获取订阅的数据(最近2日)if (data['close'].iloc[-2] > data['open'].iloc[-2]) and \(data['open'].iloc[-1] > data['close'].iloc[-2]) and \(data['close'].iloc[-1] < ((data['close'].iloc[-2] - data['open'].iloc[-2])/2 + data['open'].iloc[-2])):order_target_volume(symbol=context.symbol, volume=0, position_side=PositionSide_Long,order_type=OrderType_Market)if __name__ == '__main__':run(strategy_id='请输入你的策略id',filename='main.py',mode=MODE_BACKTEST,token='请输入你的token',backtest_start_time='2020-12-01 08:00:00',backtest_end_time='2020-12-20 15:00:00',backtest_adjust=ADJUST_PREV,backtest_initial_cash=10000000,backtest_commission_ratio=0.0001,backtest_slippage_ratio=0.0001)# 例12:双均线选股
# 通达信公式:
# MA1: = MA(CLOSE,5)
# MA2: = MA(CLOSE,10)
# XG: C > 1.005 * MA2 AND CROSS(MA1,MA2) AND MA1 > MA2
# 掘金python:
def init(context):# 定义标的context.symbol = 'SHSE.600519'# 订阅bar数据,获取成交量subscribe(symbols=context.symbol, frequency='1d', count=20)def on_bar(context, bars):data = context.data(symbol=context.symbol, frequency='1d', count=20)             # 获取订阅的数据(最近20日)close = data['close']# 利用talib库计算长短周期均线ma1 = talib.SMA(close.values.reshape(20), 5)ma2 = talib.SMA(close.values.reshape(20), 10)# 如果满足条件,则买入100股if (close.iloc[-1] > 1.005 * ma2.iloc[-1]) and (ma1.iloc[-2] < ma2.iloc[-2])\and (ma1.iloc[-1] > ma2.iloc[-1]):order_volume(symbol=context.symbol, volume=100, side=OrderSide_Buy, order_type=OrderType_Market,position_effect=PositionEffect_Open)if __name__ == '__main__':run(strategy_id='请输入你的策略id',filename='main.py',mode=MODE_BACKTEST,token='请输入你的token',backtest_start_time='2020-12-01 08:00:00',backtest_end_time='2020-12-20 15:00:00',backtest_adjust=ADJUST_PREV,backtest_initial_cash=10000000,backtest_commission_ratio=0.0001,backtest_slippage_ratio=0.0001)#例13:黄昏之星出现,平仓
#通达信公式:
# a1:=open
# a2:=close
# a3:=high
# b1:=ref(open,1)
# b2:=ref(close,1)
# b3:=ref(high,1)
# b4:=ref(low,1)
# c1:=ref(open,2)
# c2:=ref(close,2)
# c3:=ref(high,2)
# c4:=ref(low,2)
# aa:=a1<b2 and a1/a2>1.04
# bb:=b1>c3 and b2>c3 and abs(b1-b2)/b1<0.01 and b3>b1 and # b3>b2 and b4<b1 and b4<b2 and b3=hhv(high,20)
# cc:=c2/ref(close,3)>1.04 and c2>c1
# aa and bb and cc
# 掘金python:
def init(context):# 定义标的context.symbol = 'SHSE.600519'# 订阅bar数据,获取成交量subscribe(symbols=context.symbol, frequency='1d', count=3)def on_bar(context, bars):data = context.data(symbol=context.symbol, frequency='1d', count=3)             # 获取订阅的数据(最近20日)# 提取a1,a2,a3,b1,b2,b3,b4,c1,c2,c3,c4a1 = data['open'].iloc[-1]a2 = data['close'].iloc[-1]b1 = data['open'].iloc[-2]b2 = data['close'].iloc[-2]b3 = data['high'].iloc[-2]b4 = data['low'].iloc[-2]c1 = data['open'].iloc[-3]c2 = data['close'].iloc[-3]c3 = data['high'].iloc[-3]# 如果满足条件,则买入100股if (a1 < b2) and (a1/a2 > 1.04) and \(b1 > c3) and (b2 > c3) and (np.abs(b1-b2)/b1 < 0.01) and (b3 > b1) and (b4 < b1) and (b4 < b2) and (b3 == data['high'].iloc[-20:]) \and (c2/data['close'].iloc[-4] > 1.04) and (c2 > c1):order_volume(symbol=context.symbol, volume=100, side=OrderSide_Buy, order_type=OrderType_Market,position_effect=PositionEffect_Open)if __name__ == '__main__':run(strategy_id='请输入你的策略id',filename='main.py',mode=MODE_BACKTEST,token='请输入你的token',backtest_start_time='2020-12-01 08:00:00',backtest_end_time='2020-12-20 15:00:00',backtest_adjust=ADJUST_PREV,backtest_initial_cash=10000000,backtest_commission_ratio=0.0001,backtest_slippage_ratio=0.0001)# 例14:突破底部横盘整理创新高——买入100股
# 对应通达信公式
# V1:=MA(VOL,5);
# V2:=VOL/REF(V1,1)>2;
# PZ1:=MA(CLOSE,M);
# PZ2:=HHV(HIGH,M);
# PZ3:=LLV(LOW,M);
# PZ4:=(PZ2-PZ1)/PZ1;
# PZ5:=(PZ1-PZ3)/PZ1;
# PZ:=REF(PZ4,1)<0.15 AND REF(PZ5,1)<0.15;
# TP1:HHV(HIGH,M);
# TP:=HIGH=TP1;
# V2 AND PZ AND TP;
# 掘金python:
def init(context):# 定义标的context.symbol = 'SHSE.600519'# 订阅bar数据,获取成交量subscribe(symbols=context.symbol, frequency='1d', count=200)def on_bar(context, bars):data = context.data(symbol=context.symbol, frequency='1d', count=200)# 计算今量/昨日的5日均量v2 = data['volume'].iloc[-1]/np.mean(data['volume'].iloc[-6:-1])# 计算昨日150日最高价和150日均价的距离的百分比pz1 = np.mean(data['close'].iloc[-151:-1])  # 昨日的150日均价pz2 = np.max(data['high'].iloc[-151:-1])    # 昨日的150日最高价pz3 = np.max(data['high'].iloc[-151:-1])    # 昨日的150日最低价pz4 = (pz2-pz1)/pz1pz5 = (pz1-pz3)/pz1# 进入判断条件:V2 AND PZ AND TPif (v2 > 2) and (pz4 < 0.15) and (pz5 < 0.15) and (data['high'].iloc[-1] == np.max(data['high'].iloc[-151:-1])):order_volume(symbol=context.symbol, volume=100, side=OrderSide_Buy, order_type=OrderType_Market,position_effect=PositionEffect_Open)if __name__ == '__main__':run(strategy_id='请输入你的策略id',filename='main.py',mode=MODE_BACKTEST,token='请输入你的token',backtest_start_time='2020-12-01 08:00:00',backtest_end_time='2020-12-20 15:00:00',backtest_adjust=ADJUST_PREV,backtest_initial_cash=10000000,backtest_commission_ratio=0.0001,backtest_slippage_ratio=0.0001)

来源:掘金量化社区   作者:四两

【掘金使用技巧7】如何从通达信等迁移到掘金相关推荐

  1. 通达信交易接口API获取数据源码分享

    在通达信交易接口下单之前,如何去了解快速获取交易数据呢?要是即使下单了,也不知道如何去查询,然后不管不问,等到需要你去止损了,你才回想起来去操作,这是很容易吃亏的做法的.在股票量化交易过程中,我们不仅 ...

  2. c#给按钮添加链接_通达信软件添加外部链接的技巧

    所谓工欲善其事,必先利其器.熟练的使用炒股软件可以大大的提升看盘的效率,节约很多的看盘的时间. 大家看下面这张图,这是绝大部分股民都在使用的行情软件:通达信.几乎所有的券商都提供这个软件给股民来看行情 ...

  3. 代码下移快捷键_收藏细看!最全面的通达信快捷键一览

    壹.通达信网上交易软件快捷键分为四种 数字键:比如1,61,81,10,91等 点系列键:比如.101,.201,.301.... .909等 功能键:比如F1,F2... 空格键,减号键,TAB等 ...

  4. c语言股价连续上涨的天数,为什么通达信没有连涨天数,我的通达信怎么没有连涨天数显示...

    Q1::我的通达信怎么没有连涨天数显示 这个需要自己数的,连涨中可能还包含"真阴假阳" Q2::通达信条件选股如何设置? 条件连续上涨三天,涨幅2%以下,谢谢 条件选股------ ...

  5. python 通达信公式函数,481009_易基策略二号

    481009_易基策略二号 所以我们在分时图走势变化的情况下,当个股经常性的出现尾盘的拉升的情况,特别是尾盘拉升后,下一个交易日还出现盘中拉升后股价继续下跌的情况,基本上可以断定是庄家出货造成的,而在 ...

  6. 【掘金使用技巧8】用掘金编写常用技术指标

    来源:掘金量化社区     作者:四两       原文链接:https://bbs.myquant.cn/topic/2050 掘金中缺少一些常用的技术指标函数,但在编写策略时,免不了要用到指数指标 ...

  7. 自己做量化交易软件(33)小白量化实战7--投资理念与通达信公式回测(1)

    自己做量化交易软件(33)小白量化实战7–投资理念与通达信公式回测(1) 什么是投资理念?我们先给大家讲个小故事. 从前,有个郑国人,打算到集市上买双鞋穿.他先把自己脚的长短量了一下,做了一个尺子.可 ...

  8. matlab 读取 通达信,Matlab 自动导入通达信板块文件

    http://blog.sina.com.cn/s/blog_d6c58efd0102x0gx.html 通达信具有强大的板块处理能力,并且一些板块数据是动态更新的,做股票量化设计的时候,借助通达信的 ...

  9. 通达信dll接口怎么调用?

    大家是否了解过通达信dll接口也是可以用来传输自己的需求策略,其实是可以在接口修改本身的dll来调用,实现程序化交易.那么,在众多的量化投资领域方面,我们需要的是不断提高自己的技巧水平,才能掌握通达信 ...

最新文章

  1. verilog中有符号数运算
  2. 为什么谐振时电抗为0_220KV/110KVCVT互感器串联谐振试验装置技术方案
  3. 客户端跳转代码html5,HTML5跳转小程序wx-open-launch-weapp的示例代码
  4. native react 折线图_react native中使用echarts
  5. Angular(build打包)报错:supplied parameters do not match any signature of call target
  6. 专有网络(VPC)的六大应用场景
  7. 【需求工程】需求分析的5W1H8C1D方法
  8. Django day 36 支付宝支付,微信推送
  9. bzoj1612 奶牛的比赛
  10. 【HUST】网安|计算机网络安全实验|实验二 DNS协议漏洞利用实验
  11. 利用lavarel框架实现Todos App
  12. 激荡十年:云计算的过去、现在和未来
  13. easyui Datagrid的deleteRow多行移除问题
  14. 计算机组成原理随堂作业,2019-华南理工-计算机组成原理-随堂作业
  15. 利用jpedal进行pdf转换成jpeg,jpg,png,tiff,tif等格式的图片
  16. vue keyup不起作用
  17. 网站敏感骂人词库及算法(附6仟个敏感词)
  18. CentOS 7.5 编译安装redis集成至系统服务(包括集群环境)
  19. Contest1065 - 第四届“图灵杯”NEUQ-ACM程序设计竞赛(个人赛)A蔡老板的会议
  20. 《计算机视觉和图像处理简介 - 中英双语 + 代码实践版》:基于PyTorch Softmax 进行 MNIST 手写数字分类【Digit Classification with Softmax】

热门文章

  1. 3dmark android 中文,貌似不靠谱,Android平台3DMark测试版初体验
  2. 基于KCP的可靠UDP封装
  3. 全景拍摄—相机设置教程
  4. C++ 算电费 题解
  5. 终于有人把Web 3.0和元宇宙讲明白了
  6. 1.在表格中操作时间,对时间格式转化,2.自定义规则验证身份证号
  7. 深入浅出:JWT(JSON Web Token)鉴权
  8. 2021-09-10 简单的音乐节奏游戏实现
  9. 2020年8月-北京-百度度小满面试题(已offer)
  10. 左程云 - 大厂刷题班 - 摆砖块