3.3 戦略手順の一般的な構造,戦略の枠組み

作者: リン・ハーン小さな夢作成日:2016年11月12日 14:36:54 更新日:2019年8月1日 09:23:53 更新日:2019年8月1日 09:23:53 更新日:2019年8月1日 09:23:53 更新日:2019年8月1日 更新日:2019年8月1日 更新日:2019年8月1日 更新日:2019年8月1日 更新日:2019年8月1日 更新日:2019年8月1日

戦略の一般的構造,戦略の枠組み


  • 戦略の一般的な構造

    2.6 期貨 章では,CTPの商品期貨でよく使われる手順構造 (輪廻式) を初歩的に使用しました.

function MainLoop(){ //  处理具体工作的函数
  // deal Main task
}
function main() {
      var status = null;
      while(true){
          status = exchange.IO("status");      //  调用API 确定连接状态
          if(status == true){                 //  判断状态
              LogStatus("已连接!");
              MainLoop();                      //  连接上 交易所服务器后,执行主要工作函数。
          }else{                               //  如果没有连接上 即 exchange.IO("status") 函数返回 false
              LogStatus("未连接状态!");         //  在状态栏显示 未连接状态。
          }
          Sleep(1000);                         //  需要有轮询间隔, 以免访问过于频繁。
      }
}

デジタル通貨の戦略の一般的構造は? 輪廻型と同じですが,実際は商品フューチャーよりもシンプルです.

//other functions
function f1(){
    //...
}
//...
function loop(){
    // do somethings
    f1();
    //...
    //API...
}
function main(){
    //初始化
    //...
    
    while(true){
        loop();
        Sleep(1000);
    }
}

建築は相談式なのか,並行実行メカニズムがあるのか?
発明者定量化プラットフォームは,APIの一部を包装し,同期メカニズムをサポートしています. (詳細についてはAPIドキュメントを参照してください)

img

  • 模擬マルチタスクモード

    コードアーキテクチャ: (私自身もカバノキです.アーキテクチャはZサイズ学習です.誤りがある場合は注意してください)
// 其它函数
function buy(){
    Log("buy");
}
//任务生成器构造函数
function MakeTasksController(){
    var TasksController = {};
    TasksController.tasks = [];  // 任务数组
    TasksController.initTask = function(cmd){ // 初始化要执行的任务参数、设置
        var task = {
            //各种任务 数据
            cmd : 0,     // 命令: 0:waiting , 1: buy 
            state: 0,    // 状态: 0:uncomplete  1: complete
            //...
        };
        task.cmd = cmd;
        //task.XX  初始化
        TasksController.tasks.push(task);   // 存入 任务数组
    };
    TasksController.DealWithTasks = function(){  // 处理  tasks 数组内 储存的task
        _.each(TasksController.tasks, function(task){  // 迭代 执行全部任务
            // 处理任务task ,保存每个任务的状态数据,直到任务完成。在处理任务的具体代码中 不做死循环处理。 
            // 即每个任务不独占时间。下次轮询 读取task 数据继续任务。从而实现模拟多任务模式。 
            // ...
            if(task.cmd === 1){
                buy();
                task.state = 1; // 任务执行完成就调用 赋值语句 给task.state 标记赋值
            }
        });
    };
    TasksController.CheckTask = function(){
        var process = 0;
        _.each(TasksController.tasks, function(task){
            if(task.state === 1){
                // 任务已经完成,弹出完成的任务。
                Log("task.cmd:", task.cmd, "已完成!");
            }else{
                process++;
            }
        });
        if(process === 0){
            TasksController.tasks = [];    // 清空 任务数组
        }
    };
    return TasksController;
}
function main(){
    var tasksController = MakeTasksController();
    var count = 0;
    while(true){
        //触发新建任务,例子。
        if(count === 100){
            tasksController.initTask(1);   //  初始化任务,   buy 任务  即  1 
            //...  初始其它任务。
        }
        //...      
        tasksController.DealWithTasks();  // 处理任务
        tasksController.CheckTask();      // 检查任务处理
        count++;
        Sleep(200);   //  任务很多的时候 可以适当减小 Sleep 的参数值
    }
}
  • 完全な取引システムにはどのモジュールが含まれているのでしょうか?

    1、収益統計モジュール、 2, UI インタフェース,データフィードバック,状態表示. 3 インタラクティブモジュール グラフモジュール 4 5. 戦略的論理 (具体的な取引アルゴリズム) 取引モジュール 7、データ処理モジュール、

    簡単な戦略の枠組み:シンプルな戦略フレームワーク (自作で拡張できる)

    この戦略の枠組みは,基本的に,前回の学習内容である. 各種のコードが組み合わせられ,コードを注意深く読むと,あなたはよく知っている. 直接実行できますが,操作を誘発するコードを書いていないので,自己拡張可能です. この戦略の枠組みを拡張し,戦略が実際に実行されるよう,次の章で取り組みます.


もっと

ケヴィン内容だけでなく,この態度も学ばなければならない.

ウラ学習の旅を始める ザン