Built-in Function_Cross Analysis và hướng dẫn

Tác giả:Ninabadass, Tạo: 2022-03-23 08:56:29, Cập nhật: 2022-03-24 16:54:30

Built-in Function_Cross Analysis & Instructions (tạm dịch: Phân tích chéo và hướng dẫn)

Chức năng _Cross trong cột hàm toàn cầu của tài liệu API được sử dụng để tính trạng thái chéo của hai đường chỉ số

  • Mã như sau được thực hiện bởi hàm:

    Cần lưu ý rằng khiarr1được định nghĩa là một mảng các chỉ số đường dây nhanh, vàarr2được định nghĩa là một mảng các chỉ số đường chậm, giá trị được trả về bởi_Crosschức năng là một số tích cực, đó là, theo ngữ cảnh của tài liệua positive number is the upswing period, a negative number indicates the downswing period, and 0 means it is the same as the current price có thể thấy rằng tại thời điểm này,arr1đã vượt quaarr2trong n chu kỳ, cụ thể là đường thẳng nhanh vượt qua đường chậm, cho thấy đường chéo vàng. Tương tự, nếu_Crosshàm trả về một số âm, nó có nghĩa là chết chéo.

    Nếu ``arr1is defined as an array of slow line indicators, andarr2as an array of fast line indicators, the situation will be opposite. If the value returned by the_ Chữ thậpfunction is a positive number, it means death cross. If the value returned by theChức năng chéo là một số âm, nghĩa là chéo vàng.

// Return the number of upswing periods; a positive number represents the number of upswing periods, and a negative number represents the number of downswing periods, and 0 means it is the same as the current price  
$.Cross = function(arr1, arr2) {            // The number of parameters is 2. As you can see from the parameter names, these two parameters should be of array type. 
                                            // The array is like a line segment in the coordinate system where the X axis is the array index value and the Y axis is the index value. The function is to determine the intersection of two lines
    if (arr1.length !== arr2.length) {      // First, judge whether the lengths of the two compared arrays are equal 
        throw "array length not equal";     // If they are not equal, raise an error, for the unequal indicator lines cannot judge if crossed or not 
    }
    var n = 0;                              // Declare the variable n to record the cross-status; its initial value is 0, indicating not crossed
    for (var i = arr1.length-1; i >= 0; i--) {      // Traverse arr1,from the last element to the front 
        if (typeof(arr1[i]) !== 'number' || typeof(arr2[i]) !== 'number') { // when arr1 or arr2 is non-numeric type (namely invalid indicators), break the traversing loop 
            break;                                  // break the loop 
        }
        if (arr1[i] < arr2[i]) {                    // If arr1 < arr2, the n-- will record the comparative status of arr1 and arr2 from the beginning (that is, at the beginning, n will adjust automatically according to the comparative value of arr1[i] and arr2[i]; once the comparison relation between arr1[i] and arr2[i] opposite to n happens, it means the two lines crossed). 
            if (n > 0) {
                break;
            }
            n--;
        } else if (arr1[i] > arr2[i]) {             // If arr1 > arr2, then n++
            if (n < 0) {
                break;
            }
            n++;
        } else {                                    // arr1[i] == arr2[i], then break immediately 
            break;
        }
    }
    return n;                                       // Return n, indicating the number of periods with cross, 0 means equal indicator values
};
  • Chúng tôi mô phỏng một mảng dữ liệu và truyền nó để xem kết quả

var arr1 = [1,2,3,4,5,6,8,8,9]     // Fast line indicator
var arr2 = [2,3,4,5,6,7,7,7,7]     // Slow line indicator
function main(){
    Log("_Cross(arr1, arr2) : ", _Cross(arr1, arr2))
    Log("_Cross(arr2, arr1) : ", _Cross(arr2, arr1))
}

img

Bạn có thể thấy kết quả là 3 và -3.

Vị trí chéo nằm trước ba thanh K-line.


Thêm nữa