売買シグナルのpythonコードの解説です。data["close_price"]time.sleep(10)かなり長いので部分的に順番に説明してきます。timeCryptowatchのAPIを使うために、「requests」ライブラリをインポートしています。APIで取得したタイムスタンプ(UNIX時間)を人間の読める時間に変換するために、「datetime」ライブラリをインポートします。「time」ライブラリは、sleep()という関数を使って、ループ処理の間の待機をするために使います。get_price())を作ります。これで外部から、get_price(60)などと指定するだけで、最新の(終値の固まった)1分足のローソク足の価格データを取得できます。5分足を取得したい場合は、get_price(300)とするだけでOKです。この関数を使って取得したデータは、data[“close_time”]で日時、data[“open_price”]で始値、data[“close_price”]で終値を取り出せるようにしておきます。)APIで取得したデータを黒い画面(Anacondaプロンプト)に表示するためのコードも、何度も使うので関数にまとめています。3つだけを表示するようにしておきます。いう関数を自作します。この関数では、実体の割合(ローソク足の値幅のうちの実体部分の割合)と、上昇率の2つを計算しています。前のロジック定義の記事で説明したように、今回はテストとして、実体の大きさが価格の0.05%以上、ヒゲを含めた全値幅のうちの実体の割合が50%以上、というのを条件にしています。ここは自分の好みで調整してください。条件を1つでも満たしていなければFalseを返し、すべてを満たしていればTrueを返します。いう関数を自作します。これはロジック定義の記事のルール2に該当する部分です。今回の始値と前回の始値、今回の終値と前回の終値を比較し、両方とも上昇していればTrueを返します。片方しか上昇していない、またはどちらも上昇していない場合は、Falseを返します。0ここはWhile文(無限ループ処理)に入る前の準備です。今回のロジックでは、「前回の終値」と「今回の終値」を比較する必要があるため、ループ処理に入る前に、1度、「前回の終値」を取得しておきます。いう配列の変数に格納されます。「何本連続で陽線が続いているか?」を判定するために、flagという変数を用意しておきます。して、買いシグナルを点灯させます。last_data["close_time"]:#if文の中身time.sleep(10)ここからはWhile文の中身の解説です。今回のサンプルコードで使っているのは1分足ですが、なるべく価格の取得に遅れが出ないようにAPIは10秒おきに利用しています。そのため、「更新があった場合だけ次の処理をする」ために、3行目のif文を書いています。10秒待機する」を無限ループしています。このWhileの部分は、前の記事でも説明済です。0この部分はWhile文の中のif文の中身の解説です。いう変数をチェックします。場合(まだ1本も陽線のシグナルが出ていない場合)は、check_candle()関数で、今回のローソク足が条件を満たしているか確認します。条件を満たしていれば、flagの値を1にします。まま次のループに入ります。flag=1の場合(前回の足が陽線の場合)は、今回の足が2つの条件(前回のロジック定義の記事で定義したルール1とルール2)を満たしているかどうかを、check_candle()とcheck_ascend()の両方でチェックします。