avatar of 发明者量化-小小梦 发明者量化-小小梦
フォロー ダイレクトメッセージ
4
フォロー
1271
フォロワー

30行のコードで定量投資の世界へ

作成日:: 2016-04-06 10:17:26, 更新日:: 2020-01-13 15:17:11
comments   13
hits   7394

30行で正の利益システムを作ります.

プログラミングは30行のコードで,私は30行のコードを習得し,それを全体的に理解する.

ポリシーのパラメータは以下の通りです.

パラメータ 説明する タイプ デフォルト値
FastPeriod 市場への入札速報サイクル 数字型 ((number)) 3
SlowPeriod 市場への入場のローラインサイクル 数字型 ((number)) 7
EnterPeriod 入市観察期 数字型 ((number)) 3
ExitFastPeriod 離市快線周期 数字型 ((number)) 3
ExitSlowPeriod 離市慢線周期 数字型 ((number)) 7
ExitPeriod 都市からの観察期 数字型 ((number)) 1
PositionRatio ポジション比率 数字型 ((number)) 0.8
Interval 投票回数 (秒) 数字型 ((number)) 10

30行のコードで定量投資の世界へ

  • 輸入しました交易类库買い物や売り物などで 悩む必要がないので 戦略を簡単に書けるのです
  • グループで解答してください. グループで解答してください. グループで解答してください.
function main() {
    var STATE_IDLE  = -1;
    var state = STATE_IDLE;
    var opAmount = 0;
    var initAccount = $.GetAccount();
    Log(initAccount);
    while (true) {
        if (state === STATE_IDLE) {
            var n = $.Cross(FastPeriod, SlowPeriod);
            if (Math.abs(n) >= EnterPeriod) {
                opAmount = parseFloat((initAccount.Stocks * PositionRatio).toFixed(3));
                var obj = n > 0 ? $.Buy(opAmount) : $.Sell(opAmount);
                if (obj) {
                    opAmount = obj.amount;
                    state = n > 0 ? PD_LONG : PD_SHORT;
                    Log("开仓详情", obj, "交叉周期", n);
                }
            }
        } else {
            var n = $.Cross(ExitFastPeriod, ExitSlowPeriod);
            if (Math.abs(n) >= ExitPeriod && ((state === PD_LONG && n < 0) || (state === PD_SHORT && n > 0))) {
                var obj = state === PD_LONG ? $.Sell(opAmount) : $.Buy(opAmount);
                state = STATE_IDLE;
                var nowAccount = $.GetAccount();
                LogProfit(nowAccount.Balance - initAccount.Balance, '钱:', nowAccount.Balance, '币:', nowAccount.Stocks, '平仓详情:', obj, "交叉周期", n);
            }
        }
        Sleep(Interval*1000);
    }
}
  • この策略は,主関数function main (()) のみで,他の関数モジュールはない。主関数内のループのみである。
  • QQグループで共有されているこの戦略のコード注釈版は,初回学習中の同級生が,学習に便利な注釈をご覧いただけます.
  • 公式のQQグループに登録していない方はご参加ください: 309368835 発明者 量化EA交流 (原BotVS) 〜 策略は数十行のコードで,簡潔です!
  • JavaScriptの基礎知識のない生徒を気遣うため,簡単な文法で説明します.

変数の宣言

キーワードを使ってvar+ 変数の名前var name = “小明”

循環する

while(循环条件){
    // 将会重复执行的代码
}

ループ条件が真である場合,繰り返し{}内のコードを実行する. ループ条件が偽である場合,ループを飛び出す.

条件分岐

if (判断条件){
    // 执行代码
} else {
    // 执行代码
}

簡単に訳すと,このコードを実行すると,

付与する

1つ=例えば,この2つの数字は

name = “张三”;

比較と等しいと間違えるのは簡単です. 比較してみると==この2つの等号は 例を挙げると“张三”==“李四”チャン・三はリー・四ではない.“张三”==“李四”偽物だとか

関連API

策略をデモンストレーションする前に,策略で使用されているAPIとテンプレートエクスポート関数を整理します. 詳細なAPIドキュメントとテンプレートソースコードの説明は,InventorQuantificationに記載されています.

  • $.GetAccount関数: 取引所のアカウント情報を取得するためのテンプレートエクスポート関数
  • ログ関数:ログに情報を出力し,数値を表示するAPI
  • $.Cross関数:均線指標の交差を検出するためのテンプレート輸出関数
  • $.Buy関数:購入操作のためのテンプレートエクスポート関数
  • $.Sell関数: テンプレートエクスポート関数で,販売操作を行う.
  • LogProfit関数:API,収益の出力用,関数は2番目のパラメータから他の情報を追加できます
  • Sleep関数:API,プログラムが一時停止するようにする,パラメータ単位はミリ秒である。

策略コードは,JavaScriptのライブラリ関数,オブジェクトメソッドを使用しています.

  • Math.abs () 関数: 参数に対する絶対値を返します.
  • Number オブジェクトの toFixed () 関数: 参数によって小数の四辺五入を保持する. 注意,関数は文字列として返される
  • parseFloat グローバル関数: 文字列参数 浮点数 を返す.

上記のJavascriptに関する情報は,JavaScript Number オブジェクト http://www.w3school.com.cn/jsref/jsref_obj_number.asp で学ぶことができます.

プログラム・フローズ・グラフ 手描き 道具を使わずに 素人 ありがとう

30行のコードで定量投資の世界へ

戦略を段階的に構築する

戦略プログラムへの入口にはmain()関数,つまり,策略は,main関数から実行されます.

30行のコードで定量投資の世界へ

30行のコードで定量投資の世界へ

30行のコードで定量投資の世界へ

30行のコードで定量投資の世界へ

30行のコードで定量投資の世界へ

確定オファー

この30行という簡単な戦略で完了です! コードをホストロボットに配置し, Running!戦略が起動し,操作を購入する。。。。

30行のコードで定量投資の世界へ

InventorQuantumは,このような簡潔なコードを提供してくれて感謝します. InventorQuantumには,多くのオープンソースの戦略が利用できます.

官方QQ群定期更新学习资源,为量化学习者铺平道路,登堂入室。

ビデオによる指導

http://v.youku.com/v_show/id_XMTUyNDY1NjQ2NA==.html

参考資料