avatar of 发明者量化-小小梦 发明者量化-小小梦
fokus pada Pesan pribadi
4
fokus pada
1271
Pengikut

3.5 Template Kerangka Kebijakan

Dibuat di: 2017-01-19 16:04:24, diperbarui pada: 2017-10-11 10:27:27
comments   4
hits   5727

3.5 Template Kerangka Kebijakan


Dengan menggunakan templat kerangka kebijakan, Anda dapat membuat strategi tren sederhana dengan sedikit kode, dan jika Anda memiliki dasar pemrograman, Anda dapat menulis strategi tipe hedging.

3.5 Template Kerangka Kebijakan

  • Langkah-langkah untuk menggunakannya:

    • 1 , Cari template ini di kotak strategi seperti gambar di atas, dan salin ke Control Center akun Anda.

      1. Mengutip template kerangka kebijakan seperti gambar di bawah ini:

    3.5 Template Kerangka Kebijakan

  • Kode kebijakan untuk kotak templat kerangka kebijakan kotak tes (<< Cek kotak templat kerangka kebijakan kotak yang sudah ditulis pada halaman kebijakan):

  var TASK_IDLE = 0;          // 空闲状态命令
  var TASK_OPEN_LONG = 1;     // 建多仓命令
  var TASK_OPEN_SHORT = 2;    // 建空仓命令
  var TASK_ADD = 3;           // 加仓命令
  var TASK_ST = 4;            // 止损命令
  var TASK_COVER = 5;         // 平仓命令
  function onTick1() {        // 趋势系统1: 均线  具体买卖逻辑实现
      // MA 
      var records = _C(exchanges[0].GetRecords);
      if(records.length < 11){
          return $.TaskCmd(TASK_IDLE);
      }
      var ema_fast = TA.MA(records, 7);
      var ema_slow = TA.MA(records, 10);
      var data = "fast[-2]:" + ema_fast[ema_fast.length - 2] + " slow[-2]" + ema_slow[ema_slow.length - 2] + " fast[-1]:" + ema_fast[ema_fast.length - 1] + " slow[-1]:" + ema_slow[ema_slow.length - 1];
      $.AddData(0, "MA", data);
      if (ema_fast[ema_fast.length - 1] < ema_slow[ema_slow.length - 1] && ema_fast[ema_fast.length - 2] > ema_slow[ema_slow.length - 2]) {
          return $.TaskCmd(TASK_COVER);
      }else if(ema_fast[ema_fast.length - 1] > ema_slow[ema_slow.length - 1] && ema_fast[ema_fast.length - 2] < ema_slow[ema_slow.length - 2]){
          return $.TaskCmd(TASK_OPEN_LONG, 0.5);
      }
      return $.TaskCmd(TASK_IDLE);
  }
  function onTick2() {        // 趋势系统2:MACD  具体买卖逻辑实现
      // MACD
      var records = _C(exchanges[1].GetRecords);
      if(records.length < 15){
          return $.TaskCmd(TASK_IDLE);
      }
      var macd = TA.MACD(records);
      var dif = macd[0];
      var dea = macd[1]; 
      var data = "dif[-2]:" + dif[dif.length - 2] + " dea[-2]" + dea[dea.length - 2] + " dif[-1]:" + dif[dif.length - 1] + " dea[-1]:" + dea[dea.length - 1];
      $.AddData(1, "MACD", data);
      if (dif[dif.length - 1] > dea[dea.length - 1] && dif[dif.length - 2] < dea[dea.length - 2]) {
          return $.TaskCmd(TASK_COVER);
      }else if(dif[dif.length - 1] < dea[dea.length - 1] && dif[dif.length - 2] > dea[dea.length - 2]){
          return $.TaskCmd(TASK_OPEN_LONG, 0.8);
      }
      return $.TaskCmd(TASK_IDLE);
  }
  function main() {
      $.Relation_Exchange_onTick(exchanges[0], onTick1);    // 把 添加的第一个交易所  关联  趋势系统1 即 均线MA 
      $.Relation_Exchange_onTick(exchanges[1], onTick2);    // 把 添加的第二个交易所  关联  趋势系统2 即 MACD
      $.Trend();  // 不用传参数。                             // 启动模板
  }
  • Fungsi Ekspor:

    • Memesan:
  TASK_IDLE = 0;          // 空闲状态命令
  TASK_OPEN_LONG = 1;     // 建多仓命令
  TASK_OPEN_SHORT = 2;    // 建空仓命令
  TASK_ADD = 3;           // 加仓命令
  TASK_ST = 4;            // 止损命令
  TASK_COVER = 5;         // 平仓命令

Keadaan ini harus didefinisikan di dalam kebijakan, jika tidak, template tidak dapat dikenali.

  • 1、 $.Relation_Exchange_onTick(p1, p2); Parameter p1: Objek pertukaran, seperti exchanges[0] adalah objek bursa pertama yang ditambahkan ke halaman konfigurasi robot. Parameter p2: Fungsi logika transaksi yang telah ditentukan, seperti fungsi onTick1 dalam contoh, dapat ditransmisikan ke dalam nama fungsi tersebut.

  • 2、 \(.TaskCmd(p1, p2); Parameter p1 : perintah yang dikirim ke template untuk dieksekusi, seperti: TASK_OPEN_LONG // Build multi-storey command Parameter p2: TASK_IDLE, TASK_COVER dapat dikirim tanpa parameter. Perintah lain harus diikuti dengan parameter kuantitatif yaitu p2, yang menunjukkan jumlah yang akan dioperasikan. Panggilan ini memerlukan return \).TaskCmd(p1, p2); dikembalikan dalam fungsi onTick.

  • 3、 $.Trend(); Tidak ada parameter

    1. \(.AddData(p1, p2, p3); // Tambahkan konten ke bagian akhir tab status. Parameter p1: Indeks dari tabel yang akan ditambahkan, 0 sebagai yang pertama, 1 sebagai yang kedua (dengan asumsi bahwa \).Relation_Exchange_onTick telah dikaitkan dengan pertukaran kedua) Parameter p2: Nama atribut dari konten yang ditambahkan, dalam contoh ini data dari indikator yang ditambahkan ditampilkan dalam tabel status 。(MA dan MACD)

    Parameter p3: string, untuk menyalurkan data yang ingin ditampilkan ke dalam string.

  • Perhatikan analisa kode dari fungsi onTick1 untuk logika transaksi dalam contoh ini:

  function onTick1() {        // 趋势系统1: 均线  具体买卖逻辑实现
      // MA 
      var records = _C(exchanges[0].GetRecords); // 用跟 onTick1 函数 绑定的交易所 exchanges[0] 对象 获取该交易所的K线数据。
      if(records.length < 11){                   // 判断K线数据是否足够长度
          return $.TaskCmd(TASK_IDLE);           // K线数据长度不足时,发送等待命令。程序则不执行下面的代码。
      }
      var ema_fast = TA.MA(records, 7);          // 根据长度足够的K线数据计算 周期为7 的均线数据 即: 快线
      var ema_slow = TA.MA(records, 10);         // 计算 慢线
      var data = "fast[-2]:" + ema_fast[ema_fast.length - 2] + " slow[-2]" + ema_slow[ema_slow.length - 2] + " fast[-1]:" + ema_fast[ema_fast.length - 1] + " slow[-1]:" + ema_slow[ema_slow.length - 1];
      // 处理数据 组合为 字符串 data
      $.AddData(0, "MA", data);                  // 向状态栏表格 添加数据显示
      if (ema_fast[ema_fast.length - 1] < ema_slow[ema_slow.length - 1] && ema_fast[ema_fast.length - 2] > ema_slow[ema_slow.length - 2]) {               // 平仓触发判断
          return $.TaskCmd(TASK_COVER);          // 发送平仓命令
      }else if(ema_fast[ema_fast.length - 1] > ema_slow[ema_slow.length - 1] && ema_fast[ema_fast.length - 2] < ema_slow[ema_slow.length - 2]){           // 开仓触发判断
          return $.TaskCmd(TASK_OPEN_LONG, 0.5); // 发送开多仓命令
      }
      return $.TaskCmd(TASK_IDLE);               // 没有任何 触发,发送等待命令。
  }
  • #### Menampilkan:

3.5 Template Kerangka Kebijakan

3.5 Template Kerangka Kebijakan

  • #### Fitur interaktif dari template kerangka kebijakan

Karena template tidak memiliki fungsi untuk menambahkan kontrol interaktif, kontrol interaktif hanya dapat ditambahkan pada kebijakan yang merujuk pada template frame frame frame frame frame frame frame frame frame frame frame frame frame frame frame frame frame frame frame frame frame frame frame frame frame frame frame frame frame frame frame frame frame frame frame frame frame frame frame frame frame frame frame frame frame frame frame frame frame frame frame frame frame frame frame frame frame frame frame frame frame frame frame frame frame frame frame frame frame frame frame frame frame frame frame frame frame frame frame frame frame frame frame frame frame frame frame frame frame frame frame frame frame frame frame frame frame frame frame frame frame frame frame frame frame frame frame frame frame frame frame frame frame frame frame frame frame frame frame frame frame frame frame frame frame frame frame frame frame frame frame frame frame frame frame frame frame frame frame frame frame frame frame frame frame frame frame frame frame frame frame frame frame frame frame frame frame frame frame frame frame frame frame frame frame frame frame frame frame frame frame frame frame frame frame frame frame frame frame frame frame frame frame frame frame frame frame frame frame frame frame frame frame frame frame frame frame frame frame frame frame frame frame frame frame frame frame frame frame frame frame frame frame frame frame frame frame frame frame frame frame frame frame frame frame frame frame frame frame frame frame Langkah selanjutnya: 1. Menambahkan sebuah kontrol dari tipe string ke dalam interaksi kebijakan, nama kontrol ditulis JS_code seperti berikut: 3.5 Template Kerangka Kebijakan

  1. Kemudian klik tanda plus berwarna hijau, lalu klik save. 3.5 Template Kerangka Kebijakan

  2. Ketika sebuah strategi berjalan, semua perintah yang ditampilkan dapat langsung disalin dan dikirimkan ke sebuah strategi. 3.5 Template Kerangka Kebijakan

  3. Format perintah adalah CMD ((index, CMD_STR, amount) Parameter pertama: index adalah bursa yang dioperasikan, posisi index ditulis 0, yang mewakili bursa pertama yang dioperasikan, dan seterusnya. Parameter kedua: perintah yang ditampilkan di bagian atas tabel. Parameter ketiga: jumlah operasi yang akan dilakukan.

Misalnya: 3.5 Template Kerangka Kebijakan

Perintah lainnya digunakan dengan cara yang sama.

Logika transaksi ditulis secara acak, jangan langsung! ☺ Jika BUG menyarankan, selamat bertepuk tangan!^^