Type/to search
8
Follow
1363
Followers
অন্তর্নির্মিত ফাংশন_ক্রস বিশ্লেষণ এবং ব্যবহারের নির্দেশাবলী
Tutorials
Created 2017-10-11 19:50:44  Updated 2021-11-05 16:15:56
 8
 8050

অন্তর্নির্মিত ফাংশন_ক্রস বিশ্লেষণ এবং ব্যবহারের নির্দেশাবলী

এপিআই ডকুমেন্টেশনের গ্লোবাল ফাংশন ক্যাটেগরিতে _Cross ফাংশনটি দুটি নির্দেশক লাইনের ক্রস স্ট্যাটাস গণনা করতে ব্যবহৃত হয়

  • ফাংশনটি নিম্নলিখিত কোডের মতো বাস্তবায়িত হয়েছেঃ

    এই ছবিগুলোতে, আমরা দেখব যে,arr1সংজ্ঞায়িত করা হয়েছে দ্রুতগতির সূচকের একটি অ্যারে হিসাবে।arr2একটি ধীররেখার সূচক অ্যারে হিসাবে সংজ্ঞায়িত করা হলে,
    _Crossফাংশনটি একটি ধনাত্মক মান ফেরত দেয়, অর্থাৎ正数为上穿周期, 负数表示下穿的周期, 0指当前价格一样
    এই মুহূর্তে,arr1পরেনarr2n চক্রের পর, এই সময়টি হল যখন দ্রুত লাইনটি ধীর লাইনটি অতিক্রম করে, যা গোল্ডেন ফোর্কের প্রতিনিধিত্ব করে।
    একইভাবে_Crossফাংশনটি যদি নেগেটিভ রিটার্ন করে, তাহলে এটি ডেডফোরক।

    যদি সংজ্ঞায়িতarr1একটি ধীরগতির সূচক অ্যারে,arr2ফাস্টলাইন সূচক অ্যারে, বিপরীতভাবে <unk>
    _Crossফাংশনটি একটি ধনাত্মক মান প্রদান করে যা ডেডফোরকে নির্দেশ করে।
    _Crossফাংশনটি একটি নেতিবাচক মান প্রদান করে যা গোল্ডেন ফর্কের প্রতিনিধিত্ব করে।

javascript
// 返回上穿的周期数,正数为上穿周数,负数表示下穿的周数,0指当前价格一样 $.Cross = function(arr1, arr2) { // 参数个数为2个,从参数名可以看出,这两个参数应该都是数组类型,数组就 // 好比是在X轴为数组索引值,Y轴为指标值的坐标系中的线段,该函数就是判断两条线的 交叉情况 if (arr1.length !== arr2.length) { // 首先要判断比较的两个数组长度是否相等 throw "array length not equal"; // 如果不相等抛出错误,对于不相等的指标线无法判断相交 } var n = 0; // 声明变量n用来记录交叉状态,初始0,未相交 for (var i = arr1.length-1; i >= 0; i--) { // 遍历数组arr1,遍历顺序为从最后一个元素向前遍历 if (typeof(arr1[i]) !== 'number' || typeof(arr2[i]) !== 'number') { // 当arr1或者arr2任何一个数组为非数值类型(即无效指标)时,跳出遍历循环 break; // 跳出循环 } if (arr1[i] < arr2[i]) { // 如果arr1小于arr2则n--,会记录开始时arr1、arr2的相对状态,(即开始时n会根据arr1[i]、arr2[i]相对大小自行调整,一旦出现另一种和n状态相反的arr1[i]、arr2[i]大小关系,即发生了两条线交叉。) if (n > 0) { break; } n--; } else if (arr1[i] > arr2[i]) { // 如果arr1大于arr2则n++ if (n < 0) { break; } n++; } else { // arr1[i] == arr2[i],则立即跳出 break; } } return n; // 返回n值,代表已经交叉了多少周期,0即指标值相等 };
  • আমরা এই প্যারামিটারটিতে একটি ডাটা সেট সিমুলেট করি এবং দেখি কি হয়।

javascript
var arr1 = [1,2,3,4,5,6,8,8,9] // 快线指标 var arr2 = [2,3,4,5,6,7,7,7,7] // 慢线指标 function main(){ Log("_Cross(arr1, arr2) : ", _Cross(arr1, arr2)) Log("_Cross(arr2, arr1) : ", _Cross(arr2, arr1)) }

img

আপনি দেখতে পাচ্ছেন যে ফলাফলটি হল ৩, -৩।

img

ছবিতে দেখা যাচ্ছে যে তিনটি K-রেখার স্তম্ভের আগে ক্রস অবস্থান ঘটেছে।

Related Recommendations
Comment
All comments (6)

    没有交叉的时候,应该返回0吧?

    6 years ago
    javascript
    var arr1 = [1,2,3,4,5,6,8,8,9] // 快线指标 var arr2 = [2,3,4,5,6,7,7,7,7] // 慢线指标 function main(){ Log("_Cross(arr1, arr2) : ", _Cross(arr1, arr2)) Log("_Cross(arr2, arr1) : ", _Cross(arr2, arr1)) }

    可以用这个设置一组不交叉的数组,跑下。
    测试了不会返回0

    6 years ago

    谢谢回复!我的意思是说,返回0比较合理吧?

    6 years ago

    好的,这个我们考虑下。

    6 years ago

    要是来回交叉呢?

    8 years ago

    只检测 最近一次交叉, 看源码分析 可得知。

    8 years ago
  • 1
iPhone Download
Forums
PINE Language
© 2015 - ∞ INVENTOR PTE LTD (SG)