2017-08-01 20 views
1

私はトレーディング戦略のモデリングに興味があるので、戦略をシミュレートするためにPythonを使用しようとしました。私はこれを最初から書いており、それを実行するときにいくつかの問題があります。私は左の購買力と私が持ってい株式を保存するためにcashholdingリストを使用forループの反復でメソッドが間違った値を返す

def strategy(strain, date, cash, holding): 
    def order(strain, amount, date, cash, holdling): 
     cash[date]=cash[date-1] - strain[date-1]*amount 
     holding[date]=holding [date-1] + amount 
     return 
    amount = int(cash[0]*0.1/strain[date-1]) 
    cash.append(cash[date-1]) 
    holding.append(holding[date-1]) 
    if (#some strategy) : order(strain, amount, date, cash, holding) 
    return cash, holding 
def main(): 
    cash = [1000000,1000000] 
    holding = [0,0] 
    total = [] 
    new = #an array of time series data 
    day = len(new) 
    Time = np.arange(2, day-20, 1) 
    for j in np.arange(2, day-20, 1): 
     **cash, holding = strategy (new, j, cash, holding)** 
     count = cash[j-1] + holding[j-1]*new[j-1] 
     count = count/1000000 
     total.append(count) 
    plt.plot(Time, total, 'r', label='return')   
if __name__ == "__main__": 
    main() 

totalリストを使用してリターンを格納します。私がストラテジメソッドで定義したように、最初にcashholdingの新しい要素を前の要素と同じにするように付け加え、注文する信号がトリガされた場合は、メソッドが呼び出され、新しい要素が置き換えられます。しかし、私がコードを実行した後、cashtotalは何らかの形で初期値1000000と1に戻ってしまいます。

cash, holding = strategy (new, j, cash, holding)に間違いがありますか?あなたは引数を渡すと、それらを修正することなく、変更がcashは新しい要素で更新された場合でも保持に反映されなかった理由であること、それらを返していなかったし、あなたのorder機能で

the plot

+3

これは、読者がボランティアよりも読んで理解できるコードです。具体的な質問があれば、[最小限の、完全で検証可能な例](https://stackoverflow.com/help/mcve)を提供してください。 – pingul

+0

何も返ってこないという問題があります。 'order'関数 –

答えて

0

def strategy(strain, date, cash, holding): 
    def order(strain, amount, date, cash, holdling): 
     cash[date]=cash[date-1] - strain[date-1]*amount 
     holding[date]=holding [date-1] + amount 
     return cash, holding 
    amount = int(cash[0]*0.1/strain[date-1]) 
    cash.append(cash[date-1]) 
    holding.append(holding[date-1]) 
    if (#some strategy) :. 
     cash, holding = order(strain, amount, date, cash, holding) 
    return cash, holding 
+0

が表示されます。助けてくれてありがとう! –

関連する問題