質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Q&A

解決済

1回答

397閲覧

rubyプログラム実行中に発生するエラーの解決方法を教えてください。

financal-site

総合スコア13

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

0グッド

0クリップ

投稿2019/02/09 13:16

下記のビットコイントレードのプログラムを実行中に一定時間が経過するとエラーが発生してしまいます。
途中でapiに接続できなくなったということかと思いますが、
何か解決方法はあるのでしょうか?

発生している問題・エラーメッセージ

Traceback (most recent call last): 11: from bitcoin_trade.rb:9:in `<main>' 10: from bitcoin_trade.rb:9:in `loop' 9: from bitcoin_trade.rb:22:in `block in <main>' 8: from /Users/workspace/bitcoin_trade/method.rb:143:in `getcollateral' 7: from /Users/.rbenv/versions/2.5.0/lib/ruby/2.5.0/net/http.rb:1455:in `request' 6: from /Users/.rbenv/versions/2.5.0/lib/ruby/2.5.0/net/http.rb:909:in `start' 5: from /Users/.rbenv/versions/2.5.0/lib/ruby/2.5.0/net/http.rb:920:in `do_start' 4: from /Users/.rbenv/versions/2.5.0/lib/ruby/2.5.0/net/http.rb:935:in `connect' 3: from /Users/.rbenv/versions/2.5.0/lib/ruby/2.5.0/timeout.rb:103:in `timeout' 2: from /Users/.rbenv/versions/2.5.0/lib/ruby/2.5.0/timeout.rb:93:in `block in timeout' 1: from /Users/.rbenv/versions/2.5.0/lib/ruby/2.5.0/net/http.rb:936:in `block in connect' /Users/.rbenv/versions/2.5.0/lib/ruby/2.5.0/net/http.rb:939:in `rescue in block in connect': Failed to open TCP connection to api.bitflyer.com:443 (No route to host - connect(2) for "api.bitflyer.com" port 443) (Errno::EHOSTUNREACH)

該当のソースコード

ruby

1require "./method" 2require "date" 3 4# トリガー出来高 5@v = 30 6# トレーリング幅 7@margin = 500 8 9loop do 10 # 約定データの有無確認 11 getexecutions 12 if @length != 0 13 # データがある場合、自身の建玉一覧取得 14 getpositions 15 if @getpositions_hash.empty? 16 # 建玉がない場合、出来高合計値を算出 17 volume = 0 18 for i in 0..@length-1 19 volume = volume + @getexecutions_hash[i]["size"] 20 end 21 # 直近の出来高が一定数量以上の場合、新規建て注文を発注する 22 getcollateral 23 if volume > @v 24 # 最新価格と最古価格の価格差算出 25 price_margin = @getexecutions_hash[0]["price"]-@getexecutions_hash[@length-1]["price"] 26 # 価格差がプラスの場合、買建て注文発注 27 getboard 28 if price_margin > 0 29 buy 30 @settlement_price = @getboard_hash["mid_price"] - @margin 31 print Time.now,"/新規買/直近価格:",@getboard_hash["mid_price"],"円/証拠金:",@collateral = @getcollateral_hash["collateral"],"円" 32 puts "" 33 sleep(2) 34 # 価格差がマイナスの場合、売建て注文発注 35 elsif price_margin < 0 36 sell 37 @settlement_price = @getboard_hash["mid_price"] + @margin 38 print Time.now,"/新規売/直近価格:",@getboard_hash["mid_price"],"円/証拠金:",@collateral = @getcollateral_hash["collateral"],"円" 39 puts "" 40 sleep(2) 41 end 42 end 43 # 建玉がある場合 44 else 45 # sideに応じて決済注文発注 46 # 売り決済 47 getboard 48 if @getpositions_hash[0]["side"] == "BUY" 49 if @settlement_price > @getboard_hash["mid_price"] 50 sell 51 print Time.now,"/売決済/直近価格:",@getboard_hash["mid_price"],"円" 52 sleep(2) 53 getcollateral 54 print "/証拠金:",@getcollateral_hash["collateral"],"円/損益:",@getcollateral_hash["collateral"]-@collateral 55 puts "" 56 else 57 if @settlement_price + @margin < @getboard_hash["mid_price"] 58 print Time.now,",",@settlement_price = @getboard_hash["mid_price"] - @margin,"円" 59 puts "" 60 end 61 end 62 # 買い決済の場合 63 else 64 if @settlement_price < @getboard_hash["mid_price"] 65 buy 66 print Time.now,"/買決済/直近価格:",@getboard_hash["mid_price"],"円" 67 sleep(2) 68 getcollateral 69 print "/証拠金:",@getcollateral_hash["collateral"],"円/損益:",@getcollateral_hash["collateral"]-@collateral 70 puts "" 71 else 72 if @settlement_price - @margin > @getboard_hash["mid_price"] 73 print Time.now,",",@settlement_price = @getboard_hash["mid_price"] + @margin,"円" 74 puts "" 75 end 76 end 77 end 78 end 79 end 80 sleep(2) 81end 82

試したこと

ここに問題に対して試したことを記載してください。

補足情報(FW/ツールのバージョンなど)

プログラムの内容はbitflyerのapiを使って、一定期間の取引量がトリガーを超えたら注文を出し、条件に当てはまれば決済をするというプログラムです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

エラーメッセージを見る限り、ネットワーク的な原因ですね。プログラムの問題では無いと思います。

投稿2019/02/09 14:20

otn

総合スコア84555

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

financal-site

2019/02/11 00:43

回答ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問