我需要能夠確定某個特定的「交易」(以「信號」表示)是否通過指示每個贏利或虧損而導致盈利或虧損。如何在Python中對策略進行回溯測試
我需要Python來檢查在高和低列出的下一個位置(signal
或入口點或日期+ 1)(名單:close
,highs
,並lows
將有相同數量的值),以便在輸入信號之外的某個點增加等於或大於2.5%的值。
但是,我還希望Python確定在升值2.5%或更多之前值是否下降3%或更多。
這必須發生在signal
中的每個條目。
從本質上講,我需要一個限價在102.5%出售,止損在97%。
不幸的是,到目前爲止我開發的代碼似乎沒有工作。
我錯過了什麼?
signals = [1,5,7]
close = [5,10,10,10.5,11,12,11.9,14,14,15,16]
highs = [7,10.2,10.1,11,12,12.1,12.2,14.5,18,19,20]
lows = [4,9.9,9.8,10,10,11.8,11.8,12,13.8,13.85,14]
for i in signals:
entry = close[i]
print i
for high in highs[i+1:]:
profit = ((high - entry)/entry) * 100
for low in lows[i+1:]:
loss = ((low - entry)/entry) * 100
if abs(loss) < 3:
if profit >= 2.5:
print 'Win'
else:
print 'Loss'
我該如何解決這個問題? – user1526586 2012-07-23 09:08:04
我需要它來看每個高點,如果一個比入口點高2.5%,而沒有低於2.5%增加點之前的入口點的3%,它將打印出「Win 「。 – user1526586 2012-07-23 09:14:26
@ user1526586:成對?所以如果高[3]高2.5,低[3]低於3%?你的算法不清楚。 – 2012-07-23 09:18:37