4
ফোকাস
1271
অনুসারী

৩.৫ নীতি কাঠামো টেমপ্লেট

তৈরি: 2017-01-19 16:04:24, আপডেট করা হয়েছে: 2017-10-11 10:27:27
comments   4
hits   5727

৩.৫ নীতি কাঠামো টেমপ্লেট


কৌশল ফ্রেমওয়ার্ক টেমপ্লেট ব্যবহার করে, আপনি খুব কম কোড দিয়ে সহজ ট্রেন্ডিং কৌশল তৈরি করতে পারেন, এবং যদি আপনি কিছু প্রোগ্রামিং বেসিকের সাথে কাজ করেন তবে আপনি একটি হিডিং-টাইপ কৌশল লিখতে পারেন।

৩.৫ নীতি কাঠামো টেমপ্লেট

  • ব্যবহারের ধাপঃ

    • ১। টেমপ্লেটটি খুঁজে নিন এবং আপনার অ্যাকাউন্টের কন্ট্রোল সেন্টারে কপি করুন।

    • ২। নীতি লেখার সময় নীতি ফ্রেমওয়ার্ক টেমপ্লেট ট্যাব উল্লেখ করুন।

    ৩.৫ নীতি কাঠামো টেমপ্লেট

  • টেস্টিং টেমপ্লেট নীতিমালা ফ্রেমওয়ার্ক টেমপ্লেট টেমপ্লেট কোডটি পোস্ট করুন (যদি আপনি ইতিমধ্যে একটি নীতিমালা পৃষ্ঠা তৈরি করেছেন তবে টেমপ্লেট টেমপ্লেটটি নির্বাচন করুন):

  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();  // 不用传参数。                             // 启动模板
  }
  • এক্সপোর্ট ফাংশনঃ

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

নীতির মধ্যে এই অবস্থাগুলি অবশ্যই সংজ্ঞায়িত করতে হবে, অন্যথায় টেমপ্লেটটি সনাক্ত করতে পারবে না।

  • 1、 $.Relation_Exchange_onTick(p1, p2); প্যারামিটার p1: এক্সচেঞ্জের মতো এক্সচেঞ্জের বস্তু[0] অর্থাৎ, রোবট কনফিগারেশন পাতা যোগ করা প্রথম এক্সচেঞ্জ অবজেক্ট। প্যারামিটার p2: স্বনির্ধারিত লেনদেনের লজিক ফাংশন যেমন উদাহরণে onTick1 ফাংশন, ফাংশন নামটি পাস করা যেতে পারে।

  • 2、 \(.TaskCmd(p1, p2); প্যারামিটার p1: টেমপ্লেটটিতে প্রেরিত কমান্ডগুলি সম্পাদন করে, যেমনঃ TASK_OPEN_LONG // মাল্টি-স্টক কমান্ড তৈরি করুন প্যারামিটার p2: TASK_IDLE, TASK_COVER কমান্ড পাঠানোর সময় প্যারামিটারগুলি প্রেরণ করা যাবে না। অন্যান্য কমান্ডগুলিকে একটি সংখ্যাগত প্যারামিটার p2 অনুসরণ করতে হবে, যা অপারেশন করতে হবে তা নির্দেশ করে। return \).TaskCmd(p1, p2); onTick ফাংশনে রিটার্ন করতে হবে।

  • 3、 $.Trend(); কোনো প্যারামিটার নেই

  • ৪. \(.AddData ((p1, p2, p3); // স্ট্যাটাস ট্যাবের শেষে কন্টেন্ট যোগ করুন প্যারামিটার p1: যোগ করার জন্য টেবিলের সূচক, 0 প্রথম, 1 দ্বিতীয় (যদি \).Relation_Exchange_onTick দ্বারা দ্বিতীয় এক্সচেঞ্জের সাথে সম্পর্কিত হয়) প্যারামিটার p2: যোগ করা বিষয়বস্তুর বৈশিষ্ট্য নাম, এই ক্ষেত্রে যোগ করা সূচকের ডেটা স্ট্যাটাস ট্যাবলেটে প্রদর্শিত হয়

    প্যারামিটার p3: স্ট্রিং, আপনি যে ডেটা প্রদর্শন করতে চান তা স্ট্রিং হিসাবে রূপান্তর করুন এবং p3 প্যারামিটারটির অবস্থান বলুন।

  • onTick1 ফাংশনের কোড বিশ্লেষণ দেখুনঃ

  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);               // 没有任何 触发,发送等待命令。
  }
  • #### চলমান প্রদর্শনঃ

৩.৫ নীতি কাঠামো টেমপ্লেট

৩.৫ নীতি কাঠামো টেমপ্লেট

  • #### পলিসি ফ্রেমওয়ার্ক টেমপ্লেটের ইন্টারেক্টিভ বৈশিষ্ট্য

যেহেতু টেমপ্লেটগুলি ইন্টারেক্টিভ কন্ট্রোল যুক্ত করার ক্ষমতা রাখে না, তাই ইন্টারেক্টিভ কন্ট্রোলগুলি কেবলমাত্র প্যানেল নীতি ফ্রেমওয়ার্কের টেমপ্লেট প্যানেলের নীতির উপর ভিত্তি করে যুক্ত করা যেতে পারে। পদক্ষেপঃ ১. স্ট্রিং টাইপ কন্ট্রোল যোগ করুন এবং কন্ট্রোলের নামটি JS_code লিখুন। ৩.৫ নীতি কাঠামো টেমপ্লেট

২. তারপর সবুজ রঙের “+” ক্লিক করুন, তারপর “সংরক্ষণ করুন” ক্লিক করুন। ৩.৫ নীতি কাঠামো টেমপ্লেট

৩। যখন কৌশলটি চালানো হয় তখন সমস্ত কমান্ড প্রদর্শিত হয় যা সরাসরি কপি করা যেতে পারে এবং কৌশলটিকে কমান্ড দেওয়া যেতে পারে। ৩.৫ নীতি কাঠামো টেমপ্লেট

4। কমান্ড ফর্ম্যাট হল CMD ((index, CMD_STR, amount) প্রথম প্যারামিটার: index হল কোন এক্সচেঞ্জের উপর কাজ করা হয়, index এর অবস্থান 0 লেখা হয়, অর্থাৎ প্রথম এক্সচেঞ্জের উপর কাজ করা হয়, ইত্যাদি। দ্বিতীয় প্যারামিটার: কমান্ডটি ট্যাবুলার শীর্ষে প্রদর্শিত হবে। তৃতীয় প্যারামিটারঃ অপারেশনের সংখ্যা

উদাহরণস্বরূপঃ ৩.৫ নীতি কাঠামো টেমপ্লেট

অন্যান্য কমান্ড একই পদ্ধতিতে ব্যবহৃত হয়।

ট্রেডিং লজিক এলোমেলোভাবে লেখা হয়েছে, দয়া করে এটিকে সত্যিকার অর্থে লিখবেন না!