発明者による量化取引の紹介 - 基礎から実戦まで

作者: リン・ハーン優しさ作成日:2019年6月25日 15:48:58 更新日:2023年10月31日 21:01:08

言語は中国語,英語,フランス語など様々な言語があります. 例えば:中国語,英語,フランス語など. 中国語:世界よ 英語:Hello World フランス語:Bonjour tout le monde

コンピュータの画面に"こんにちは!世界"を表示すると, C言語:puts (こんにちは) Java言語:System.out.println (こんにちは!世界へ) Python:print (こんにちは) コンピュータ言語には独自の規則があり,それ以外にも多くの言語があることがわかります. これらの言語の規則は,今日皆さんに説明する必要があるプログラミング言語の分類です. それぞれの分類では,最も基本的な一般的な規則を覚えておくだけで,これらのプログラミング言語とコンピュータのコミュニケーションを利用して,コンピュータが私たちの指示に従って動作する戦略をすることができます.

プログラミング言語の分類

皆さんが比較して,自分の量化取引プログラミング言語を選べるようにするために,最もよく使われる6つのプログラミング言語の分類説明をします.これらは,それぞれPython,Matlab/R,C++,Java/C#,EasyLanguage,およびビジュアライゼーション言語です.img図3-1 プログラミング言語の評価

機能範囲,実行速度,拡張性,学習難易度によって評価します. 1〜5のスコア,例えば機能範囲で5点は機能が強いことを意味し,1点は機能が少ないことを意味します. (上図のように) 視覚化言語とEasyLanguage言語は,学習が簡単で,初心者にとって非常に便利です. Pythonの機能は,より複雑な取引戦略の開発に適した強力な拡張性があり,C++の取引速度が速く,高周波トレーダーに適しています.

しかし,各プログラミング言語の評価は,主に量化取引分野での応用を対象とし,個人的主観的な構成要素を持っています. 後にコメント欄で拍手したり,意見を述べたりしてください. 次に,これらのプログラミング言語を個別に紹介します.

視覚化言語

視覚化プログラミングは古くから存在し,新しいことではありません. この見かけがすぐれたプログラミング思想は,様々な制御モジュールを持ち,単にドラッグ方法でコードロジックを構築し,取引戦略の設計を完了することができます. プロセスはブロックのようなものです.img図3-2 プログラミング言語のインタフェースの可視化

上記のように,同じ手順は,発明者の量化取引プラットフォーム視覚化プログラムでは,数行のコードだけで実行できます. これはプログラミングの壁を大幅に低下させ,特にプログラミングを全く理解していないトレーダーにとって素晴らしい操作体験です.

この視覚化言語の実装策略の基礎はC++に変換されているため,プログラムの実行速度に影響はほとんどない.しかし,機能性や拡張性は弱いため,複雑すぎる,過度に細かい取引策略を開発することはできません.

EasyLanguage 言語

EasyLanguageと呼ばれる言語は,一部の商用量化取引ソフトウェアに特有のプログラミング言語を指す. これらの言語には部分的にオブジェクト指向性があるが,アプリケーションでは主にスクリプト形式を採用している. 文法上でも,私たちの自然言語に非常に近いため,量化取引の初心者にとって,EasyLanguageを導入として使用することが良い選択である. 例えば:発明者の量化取引プラットフォームの麦語.

このスクリプト言語は,その特定のソフトウェアでポリシー回検と実存盤を行うことは問題ありませんが,拡張性に関しては,しばしば制限されています.例えば,ポリシー開発者は外部APIを呼び出すことができません.そして,実行速度に関しては,このスクリプト言語は,独自の仮想マシンで実行され,Java/C#よりも性能最適化がなく,遅い速度です.

パイソン

Stackoverflowでは,近年,主流プログラミング言語へのアクセス量はほとんど変化していない.Pythonだけが上昇傾向にある. Pythonは,ウェブサイト開発,機械学習,深層学習,データ分析などに使用され,柔軟性と開放性により最も一般的な言語となっています.

Pythonの基本的なデータ構造リストと辞書,機能が非常に強力で,基本的にはデータ表示のニーズを満たすことができます. より速く,機能がより包括的なデータ構造が必要な場合は,NumPyとSciPyを適用することをお勧めします.

金融エンジニアリングの観点から,よりターゲット化されたデータベースはPandasであり,SeriesとDataFrameの両方のデータ構造があり,時間配列を処理するのに適しています.

速度に関しては,PythonはC++よりもゆっくりと,EasyLanguageよりも速く,中間流の位置にある.主にPythonがダイナミックな言語であるため,純粋なPython言語で動作する速度は一般的です.しかし,Cythonで部分機能を静的最適化することは,C++に近い速度です.

パイソン言語は,拡張性において第一位であり,他の言語と広範な接続が可能であり,拡張APIの設計は非常に容易である.学習難易度に関しては,Pythonの文法はシンプルで,コードは読みやすく,入門が容易である.

マタラブ/R

その後は,MatlabとR言語であり,これらの言語は主にデータ分析に位置しており,言語の著者は文法的に科学的演算のために多くの設計を行った.これは,量化取引操作を固有のサポートによって特徴付けられている.しかし,その応用範囲は比較的限られており,一般的にデータ分析と戦略再測のために使用される.取引システムと戦略アルゴリズム開発については,その使いやすさと安定性が劣っている.

さらに,MatlabとRは独自の言語の仮想マシン上で動作するため,動作速度や拡張性は比較的低い.性能的にはJavaとC#よりも劣っている.しかし,数学表現式に近い文法があるため,学習も比較的容易である.

C++

C++は汎用プログラミング言語で,プロセスプログラミング,データ抽象化,オブジェクト指向プログラミング,汎用プログラミング,デザインモードなどの複数のプログラミングパターンをサポートする. C++では,あなたが実現したいすべての機能を実現することができます.しかし,このような強力な言語の最大の欠点は,模板,指針,メモリ漏洩などの学習困難が非常に高いことです.

現在,C++は,C++言語の特徴がコンピュータの底部により簡単に近づくため,大量のデータを処理する高性能回帰および実行システムを開発するための最も効果的なツールであるため,C++は,大きな容量,高周波取引のための好ましいプログラミング言語であり続けています.

Java/C#

Java/C#は,仮想マシン上で動作する静态言語であり,C++と比較して,配列越え,コーデュンプ,誤ったコードの位置に異常な精度で位置付け,自主ゴミ処理,メモリ漏洩などの心配がない.したがって,文法的な学習難易度においても,C++よりも容易である.実行速度に関しては,自主実行時にコンパイルされるJIT機能を持つ仮想マシンによって,C++に次ぐ速度である.

しかし機能面では,C++のように取引システムの底部を最適化することができない.拡張性能面では,C++に比べて弱くなります.これらの拡張は,Cの橋渡しを通過する必要があるため,両方の言語は仮想マシン上で実行されるので,機能モジュールを拡張する際には,壁をさらに横切る必要があります.

概要

しかし,言わせれば,定量化プログラミング言語は重要ではなく,アイデアが重要である.発明者の定量化マック言語と視覚化言語は,定量化への入門の門戸を叩くことは全く問題ではない.入門後には,さまざまな市場状況と組み合わせて絶えず探求を試みることが必要である.考えが出路を決定し,目線が境界を決定する.

自分の戦略をデザインし,自分の考えを取引する.この観点から,量化取引の核心は依然として取引思想である.量化トレーダーとして,戦略を書くプラットフォームの基本的な文法と機能を習得するだけでなく,実際の戦いで取引の理念を実感する必要があります.量化とは,異なる取引理念を体現するツールやキャリアに過ぎません.

授業後の宿題

1 量的な取引としてPythonの利点は? 2 発明者のマック言語でいくつかの一般的なAPIを書いてみませんか?

予告

プログラミング言語について上記の説明を聞いて,どのように選択すべきかを心の中で知っているはずです.

3.2 マール語への素早い入門

概要

メイ言語とは何か? メイ言語とは,初期のストック技術指標から拡張されたプログラム化された関数庫である. アルゴリズムを一つの関数に包み込むため,ユーザーは,パズリングブロックののように一行一行関数を呼び出すだけで,戦略論理を実現する.

"小文法,大関数"の構築パターンを採用し,書き込み効率を大幅に向上させ,他の言語では100以上の文章の策略を採用し,マーク語では通常10文字以下を書き出すことができる.発明者の量化ツールに対応した金融統計関数データベースとデータ構造も部分的に複雑な取引論理をサポートしている.

完全な戦略

この章の重要な知識を迅速に理解するために,発明者定量化マンの言語への簡単な紹介の前に,この章の名詞概念について最初の理解があります.

複数の株を開設:当面にポジションがない場合と,閉店価格が短期平均線より大きく,閉店価格が長期平均線より大きく,短期平均線が長期平均線より大きく,長期平均線が上昇している場合.

空売り:当面にポジションがない場合,および閉店価格が短期平均線より低く,および閉店価格が長期平均線より低く,および短期平均線が長期平均線より低く,および長期平均線が下落している場合.

多頭平衡:当時は複数のオーダーが保有され,閉店価格が長期平均線以下,または短期平均線が長期平均線以下,または長期平均線が下落している場合.

空っぽの平行:現在空き注文を保持している場合,閉店価格が長期平均線よりも大きい場合,または短期平均線が長期平均線よりも大きい場合,または長期平均線が上昇している場合.

言語コードで書いた場合,こんな感じです:img図3-3 マン語全例

完全な量化取引戦略を書き出すには,通常,データ取得,データ計算,論理計算,下記の買い買いなどいくつかのステップが必要である. 上記の図のように,コード全体では,基本的なデータを取得するAPIが1行と2行のCLOSEタブでのみ使用されている.次に1行から9行はデータ計算部分であり,最後に11行から14行は論理計算と下記部分である.

紫色のコードは変数である.第1行から第9行までの緑色の:=は赋值符であり,赋值符の右側のデータ計算が完了すると,赋值符の左側の変数に赋值符が付与される.オレンジ色のコードはAPIである.例えば,第1行では,MA (均線) を呼び出すには2つのパラメータを入力する必要があります.

基本データ

基本データ (開場価格,最高価格,最低価格,閉場価格,取引量) は,量化取引の不可欠な部分であり,戦略の中で最新の基本データを入手するには,発明者の量化ツールのAPIを呼び出すだけでよい. 歴史の基礎データを入手するには,REFタグを使用することができます.例えば:REF (CLOSE,1) は,昨日の閉場価格を入手します.

変数

変数は変数数で,変数の名前はコードとして理解できる.その命名は漢字,文字,数字,引線形式の命名をサポートするが,長さは31文字以内に制御する必要がある.変数の名前は相互に重複できない,パラメータ名と重複できない,関数名 (API) と重複できない.各文は分数で終わらなければならない.書き直した後,自分の言語注釈を追加したい場合は,最後に/で表示する.半角入力法の大状態で書き直す必要がある.img図3-4 マレー語データ型

変数の割り当て

変数赋值は,変数の右側の数値を左側の変数に赋值する. 変数の合計は4種類で,数字がグラフに表示されるかどうかを制御し,表示される位置を定義します. 下図の緑色の文字は,それぞれ:,??:=,??^^??,??...??,図のコード注釈部分で,それらの意味が詳細に説明されています.img図3-5 マーク語変数の割り当て

データ型

マレー語には,数値型,文字列型,ブル型など,多くのデータタイプがあります. 数値型は数字であり,整数,小数,正負数なども含まれます.例えば",,2,3",1.1234,2.23456など.文字,中国語,英語数字なども文字で理解できます.例えば:発明者量化,CLOSEPRICE,6000,文字列型は英語分数で包み込まなければなりません.ブル型は最もシンプルで,の2つの限界値しかありません.例えば,1trueはを表示し,0はfalseを表示します.

関係演算子

関連演算子 (relational operator) は,名前の意味では,2つの値の関係を比較するために使用される演算子である.以下のような図のように,それぞれ等しい,より大きい,より小さい,より大きい,より小さい,より小さい,より小さい,より小さい,より小さい,より小さい,より小さい,より小さい,より小さい,より小さい,より小さい,より小さい,より小さい,より小さい,より大きい,より大きい,より小さい,より大きい,より小さい,より大きい,より大きい,より大きい,より小さい,より大きい,より大きい,より大きい,より大きい,より大きい,より大きい,より大きい,より大きい,より大きい,より大きい,より大きい,より大きい,より大きい,より大きい,より大きい,より大きい,より大きい,より大きい,より大きい,より大きい,より大きい,より大きい,より大きい,より大きい,より大きい,より大きい,より大きい,より大きい,より大きい,より大きい,より大きい,より大きい,より大きい,より大きい,より大きい,より大きい,より大きい,より大きい,より大きい,より大きい,より大きい,より大きい,より大きい,より大きい,より大きい,より大きい,よりimg図3-6 マスク語演算子

論理演算子

論理演算では,個々のブル型文を全体に連結することができる.最も一般的に使用されるのはAND (と) とOR (と) である.二つのブル型値があると仮定し,それぞれの閉じる価格が開く価格より大きいとの閉じる価格が均線よりも大きいと仮定すると,それらをブル値として構成することができる.例えば:の閉じる価格が開く価格より大きいとの閉じる価格が均線より大きいとの閉じる価格が開く価格より大きいとの閉じる価格が均線より大きいと//OR.img図3-7 マーク語論理演算

注目してください: ANDは,すべての条件がであるとき,最終条件がであるとき, ORはすべての条件において,いずれかの条件がである限り,最終条件はである. AND&&,ORで書ける.

算術演算子

一般的に用いられるマケ語における算数演算子 (+,-,*,/) と小学校で学ぶ数学は,以下の図のように,全く区別されていない.img図3-8 マスク語算数の処理

優先順位

100* (((10-1) /(10+5) という表現がある場合,プログラムはどのステップで最初に計算するのですか? 中学数学ではこう教えられます: (1) 同じレベルの演算である場合,通常は左から右に順番に計算します. (2) 足し算と減算の両方が存在する場合,最初に掛け算,再算と減算します. (3) 括弧がある場合,括弧の中に先行します. (4) 演算定律に準拠している場合,演算定律を使用して簡略化することができます.img図3-9 言語計算の優先順位

実行モード

発明者の量化ツールであるマーの言語では,プログラム戦略は,2つのモードを実行する.すなわち,閉じる価格モードとリアルタイム価格モード.閉じる価格モードは,現在のK線信号が作成され,下根K線が開始されるとすぐに取引を実行する.リアルタイム価格モードは,現在のK線信号が作成され,すぐに取引を実行する.

日内戦略

日内戦略の場合,尾盤平衡が必要なときは,TIME平衡時間関数を用いなければならない.この関数は秒周期以上,日周期以下で,四桁の形式で表示される.すなわち:HHMM (((145014時50分).注意:TIME関数を尾盤平衡条件として使用すると,開場条件も対応する時間制限を行うことが推奨される.下図のように:img図3-10 マン語時間関数

モデル分類

img図3-11 マン語モデル分類

マク言語におけるモデル分類は,非フィルタモデルとフィルタモデルという2種類があります. これはよく理解できます. 非フィルタモデルでは,連続して開場信号または平仓信号が表示され,上場および下場機能を実現できます. フィルタモデルでは,連続して開場信号または平仓信号が表示されない. つまり,開場信号が表示された後に,開場信号がフィルタリングされ,平仓信号が表示されるまで,非フィルタモデルからの信号の順序は:開-平-開-平-開...

概要

これらがマクロ言語の簡単な入門です. 学習した後,量化取引戦略をプログラミングすることができます. より複雑な戦略を書く必要がある場合は,発明者の量化ツールマクロ言語APIのドキュメントを参照するか,または直接公式の顧客サービス代理書量化取引戦略を参照してください.

予告

日内取引もまた,夜間置換しない取引モデルであり,市場変動リスクが低いため,不利な市場が発生した場合に適時に調整することができます. このセクションのマウ語入門を学んだ後,次のセクションでは,実行可能な日内量化取引戦略を手本で書きます.

授業後の宿題

1 発明者の量化ツールを使って,Mac言語で基本的なデータを取得するためのAPIを書こう. 2 グラフで変数の割り当てを共有する方法

3.3 マヤ語での戦略の実現

概要

前回の記事では,マーの言語の紹介,基本的な文法,モデル実行方法,モデル分類などから取引戦略の実現の前提部分について説明しました. この記事では,一般的な戦略モジュール,技術指標から,実行可能な日中量化取引戦略の実現に役立ちます.

戦略モジュール

ロボットを Lego のブロックで組み立てる方法について考えてみてください.上から下へ,あるいは下から上へ,一枚のブロックを組み立てるのは決して不可能です. 少しずつ常識のある人は,頭,腕,足,翼,など,それぞれを組み立てて,完全なロボットを組み立てるべきだと知っています. プログラミングも同じです. 必要な機能を戦略モジュールに書き,そして,戦略モジュールごとに,完全な量化取引戦略を組み立てる必要があります.

段階的な上昇

段階上昇は,根K線の閉じる価格と前N周期の閉じる価格の差の割合を計算する.例えば,最近10つのK線の段階上昇を計算するコードは,以下のように書ける:img図3-12 マヤ語段階の増加

イノベーションの高さ

再創高は,ルートK線がNサイクル以上であるときの最高価格を計算する.例えば,ルートK線が最近10つのK線のうちの最高価格よりも大きいときの最高価格を計算するコードは,以下のように書ける:img図3-13 マール語は再創新高

弾量拡大

量増攻は,価格上昇と取引量の急増として理解される.例えば:当時のルートKラインの閉じる価格が前10基Kラインの閉じる価格の1.5倍である場合,10日以内に50%上昇;取引量が最近の10基Kラインの平均値の5倍以上である.コードは次のように書ける:img図3-14 マヤ語 放出量上襲

狭い整理

狭い整理とは,近期間の価格が一定の幅内に維持されていることを指す.例えば,10サイクルにおける最高価格と10サイクルにおける最低価格の差が0.05以下である場合,コードは次のように書ける.img図3-15 マヤ語 狭い整理

均線多頭配列

均線多頭配列は,多頭配列と空頭配列に分かれ,K線は510203060均線下支線配列を上向き多頭配列とする.多頭配列は,市場傾向が強い上昇である.コードで書ける:img図3-16 マレー語 均線多文字列

前期高点とその位置

前回の高点と高点の位置を入手するには,発明者の量化ツールのAPIを介して直接アクセスできます. コードは次のように書きます:img図3-17 メイ語初期の高点

飛び出そう

跳空穴は,後後のサポートとプレッシャーポイントの基準値である2つのK線からなる2つのK線の最高低値が非結合的に発生する状態である.跳空穴が発生すると,元の跳空方向に沿った傾向の加速が始まると仮定することができる.コードは次のように書ける:img図3-18 マヤ語 跳び口

常用技術指標

移動平均線

img図 3-19 移動平均線図

平均線は,統計学的な観点から見ると,日々の価格の算術平均線であり,傾向的な価格軌跡である.平均線システムは,ほとんどのアナリストがよく使用する技術ツールであり,技術的な観点から,技術アナリストの心理的な価格要因に影響を与える,思考売買の意思決定要因であり,技術アナリストの良い参考ツールであり,発明者の量化ツールには,さまざまな種類の平均線がサポートされています.img図3-20 マレー語 様々な指標計算

BOLL通路

img図3-21 BOLL経路図

BOLLはブリンズ帯指標とも呼ばれ,統計学原理を用いて,まずN日間の移動平均線に基づいて中軌を計算し,次に標準差に基づいて上線と下線を計算する.BOLLの幅が狭くなると,価格は徐々に平均値に戻ることを示します.BOLLの幅が狭くなると,市場は変化し始めると意味し,価格が上線した場合,買い手力が増加することを示し,価格が下線した場合,売り手が増加することを示します.

BOLLの計算方法は,すべての技術指標の中で最も複雑で,中央線 (MB),上線 (UP),下線 (DN) の計算を伴う統計学における標準差の概念を導入した.その計算方法は以下のとおりである.img図3-22 マレー語 ブリン帯計算

MACD インディケーター

img図3-23 MACD インディケーター

MACDは,短 (速) と遅 (長) の移動平均線とその結合と分離の特徴を用いて二重スムーズな計算を行う.しかし,移動平均線原理に基づいて開発されたMACDは,移動平均線が頻繁に偽信号を発する欠陥を取り除く一方,移動平均線の効果を保持している.したがって,MACDは均線的傾向,安定性,安定性などの特徴を有し,株の買い売りのタイミングを判断し,株価格の下落を予測するための技術分析指標として使用される.その計算方法は以下のとおりである.

img図3-24 マレー語MACD指標

上記は量化取引戦略の開発において最も一般的に使用される戦略モジュールであり,もちろんそれ以上のものでもあり,上記の模块の例により,主体取引において最も頻繁に使用するいくつかの取引モジュールを手動に実装することもできます.

戦略策定

外為現金市場で,広範囲に流通していた突破取引戦略の1つは,HANS123戦略である.これは,取引信号を誘発する判断基準として,簡潔な開店後にN根K線の高低点を突破する.これは,早期入場の取引パターンでもある.

戦略的論理

スタートから30分後には,準備が整いました. 上線=開盤後30分間の高値 低線=開盤後30分間の低点. 価格が走行線を突破すると,買い出し, 価格が下がると,売り出し,開場します. 取引戦略,閉店前平衡

戦略コード

img図3-25 マン語戦略コード

概要

上記では,戦略モジュールの概念を学び,いくつかの一般的な戦略モジュールの事例を介して,発明者の量化ツールのプログラミング方法に精通し,戦略モジュールの書き方を習得し,プログラミング論理的思考を向上させることが,進捗量化取引の重要なステップです. 最後に,我々は発明者の量化ツールを実現し,外為現金取引で一般的に使用される取引戦略です.

予告

早く,これらのことは,我々はすべてあなたのために考えました,発明者の量化ツール,また,プログラミング言語,より適した小さな白人のユーザの使用,それは視覚化プログラミングです.

授業後の宿題

1,主体取引で最もよく使う取引モジュールのいくつかを手動的に実装してみましょう. 2、発明者の定量化ツール内のマーク言語でKDJ指標アルゴリズムを実装しようとした.

3.4 視覚化プログラミングへの簡単な入門

概要

多くの主観的なトレーダーは,量化取引に興味を持ち,最初は自信に満ちていましたが,従来のプログラミング言語の基本的な文法,データ処理,データ構造,論理制御などを知った後,冗長で複雑なコードの後,しばしば見返りしたり,または浅々とした止まりを味わうことが多いので,視覚化プログラミング言語はあなたを入門させるのにより適しています.

完全な戦略

このセクションの重要な知識を迅速に理解するために,発明者の定量化可視化プログラミング言語への簡単な紹介の前に,可視化言語で書かれた戦略がどのようなものかを見て,このセクションの名詞の概念を初歩的に理解してください.

複数の株を開設:当面のポジションがない場合,閉じる価格は50サイクル平均線より大きい.空売り:当面ポジションがない場合,閉じる価格は50サイクル平均線以下である.多頭平衡:当時は複数のオーダーを保有し,閉店価格は50サイクル平均線以下である場合.空っぽの平行:現在空き注文を保持し,閉店価格が50サイクル平均線より大きい場合.

視覚化言語で上記の戦略を記述すると,以下のようなものになります:img図3-26 言語インタフェースの可視化

上記の図のように,戦略設計の全体プロセスは,市場種を設定し,K線配列を取得し,根K線上の50サイクル平均値を取得し,根K線上の閉じる価格を取得し,保有配列を取得し,保有状態を判断し,閉じる価格が平均線よりも大きいか小さいかを判断し,開設または平止を実行する.

ここで注意すべきは,配列のという概念であり,配列はあらゆるプログラミング言語にとって重要なデータ構造の一つである. 配列は容器のようなもので,その中に一連の値を格納することができる. 例えば,K線配列を取得するAPIを呼び出すと,次の結果が返ってくる.img図3-27 K線数列

上の図のコードは,K行列である. この行列には,3つのデータがあります. 上根K行のデータ,上根K行のデータ,根K行のデータです. この行列の値を変数arrに代入すると,この行列の最後のデータ (根K行のデータ) を取得したい場合は,次の図の4行,5行のように書きます.img図3-28 数列の引用

文字列の文字列の長さを取得するには,次のような文字列の長さを取得します. 文字列の長さを取得するには,次のような文字列の長さを取得します. 文字列の長さを取得するには,次のような文字列の長さを取得します.

注意して見ると,これらのデータは,{}でまとめられていることがわかります. 英語名を見ると,それぞれに時間,開口価格,最高価格,最低価格,閉じる価格,取引量があります. もし,根K線上の閉じる価格を得たい場合は,直接その後にを加えます.と必要な値を足すことができます. 下図の8〜10行を参照してください.img図3-29 数列の引用

視覚化プログラミング言語を使うのはなぜですか?

この概念を踏まえて,まずはJavaで world を出力するプログラムを書いて,従来のプログラミングを体験してみましょう.img図3-30

単に hello world! の文字列を出力するだけで,5行のコードを書きます. ほとんどの初心者は括弧の中の英語単語だけを知っていると思います.

視覚化プログラミングとは何か?

視覚化プログラミングは古くから存在し,新しいことではありません. この見かけがすぐれたプログラミング思想は,様々な制御モジュールを持ち,単にドラッグ方法でコードロジックを構築し,取引戦略の設計を完了することができます. プロセスはブロックのようなものです.img図3-31

上図のように,同じ手順は,blockly視覚化プログラムでは,コードの1行だけで実行できます. これはプログラミングの門戸を大幅に低下させ,特にプログラミングを全く知らないトレーダーにとって,素晴らしい操作体験です.

視覚化プログラミング言語の特徴

blocklyは,プログラミングの玩具ではなく,編集機を装うようなオペレーティングシステムではなく,本物のエディターであり,変数,関数,配列,拡張が容易なカスタマイズブロックなどの多くのプログラミングの基本的な要素をサポートしています.

発明者による定量化可視化プログラミングは,Googleによって公開されたブロックリー可視化ツールによって実現される.設計上はMIT大学からのScratchに類似し,真のゼロスリープ (下図のように).img図3-32

発明者による定量化可視化プログラミングインターフェイスには,数百の一般的な取引モジュールが組み込まれ,今後さらに多くの取引モジュールが追加され,トレーダーの新しいアイデアと新しいアプリケーションをサポートし,開発者によって共同開発および維持される.

文法がシンプルであるにもかかわらず,性能は維持されています. 機能や速度の両方において,PythonやJavaScriptなどの通常のプログラミング言語に負けない. 未来は論理的に複雑な金融アプリケーションをサポートします.

どう使うか

img図3-33

プログラムを作って,

img図3-34

実行して,Hello,world をプリントします.

img図3-35

概要

以上では,完全な可視化戦略から,可視化言語の概要や特徴まで,最後に,発明者定量化ツールで可視化言語を使用する方法,そして, hello worldの例を書き上げます.しかし,要注意は,定量化取引への入門として,可視化プログラミングは良い門戸を打つものであることですが,現在,発明者定量化ツールでは,限られたAPIインターフェースしか開かれていません.

予告

視覚化プログラミングは,高度なプログラミング言語の基礎とほとんど異なるものではなく,ある場所では汎用である.視覚化プログラミングを学ぶことは,高度なプログラミングを学ぶよりさらに進んでいる.次のセクションでは,発明者の量化ツールで一般的な量化取引モジュールをどのように書くか,そして完全な日中取引戦略をどのように開発するかを含む,視覚化プログラミングの進歩を深く学ぶ.

授業後の宿題

発明者によるプログラミングインターフェースの可視化,APIの使用,その意味を理解する. 2、最新開場価格を視覚化言語で取得し,ログに輸出する.

3.5 視覚化言語で戦略を実現する方法

概要

前回の記事では,可視化プログラミング言語の概要と特徴,hello worldの例,および発明者の量化取引ツールにおける戦略の書き込みなどの側面について,取引戦略の実現の前提部分について説明しました. この記事では,一般的な戦略モジュールと技術指標から始まり,戦略論理まで,完全な日中取引戦略を実現するために,一歩一歩を進めます.

戦略モジュール

段階的な上昇

段階上昇は,根K線の閉じる価格と前N周期の閉じる価格の差の割合を計算する.例えば,最近10つのK線の段階上昇を計算するコードは,以下のように書ける:img図3-36

上記のコードでは,コンピュータが実行する方法は,完全な論理回路を必要としていることが示されています. 例えば,最新の10つのK線段階の幅を計算するには,次のステップに分解する必要があります. まず,コンピュータは,あなたが取引する品種を明確に知っていなければなりません. 例えば,上記の例はメタロールです. その後,契約コードを設定します: MA888. 契約コードを設定した後,その契約のK線データを取得できます.

K線データがあれば,これらのK線データから,任意のK線について詳細なデータを得ることができます. 統計段階の上昇を計算するには,まず2つのK線の閉じる価格を得なければならない.例えば:上位K線の閉じる価格と前11番目のK線の閉じる価格.

最後に,この2つのK線の収束価格に基づいて,段階増幅比を計算します.以下の各戦略には,このような論理回路と条件属性の規定の特徴があり,この論理を理解すると,可視化プログラミングも容易になります.

弾量拡大

量増攻は,価格上昇と取引量の急増として理解される.例えば:当時のルートKラインの閉じる価格が前10基Kラインの閉じる価格の1.5倍である場合,10日以内に50%上昇;取引量が最近の10基Kラインの平均値の5倍以上である.コードは次のように書ける:img図3-37

飛び出そう

跳空穴は,後後のサポートとプレッシャーポイントの基準値である2つのK線からなる2つのK線の最高低値が非結合的に発生する状態である.跳空穴が発生すると,元の跳空方向に沿った傾向の加速が始まると仮定することができる.コードは次のように書ける:img図3-38

常用技術指標

EMAの平均線

平均線は,統計学的な観点から見ると,日々の価格の算術平均線であり,傾向的な価格軌跡である.平均線システムは,ほとんどのアナリストがよく使用する技術ツールであり,技術的な観点から,技術アナリストの心理的な価格要因に影響を与える,思考売買の意思決定要因であり,技術アナリストの良い参考ツールであり,発明者の量化ツールには,さまざまな種類の平均線がサポートされています.img図3-39

MACD インディケーター

MACDは,短 (速) と遅 (長) の移動平均線とその結合と分離の特徴を用いて二重スムーズな計算を行う.しかし,移動平均線原理に基づいて開発されたMACDは,移動平均線が頻繁に偽信号を発する欠陥を取り除く一方,移動平均線の効果を保持している.したがって,MACDは均線的傾向,安定性,安定性などの特徴を有し,株の買い売りのタイミングを判断し,株価格の下落を予測するための技術分析指標として使用される.その計算方法は以下のとおりである.img図3-40

KDJ指標

KDJ指標は,動力概念,強弱指標,移動平均線の優位性を統合し,株価が価格の通常の範囲から変化する程度を測定するために使用されます. 計算方法としては,閉店価格だけでなく,近年の最高値と最低値も考慮されます.img図3-41

戦略策定

ウォーレン・バフェットの指導者であるベンジャミン・グラハムが『賢明な投資家の』で,株と債券の動的均衡の取引モデルについて言及している.

この取引モデルは非常にシンプルです. 持っていた資金の50%を株式基金に投資し,残りの50%を債券基金に投資します. つまり,株と債券はそれぞれ半分です.

固定時間間隔や市場の変化に応じて資産をリバランスさせ,株式資産と債券資産の比率を初期の1:1に戻します.これは,どのタイミングで購入するか,どの程度購入するかを含む,全体の戦略の論理です. 簡単です!

この方法では,債券ファンドの波動率は株式の波動率よりもはるかに低いので,債券はここで"参照"として扱われる.つまり,債券を使って株が多く稼いでいるか少ないかを測定する.

株価が上昇すると,株価が債券より高くなり,両者の市場価値比率が設定された値を超えると,総ポジションを調整し,株を売却し,債券を購入し,株式債券の市場価値比率を元の1:1に戻す.

逆に,株価が下がると,株価の市場価値が債券の市場価値より小さい.両者の市場価値比率が設定された値を超えると,総ポジションを調整し,株を買い,債券を売り,株債市場価値比率が元の1:1に戻す.

動的バランスのとれた株と債券の比率で,株の成長の恩恵を享受し,資産の変動を減らすことができる. 価値投資の先駆者としてのグラハムは,私たちに素晴らしいアイデアを与えてくれました.

戦略的論理

当時のBTCの価値では,口座残高は5000円の現金と0.1 BTCを保持しており,現金とBTCの市場価値の初期比率は1:1である.

BTCの価格が円6,000に上昇すると,つまりBTCの市場価値が口座残高よりも大きく,その差が設定された値を超えると,販売します. (※6000-5000) /6000/2コイン.BTCが上昇したことを示し,お金を引き換えます.

BTCの価格が円4000に下がり,BTCの市場価値が口座残高未満で,その差が設定された値を超えると,BTCの値が下がったことを示し,BTCを買い戻します.

BTCの値下げや値上げに関わらず,口座残高は BTCの市場価値と同等に動いています. BTCが値下げされた場合,購入し,再び戻ってくるまで待って,平気のように販売します.

購入条件:現在の保有市場価値から現在の利用余剰分をマイナス5%未満とする場合は,買い出しします.販売条件:現在の保有市場価値から現在の利用余剰余剰余剰の5%を引いた場合,平衡販売.

必須条件

  • 現状
  • 現在の資産
  • 通貨総市場価値
  • 資産格差

戦略構築

視覚化策略の第一歩

取引戦略の4つの前提条件を計算し,それぞれの変数にそれぞれ値を割り当てます. 視覚化プログラムでは,コードブロックは以下のようなものです.img図3-42

注目すべきは,コイン総市場価値は,現存するコイン総数の総市場価値であり,その計算方法は,現存するコイン総数を現存する最新価格に掛けることである.資産差は,現存する通貨総市場価値を現存可能な残高を減算することである.

視覚化策略のステップ2

前提条件赋值が完了すると,取引論理を書く必要があります. これは想像するほど複雑ではありません. 上記の戦略論理をコードブロックの形で表現するだけです.

つまり,資産が負の利用余分の5%未満の場合は購入し,資産が利用余分の5%未満の場合は売却します.img図3-43

取引の戦略は,一回実行ではなく,繰り返して繰り返して実行される. しかし,私たちの取引戦略は,取引条件を一回実行するのではなく,ループを繰り返して実行することを意味します.

つまり,プログラムには,ポリシー条件が達成されているかどうかを継続的に確認する必要があり,もし買い買いを行う場合であれば,継続的にチェックする必要があります.このとき,次のように別のループ文を使用する必要があります:img図3-44

戦略の復習

視覚化戦略は,他のプログラミング言語で書かれた戦略とは本質的にほとんど異なるが,複数の周期,正確な歴史的データテスト,もちろん国内外の商品先物やデジタル通貨のリアルタイムの取引をサポートする.img図3-45

この時点で,完全な取引戦略は完成していない. この戦略は,戦略広場で共有され,研究を直接複製することができます.

終わり

10,000時間の法則は常に存在しますが,ゼロベーストレーダーにとって,10,000時間を再導入するのは不可能です. そのためには梯子が必要です. そしてゼロベーストレーダーにとって,発明者の定量化された可視化プログラミングは,迅速な入力の梯子です.

視覚化プログラミングを利用すると,文法や方法の名前を覚えなくても,機能モジュールを閲覧して,必要なものを見つけることができます. 量化開発者の最初の意図は,より多くの量化初心者が入門門を低くし,量化に興味を高め,誰もが量化トレーダーになることができるようにするものです!

視覚化プログラミングは量化への入門の門戸を叩くことは問題ではありませんが,非常に複雑で細かい取引戦略を開発できないという限界もあります. しかし,これは量化取引の第一歩を踏み出すことを妨げません!

予告

量化取引の専門性から,マック言語と視覚化言語は量化取引の世界への移行言語に過ぎない. 彼らの言語特性は,量化取引戦略の開発における限界を決定し,複雑な戦略が実現する可能性が低い.

授業後の宿題

1、視覚化言語でブリンバンド指標を実装してみる. 2. このセクションの取引モジュールを使って取引戦略を完了してみてください.

第4章 主流プログラミング言語で取引戦略を実現する

4.1 JavaScriptへの簡単な説明

概要

将来の量化取引の新興者として,単純な言語を学ぶだけでは十分ではない.量化ツールを発明したマック言語と視覚化言語は,入門を提示するものの,それらの言語の特性により,戦略開発には多くの制限があります.したがって,量化取引に立つためには,正式なプログラミング言語を学ぶ必要があります.

JavaScriptを学ぶ理由

視覚化言語と比較して,JavaScript言語はより強力な性能と実行効率を持っています. また,策略開発に関しては,JavaScript言語は視覚化言語よりもはるかに柔軟です.例えば,あなたがスーツ策略を開発したい場合は,視覚化言語ではできません.それは限られたモジュールで,類似したスーツ策略策略をサポートしません.

さらに,JavaScript言語は視覚化言語よりも簡潔で優雅である.例えば:視覚化言語は10行のコードで,JavaScriptで5行も書くことができる.ある意味で,視覚化言語はJavaScriptの文字版に過ぎない.そのコードの実行方法と論理はJavaScriptとほぼ同じである.もしあなたが視覚化言語を学んだなら,JavaScriptを学ぶことは非常に簡単である.

JavaScript の説明書

JavaScriptは正式な高度プログラミング言語である. プログラミングを学ぶための入門言語としても,日常開発のための作業言語としても適している. 現在最も有望で明るいコンピュータ言語の1つであり,ブラウザ端では揺るぎない支配地位を保持している. Webページの開発として有名であるにもかかわらず,サーバー端,PC端,モバイル端など,多くの非ブラウザ環境でも使用されています. もちろん,量化取引もできます!

完全な戦略

このセクションの重要な知識を迅速に理解するために,発明者による量化JavaScript言語の簡単な紹介の前に,このセクションの名詞の概念について最初の理解があります.

複数の株を開設:現在のポジションがない場合,5周期均線が20周期均線より大きい.空売り:現在のポジションがない場合,5周期均線が20周期均線より小さい場合.多頭平衡:当時は複数の单元を保持している場合,5周期均線が20周期均線よりも小さい.空っぽの平行:現在空き注文を保持している場合,5サイクル平均線が20サイクル平均線よりも大きい.

JavaScript で書いた場合,以下のように表示されます.img図4-1

上図のコードは,JavaScript言語で書かれた完全な量化取引戦略である. リアルで実行され,自動的に注文される. 代码量から見ると,この言語は視覚化言語よりもシンプルである. 全体の戦略の設計プロセスは,市場種を設定し,K線データを取得し,保有情報を取得し,取引ロジックを計算し,注文を購入し,販売する.

アイデンティティ

JavaScriptではすべての ((変数,関数名,操作符) が小さく書かれる.つまり,変数名testと変数名Testは2つの異なる変数である.識別子 ((変数,関数,属性,関数パラメータ名) の最初の文字は,文字,下線 ((_) ),ドル (($) の文字でなければならない.次に続く文字は数字でもあり,次の図のように:img図4-2

コメント

解説には単行本とブロックレベルの解説が含まれます.単行本は2つの斜めで始まり,ブロックの注釈は斜めと星号で始まります./) は星号と斜めで始まる (((/) 最後に,以下の図で示します:img図4-3

文言

各文に分数句が終わります.これは必須ではありませんが,決して省略しないようにお勧めします.分数句を加えることで,いくつかの場合,コードの性能を向上させることができます.img図 4-4

変数

変数は任意の種類のデータを保存できる.変数を作成する際には,変数の名前の後ろに var 操作符を使用する.変数を定義する際には,変数の値を同時に設定することもできる.変数が作成された後に,変数の値を再び設定する場合は,次の図のように,var 操作符を使用する必要はありません.img図4-5

データ

JavaScriptには5つのデータタイプがあります.未定義 (Undefined),オブジェクト空 (Null),ブール値 (Boolean),数字 (Number),文字列 (String),以下のように:img図4-6

Undefinedには,ただ一つの値,つまり特殊undefinedがある.それはまだ設定されていない値を表す.例えば,変数を定義し,その変数に値を設定しない場合,その変数の値はundefinedである.

Nullは1つの値のみ,つまり特殊なnullで,空に設定された値を代表する.例えば,変数を最初に作成し,変数の値をnullに設定すると,その変数の返した値はnullである.

ブルールは2つの値,truefalse,trueが真とfalseが偽を表す.注意すべきは,truefalseは小文字になっている.

Numbers は,正数,負数,整数,小数などを含む数字の種類である.また, NaNは,数値が返されない場合を特別の数字として表す.例えば:1を0で割ると NaNが返される.

Stringは文字として理解できる.中文と英語を含む文字で,単引数または二引数で文字列を構成することができる.例えば:fmzまたはの発明者量化など.

オブジェクト

オブジェクトは様々なデータを保存する容器として理解できる.容器内の属性と値はそれぞれである. new 操作でこの容器を最初に作成できます. そして,作成されたオブジェクトに属性と方法を追加することができます.img図4-7

数列

数列は様々なデータを保存する容器でもあるが,容器内の要素は左から右に順序付けされており,最初の要素は0であり,第二の要素は1である.さらにJavaScriptの数列は,次の図のように任意のデータ型を保存することができる.img図4-8

関数

JavaScriptの関数は,中学校の関数とは本質的に違います. 函数で何を入力するか,何を入力するか,そして何を出しているか,img図4-9

演算子

JavaScriptには,数学的演算子,比較演算子,論理演算子など,複数の演算子があります. 数学的演算子とは,足し減法による数学的演算子であり,比較演算子では,2つの値がより小さいか,より小さいかを比較することができます.論理演算子には主に:論理と,論理または,論理ではない.以下の図のように:img図4-10 注意すべきことは,&&は論理と,を代表するという意味である. &&は,すべての条件がtrueであるとき,最終条件がtrueである. は,すべての条件において,いずれかの条件がである限り,最終条件がである.

優先順位

100* (((10-1) /(10+5) という表現がある場合,プログラムはどのステップで最初に計算するのですか? 中学数学で教えてくれます: (1) 同じレベルの演算の場合,通常は左から右に計算します。2 加減と掛け算の両方がある場合,最初に掛け算,再計算,減算します。3 括弧がある場合,括弧の中に先行します。4 演算定律に準拠している場合は,演算定律を使用して減算できます。JavaScript言語の優先順位も同じです.img図 4-11

条件文

通常,コードを書くとき,あなたは常に異なる決定のために異なる動作を実行する必要があります. あなたはコードの中で条件文を使用してこのタスクを実行することができます. JavaScriptでは,私たちは次の条件文を使用することができます: if ステートメント - 指定条件が true のときのみこのステートメントを使用してコードを実行します if...else ステートメント - 条件が true のときコードを実行し,条件が false のとき他のコードを実行する if...else if...else ステートメント - このステートメントを使用して,複数のコードブロックのいずれかを選択して実行します. switch ステートメント - このステートメントを使用して,複数のコードブロックのいずれかを選択して実行します

if 文

この文は指定条件が true である場合にのみコードを実行します.小文字 if を使用してください.大文字 ((IF) を使用すると JavaScript エラーが生じます.以下の図のように:img図4-12

if...else 文

条件が true ならばコードを実行し,条件が false ならば他のコードを実行します.img図4-13

for 回転する

時に,最近の数日のK線データを取得したい場合,K線配列から,K線データの位置に応じて順番に取得する必要があります.img図 4-14

ループをクリックします

市場が変化していることは知っています. 最新のK線配列を取得したい場合は,同じコードを繰り返し実行する必要があります. 条件がtrueである限り,ループは常に最新のK線配列を得ることができます.img図4-15

break 文とcontinue 文

ループは前提条件付きで,この前提条件がtrueであるときのみ,ループは繰り返し何かを始める.この前提条件がfalseであるときまで,ループは終わらない.しかし,break 文はループの実行中にすぐにループを跳ね出すことができる.continue 文は,あるループを中断し,次のループに続くことができる.img図4-16

返信文

return 文は,関数の実行を停止し,関数の値を返します. return 文は,関数の体内にのみ表示され,コードのどこでも表示されれば,文法エラーが発生します!img図4〜17

CTA戦略構造

発明者による量化ツールでは,JavaScript言語で策略を書くことが非常に便利である場合,公式には標準策略フレームワークが組み込まれています.img図4-18

上図のコードのように,これは標準的な戦略フレームワークであり,商品先物品種コードフレームワークを変更できるほか,他のものは固定形式である.フレームワークを使用して戦略を書く最大の利点は,あなたが戦略論理を記述するだけで,他の業界取得,単一の処理など一連の問題がフレームワークによって処理されるということです.

概要

これはJavaScript言語への簡単な入門です. 学習した後,量化取引戦略をプログラミングすることができます. より複雑な戦略を書く必要がある場合は,発明者の量化ツールJavaScript言語APIのドキュメントを参照してください.

予告

日内取引は,夜間取引をしない取引モデルであり,市場波動リスクが低く,不利な市場が発生した場合に適時に調整することができます.このセクションのJavaScript言語の入門を学んだ後,次のセクションでは,実行可能な日内量化取引戦略を書き出します.

授業後の宿題

発明者の量化ツールにあるJavaScript言語を使って,歴史的なK線データを取得しようとします. 2、このセクションの初めの戦略コードを書き,注釈を書いてください.

4.2 JavaScriptで戦略取引を行う方法

概要

前回の記事では,JavaScript言語の紹介,基本的な文法,CTA戦略フレームワークなどから取引戦略の実現の前提部分について説明しました. この記事では,一般的な戦略モジュール,技術指標から,実行可能な日中量化取引戦略を実現するために,ステップ・バイ・ステップで,この内容を継続します.

戦略の概要

ブリンズ帯 (Bollinger band) は,Bollinger's box,Bollinger's box,Bollinger's box,Bollinger's box,Bollinger's box,Bollinger's box,Bollinger's box,Bollinger's box,Bollinger's box,Bollinger's box,Bollinger's box,Bollinger's box,Bollinger's box,Bollinger's box,Bollinger's box,Bollinger's box,Bollinger's box,Bollinger's box,Bollinger's box,Bollinger's box,Bollinger's box,Bollinger's box,Bollinger's box,Bollinger's box,Bollinger's box,Bollinger's box,Bollinger's box,Bollinger's box,Bollinger's box,Bollinger's box,Bollinger's box,Bollinger's box,Bollinger's box,Bollinger's box,Bollinger's

計算方法は,統計学原理を用いて,一段間の価格の標準差を計算し,その後均線加減2倍の標準差で,求出価格の依存間隔を計算する.その基本形態は,3つの軌道線からなる帯状の通路 (中央線,上線,下線) である.中央線は価格の平均コストであり,上線と下線は価格のプレッシャー線と支柱線を代表する.

標準差の概念が採用されているため,ブリーンの通りの幅は近期価格変動に応じて動的に調整される.波動が小さい場合,ブリーンの通りの幅が狭くなる.波動が大きい場合,ブリーンの通りの幅が広がる.BOLL通りの幅が狭くなると,価格は徐々に均等値に戻る.BOLL通りの幅が狭くなると,市場が変化し始めることを意味し,価格が上昇すると買い手力が増加し,価格が下落すると売り手力が増加することを示します.

ブリン帯指標の計算方法

すべての技術指標の中で,ブリンズ帯の計算方法は最も複雑で,中央線 (MB),上線 (UP),下線 (DN) の計算を伴う統計学における標準差の概念を導入した.その計算方法は以下のとおりである.

中央線= N 時間の簡単な移動平均線列車に乗る= 中心軌道 + K × N 時間段の標準差鉄道下=中軌道 − K × N 時間段の標準差img図4-19

戦略的論理

ブリンラインの使い方はいくつかあり,単独でも使用し,他の指標と組み合わせても使用できます. 本節では,ブリンラインの使い方の一番簡単な方法を採用します.すなわち,価格が下から上へと上向きを突破すると,つまり上向きのプレッシャーラインを突破すると,多国力が強くなっていると考え,波上波動が形成され,買い出しシグナルが生じます.


関連性

もっと

ハイルヒドラ2素晴らしい記事です!

空虚の量化マーク