자바스크립트와 함께 게임을 하는 노인 - 구매를 하는 파트너를 만드는 (7) 유용한 도구

저자:작은 꿈, 2017-03-16 12:29:51, 업데이트: 2017-10-11 10:37:54

                                  // 把 AccountToTable 引用传递给 导出函数 (接口)

// 주 함수와 테스트 function main (() { var p = $.NewPositionManager (); p.OpenShort ((MA701, 1); p.OpenShort ((MA705, 1); Log (p.GetPosition (MA701, PD_SHORT)); 로그 ((p.GetAccount (()); 로그 (p.Account) Sleep ((60000 * 10); p.CoverAll ((); 로그프로프트 (p.Profit) Log (($.IsTrading ((MA701))); // 다종류에서 거래 쿼리를 사용하여 차단되지 않은 거래 작업을 완료합니다 var q = $.NewTaskQueue (); q.pushTask ((exchange, MA701, buy, 3, function ((task, ret) { // 마지막 변수 function ((task, ret) {...}는 익명 함수로서 호출 함수로 전달되는 작업 객체 task이다. log ((task.desc, ret) // 호출 함수에서 작업에 대한 설명과 작업이 완료된 값이 반환됩니다. 이것들은 기본 설정이며 즉시 실행되지 않습니다. if (ret) { q.pushTask ((exchange, MA701, closebuy, 1, 123, function ((task, ret) { // 첫 번째 압축 쿼리의 작업의 호출 함수에서, 압축이 일치하는 작업이 작업 쿼리로 연결되는 작업을 수행하는 데 사용됩니다. // 첫 번째 작업 트랜잭션이 완료되면 호출 함수에서 매칭 동작이 시작됩니다. 로그 (q, task.desc, ret, task.arg) }) ♪ ♪ }) while (true) { // 공백 상태에서 미완성 작업을 완료하기 위해 poll를 호출합니다 q.poll ((() 수면 (Sleep) ♪ ♪ ♪ ♪


- #### 通篇看完,我想你们应该对这个模块有了一定的了解。

这个模块代码分两种 模式:
- 1、单品种的交易模式

  这个只能用于一个品种的商品期货合约的买卖处理,整体流程是线性的。
  
- 2、多品种模拟并发交易模式:

  这个就可以用来做多品种的策略,比如多品种的海龟交易法。(多品种的好处就是分散资金,一定程度上控制风险。)
  
  这个模式的设计思路就是遇到任何错误都不等待重试,马上返回对应的错误码,这样多个任务执行时,虽然程序执行流程还是线性的。但是都已很快的速度执行,不独占过多时间,类似CPU并发机制。并且各个任务都有自身的变量寄存数据结构,在错误返回后再次执行的时候会继续任务的执行直到完成,模拟出并发执行的效果。适合用于多品种策略系统使用(各品种交易在时间序列上的互相影响降至较低程度)。
  
  并且使用了回调函数,在任务完成时可以自动触发一些设计好的代码。
  
  这种思路很值得学习。
  
下一篇,我们会用这些JS代码创造出一个真正的策略。


#### 先写到这,欢迎读者给我留言!提出建议和意见,如果感觉好玩可以分享给更多热爱程序热爱交易的朋友 
https://www.fmz.com/bbs-topic/737

### 程序员 littleDream 原创

더 많은