Hướng dẫn php average function - hàm trung bình php

Dường như có một lỗi trong tính toán SMA trong mã bên dưới ... ai đó có thể chỉ ra ở đâu ..

Nội phân Chính showShow

  • Trung bình di chuyển
  • Dữ liệu lớn hoặc nhỏ: Mảng và máy phát điện
  • Thời gian trung bình, sự chậm trễ và trung bình có trọng số.
  • 4. Trung bình so với các giá trị N, hiện tại và N trước.
  • 5. Trung bình có trọng số so với các giá trị N, hiện tại và N trước đó.

/** * Trung bình di chuyển đơn giản [SMA] * *

Trung bình động là một chỉ số cho thấy giá trị trung bình của giá bảo mật trong một khoảng thời gian. Khi tính trung bình di chuyển, một phân tích toán học về giá trị trung bình của bảo mật trong khoảng thời gian được xác định trước được thực hiện. Khi giá của bảo mật thay đổi, giá trung bình của nó tăng lên hoặc giảm.

* *

Một trung bình di chuyển đơn giản, hoặc số học, được tính bằng cách thêm giá đóng của bảo mật trong một số khoảng thời gian [ví dụ: 12 ngày] và sau đó chia tổng số này cho số khoảng thời gian. Kết quả là giá trung bình của bảo mật trong khoảng thời gian. Trung bình di chuyển đơn giản cho trọng lượng bằng nhau cho mỗi giá hàng ngày.

* *

Formula:

Một trung bình di chuyển đơn giản, hoặc số học, được tính bằng cách thêm giá đóng của bảo mật trong một số khoảng thời gian [ví dụ: 12 ngày] và sau đó chia tổng số này cho số khoảng thời gian. Kết quả là giá trung bình của bảo mật trong khoảng thời gian. Trung bình di chuyển đơn giản cho trọng lượng bằng nhau cho mỗi giá hàng ngày.


* * - tổng [đóng các giai đoạn n]/n *//

[defn moving-average
[coll n]
[cond
[< n 1] nil
[= n 1] coll
:else   [let [sums [reductions + 0 coll]]
          [map #[/ [- %1 %2] n] [drop n sums] sums]]]]

[time [doall [moving-average coll n]]]
# "Elapsed time: 9.184 msecs"

Ngoài ra tính toán SMA trong mã khác dường như dễ dàng hơn .. một vài ví dụ ở đây .. nếu ai đó đã thực hiện nó trong PHP tương tự .. ??

double[] MovingAverage[int period, double[] source]
{
    var ma = new double[source.Length];

    double sum = 0;
    for [int bar = 0; bar < period; bar++]
        sum += source[bar];

    ma[period - 1] = sum/period;

    for [int bar = period; bar < source.Length; bar++]
        ma[bar] = ma[bar - 1] + source[bar]/period
                              - source[bar - period]/period;

    return ma;
}

Trung bình di chuyển

Dữ liệu lớn hoặc nhỏ: Mảng và máy phát điện

Thời gian trung bình, sự chậm trễ và trung bình có trọng số.

4. Trung bình so với các giá trị N, hiện tại và N trước.

5. Trung bình có trọng số so với các giá trị N, hiện tại và N trước đó.

/** * Trung bình di chuyển đơn giản [SMA] * *

Dữ liệu lớn hoặc nhỏ: Mảng và máy phát điện

Thời gian trung bình, sự chậm trễ và trung bình có trọng số.

4. Trung bình so với các giá trị N, hiện tại và N trước.

Bài Viết Liên Quan

Chủ Đề