2016-10-17 10 views
0

私は毎日株式のリストの価格の変化をランク付けするためにアルゴを書いています。今私はAppleとAmexの2つの株式で働いています。私は、価格の変化が最も大きいものから、価格の変化が最も少ないものまでランク付けしたいと思います。ランキング日々の価格変動

1日目:

AAPL = 60.40

AMX = 15.50

2日目:

AAPL = 61.00

例えば

はデータ私はこのようなルックスを持っています

AMX = 15.60

私はこのように見えるようにしたいと思います。これは可能ですか?

変更:

AAPLchg = 0.60ランク1

AMXchg = 0.10ランク2

これは私がこれまで持っているものです。

def handle_data(context, data): 
price_history = data.history(context.security_list, "price", bar_count=2, frequency="1d") 
for s in context.security_list: 
    PrevAMX = price_history[sid(679)][-2] 
    CurrAMX = price_history[sid(679)][1] 
    PrevAAPL = price_history[sid(24)][-2] 
    CurrAAPL = price_history[sid(24)][1] 
    AMXchg = CurrAMX - PrevAMX 
    AAPLchg = CurrAAPL - PrevAAPL 
    if AMXchg < AAPLchg: 
     order(sid(679), 20) 
    if AAPLchg < AMXchg: 
     order(sid(24), 20) 


price_history = data.history(context.security_list, "price", 20, "1d") 
print price_history.mean() 
print AMXchg 
print AAPLchg 
print log.info(str(context.chg_list.sort('adv_rank', descending=True).head())) 
+0

確かに、あなたはこれまでに何を試しましたか?今、答えが多すぎます。 – MooingRawr

+0

context.chg_list = [AMXchg、AAPLchg] price_history = data.history(context.security_list、 "価格"、20、 "1D") 印刷price_history.mean() 印刷AMXchg 印刷AAPLchg 印刷log.info (str(context.chg_list.sort( 'adv_rank'、descending = True).head())) –

+0

あなたの質問を編集して、コメントではなく正しい書式で試したものを含めてください。 – MooingRawr

答えて

0

は、あなたが価格を持っていると言います辞書では、これを行うことができます:

yesterday = { 
    'AAPL': 60.40, 
    'AMX': 15.50, 
} 

today = { 
    'AAPL': 61.00, 
    'AMX': 15.60, 
} 

change = {k: today[k] - yesterday[k] for k in today} 

sorted_stocks = sorted(change, key=change.get, reverse=True) 

for ss in sorted_stocks: 
    print('%s: %.2f' % (ss, change[ss])) 
+0

私はこれまでのものを示すために上記のコードを追加しました。私は正しい軌道に乗ることを願っています... –

+0

K、ssと '%s:%.2f'は何を表しますか? –

関連する問題