Python言語に触れよう!④(OANDAチャート取得編②)

FX自動売買

ドル円が去年以来の高値を更新しましたね。
皆さんおはこんばんちは。波乗り投資法ゆえにトレンドが発生しないと大損し続けるchibamaxです。

今回はOANDAデモ口座で為替レートを取得しよう!(詳細編)というテーマです。

前回でやっとチャートを取得できるようになったけどもう頭がパンパンよ…

慣れないことを始めると最初は全然頭に入ってきませんよね。。。

大事なことは諦めずに時間をかけて簡単なものから徐々に慣れていくことだと言えます。

今回は取得した為替レートからプログラムを作る方法を紹介しています。

★前回記事

通貨ペアコード

前回はドル円のチャートを取得するというものでしたが、実際は自分の取引したい通貨ペアで実行することになります。

instrument="USD_JPY"

この”USD_JPY”部分を変更することによって他ペアになります。

クロス円一覧です。

"EUR_JPY" #ユーロ円
"GBP_JPY" #英ポンド円
"AUD_JPY" #豪ドル円
"NZD_JPY" #NZドル円
"CAD_JPY" #カナダドル円
"CHF_JPY" #スイスフラン円
"ZAF_JPY" #南アフリカランド円

OANDAで取り扱っている通貨ペアであれば何でもできます。
2020/02現在、71ペアあります。

71個もの通貨ペアで取引することができるのね。

if文を使いこなそう

プログラミングの基礎とも言えるif文は条件分岐の構文です。
恐らく一番多用することになるので覚えておいて損はないです。

from oandapyV20 import API
import oandapyV20.endpoints.instruments as instruments

# OANDA API アクセストークンと口座ID
accountID = ""
access_token = ""

# OANDA APIのデモ用へ接続 本番はenvironment="live"
api = API(access_token=access_token, environment="practice")
pair = "USD_JPY"
chart = {
    "alignmentTimezone": "Japan",
    "count": 1,
    "granularity": "H1"
}

chart = instruments.InstrumentsCandles(instrument=pair, params=chart)
api.request(chart)

time = []
open = []
high = []
low = []
close = []

for i in chart.response['candles']:
    time.append(i["time"])
    open.append(i['mid']['o'])
    high.append(i['mid']['h'])
    low.append(i['mid']['l'])
    close.append(i['mid']['c'])

if float(close[0]) > 100: #100円より上
    print("円安 現在のレート:{}".format(close[0]))

else: #100円以下
    print("円高 現在のレート:{}".format(close[0]))

チャート取得のコードに100円境に円安、円高を判断するif文を追加しました。

if float(close[0]) > 100:
    print("円安 現在のレート:{}".format(close[0]))

else:
    print("円高 現在のレート:{}".format(close[0]))

実行すると

レートチェック

現在は111円代なので円安と出ました。
もし99円代に入れば円高と表示されます。

3つ以上の条件分岐を作ることもできます。

if float(close[0]) < 100: #100円より下
    print("100円を下回りました 現在のレート:{}".format(close[0]))

elif float(close[0]) < 80: #80円より下
    print("80円を下回りました 現在のレート:{}".format(close[0]))

elif float(close[0]) < 75.54: #75.54円より下
    print("過去最低値を更新しました 現在のレート:{}".format(close[0]))

else: #上記以外
    print("100円を超えました 現在のレート:{}".format(close[0]))

二個目以降は全てがelifとなります。

if文はプログラムの基本で、自動売買botを作るには欠かせないものなのね。

関係演算子

レートや数値を扱う場合、大なりや小なりなどの関係演算子(比較演算子)は必ず使うことなります。
Python上で主に使うのは以下の演算子です。

a == b #a=b
a != b #a≠b
a > b #aはbより大きい
a >= b #aはb以上
a < b #aはbより小さい
a <= b #aはb以下
a is b #aとbのオブジェクトが同じ
a is not b #aとbのオブジェクトが異なる
a in b #aがbに含まれる
a not in b #aがbに含まれない

3つ以上の組み合わせも可能です。

a > b > c

a > b < c #bはaとcより小さい

数値を扱うときに関係演算子は必須とも言えるわね。

論理演算子

論理演算子のand or notを使えば、関係演算子を複数使うこともできます。

if a == b and c == d: #a=bかつc=d

if a == b or c == d: #a=bもしくはc=d

if not a == b: #a=bではない

3つ以上の組み合わせもできます。

if a == b and c == d and e == f: #a=bかつc=dかつe=f

if a == b and c == d or e == f: #a=bかつc=dもしくはe=f

論理演算子には優先順位があります。
not > and > or

if a == b and not a == b:

上記の矛盾が生まれるコードでは「a≠bの場合」がTrue(真の条件)となります。

関係演算子をいくつも組み合わせることができるけど、優先順位に注意する必要があるのね。

まとめ

いかがでしたでしょうか?

OANDAでは多くの通貨ペアを取り扱っています。
取得したレートから関係演算子を利用して様々なことができます。
複雑なプログラムも関係演算子や論理演算子を組み合わせていくことによって作られているのですね。

にほんブログ村 投資ブログへ
投資の素晴らしさを皆さんに知ってもらいたいので、ブログ村の応援クリックよろしくお願い致します。

コメント

タイトルとURLをコピーしました