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 |
- 輸入しました
交易类库買い物や売り物などで 悩む必要がないので 戦略を簡単に書けるのです - グループで解答してください. グループで解答してください. グループで解答してください.
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 で学ぶことができます.
プログラム・フローズ・グラフ 手描き 道具を使わずに 素人 ありがとう
戦略を段階的に構築する
戦略プログラムへの入口にはmain()関数,つまり,策略は,main関数から実行されます.
確定オファー
この30行という簡単な戦略で完了です! コードをホストロボットに配置し,
Running!戦略が起動し,操作を購入する。。。。
InventorQuantumは,このような簡潔なコードを提供してくれて感謝します. InventorQuantumには,多くのオープンソースの戦略が利用できます.
官方QQ群定期更新学习资源,为量化学习者铺平道路,登堂入室。
ビデオによる指導
http://v.youku.com/v_show/id_XMTUyNDY1NjQ2NA==.html
参考資料
$.GetAccount 是FMZ 模板的导出函数(模板就是可复用的代码,参看API 文档上模板的描述)。 $.GetAccount是这个模板:https://www.fmz.com/strategy/10989 的导出函数。
上面的策略只是代码部分,没有策略参数设置,完整的策略可以在策略广场搜索30行均线策略。
就是2条均线,快线上穿慢线 一般是买入信号,上涨概率较大(程序自动买入操作)。 快线下穿慢线一般是卖出信号,下跌概率较大(程序自动卖出)。通过这样反复操作 在行情上升趋势中可以攫取利润。
- 1








