Trang 1 trên 622 12 CuốiCuối
Results 1 to 10 of 15

Thread: TL-Người dùng: Ý tưởng thay đổi biểu đồ MT4 tuyến tính thành biểu đồ lôgarit

  1. #1
    Xin chào,
    Tôi đã rất ý tưởng đặc biệt cho tất cả những người đổ lỗi cho MT4MT5 vì không vẽ đúng đường xu hướng chính xác và sử dụng Biểu đồ Tuyến tính mà MT4MT5 đang sử dụng.
    Có thể bất kỳ Bộ mã hóa nào có thể thay đổi Bộ chuyển đổi khoảng thời gian này từ Bảng xếp hạng MT4 -Kỹ thuật số -Linear Chuẩn sang Thang đo biểu đồ lôgarit.
    Tôi tin rằng đây là cách duy nhất để có được Bảng xếp hạng Logarithmic trong MT4MT5 cho tất cả các kỹ thuật Trendline-Lovers.
    Đây là indi và mã nguồn:
    // ------------------------------------ ----------- -------------------
    //| Period_Converter_Opt. mq4 |
    //| Bản quyền (c) 2005, Tập đoàn phần mềm MetaQuotes .. |
    //|
    http://www.metaquotes.net|
    //| Ver.1.6 Sửa đổi bởi micclly |
    //| Ver.1.5 Sửa đổi bởi fai |
    //| Được sửa đổi bởi wfy05 @ talkforex dựa trên Period_Converter |
    //|
    http://www.talkforex.com|
    // ------------------------------------ ----------- -------------------
    #property copyright
    #property liên kết http://www.mql4.com/codebase/indiors/277/
    #property indior_chart_window

    #include lt; WinUser32.mqhgt;

    /*
    Readme:

    I. Tính năng:
    Đây là phiên bản chuyển đổi khoảng thời gian tốt hơn cho MT4 dựa trên
    Bộ chuyển đổi thời gian mặc định của MT4 bằng các metaquotes.
    Tập lệnh chuyển đổi khoảng thời gian mặc định không khuyến khích thời gian thực làm mới,
    và tiêu thụ rất nhiều CPU (50% -9xpercent) làm cho toàn bộ hệ thống chậm.
    Ngoài ra, mặc định là một tập lệnh không phụ thuộc khi bạn thoát MT4,
    để bạn phải áp dụng mọi tập lệnh chuyển đổi một lần nữa sau khi khởi động lại, khá
    làm phiền.

    Điều này đã khắc phục mọi vấn đề:
    1. Habit khoảng thời gian hoặc cập nhật millisecond độ nâng cấp.
    2. Chi phí CPU thấp, điển hình từ 5% -10% trở xuống.
    3. Làm việc như một chỉ số, vì vậy có thể được lưu trữ và nạp lại trong quá trình tiếp tục.
    4. Không có trình chuyển đổi nào cho mỗi giới hạn biểu đồ vì nó không phải là tập lệnh
    nữa, có thể chỉ sử dụng một cửa sổ làm nguồn để tạo ra nhiều
    biểu đồ thời gian mới nhất có thể.
    5. Tự động cập nhật nếu có khối lịch sử mới được tải.

    II. Cách sử dụng:
    Sao chép tệp mq4 vào thư mục chỉ báo MT4 của bạn (các chuyên gia \ chỉ số)
    để cài đặt nó như một chỉ báo, KHÔNG kịch bản. Sau đó, trong chỉ báo tùy chỉnh
    ghi lại, đính kèm period_converter_opt vào biểu đồ bạn cần.
    Nó khuyến khích 4 tham số:
    PeriodMultiplier: biến hệ số pha mới, mặc định là 2
    UpdateInterval: khoảng thời gian cập nhật tính bằng mili giây,
    không có nghĩa là cập nhật thời gian thực. mặc định là số không.
    Đã bật: Bạn có thể tắt tính năng này mà không xóa nó bằng cách thay thế này.

    Các tham số khác bao gồm các bình luận hoặc để gỡ lỗi, nó là an toàn để bỏ qua chúng.

    Ngoài ra Hãy chắc chắn rằng bạn đã nhập Giấy phép nhập khẩu thay thế được kiểm tra trong tab được chia sẻ
    nó sẽ không làm việc

    Sau đó, FileOpen Offline để mở thông tin ngoại tuyến được tạo. Sau đó
    thông tin ngoại tuyến sẽ được cập nhật tự động.

    Miễn là bạn duy trì biểu đồ nguồn mở và chỉ báo chuyển đổi
    chạy, biểu đồ được tạo ra bao gồm các chỉ báo bên trong sẽ luôn
    đã được cập nhật. Ngoài ra, bạn có thể đóng biểu đồ đã tạo và mở lại
    sau đó từ FileOpen Offline mà không có vấn đề gì.

    Nếu bạn muốn dừng MT4, bạn có thể để lại các biểu đồ ngoại tuyến đó
    biểu đồ trực tuyến bình thường. Khi bạn khởi động MT4 lần sau, các biểu đồ này sẽ
    cũng được tải và cập nhật.


    III. Ghi chú:
    1. KHÔNG bỏ chọn tùy chọn biểu đồ ngoại tuyến trong thuộc tính được chia sẻ biểu đồ ngoại tuyến.
    Hoặc sau khi khởi động lại MT4, nó sẽ xử lý biểu đồ đó dưới dạng biểu đồ trực tuyến và yêu cầu
    thông tin từ máy chủ, dẫn đến cửa sổ biểu đồ trống.
    2. Có thể gắn nhiều bộ chuyển đổi vào cùng một cửa sổ bằng cách sử dụng riêng biệt
    PeriodMultiplier, ví dụ: bạn có thể đính kèm 3 công cụ chuyển đổi bằng
    PeriodMultiplier = 2, 4, 10 đến M1 để tạo ra M2, M4, M10 tại cùng thời điểm.
    Thậm chí có thể sử dụng biểu đồ M1 để tạo biểu đồ Hàng giờ như H2,
    chỉ tốn thêm một vài nguồn CPU trong quá trình chuyển đổi ban đầu. Nhưng thường
    hầu hết các máy chủ không có nhiều thông tin cho những khoảng thời gian ngắn. Tiếp theo
    thông tin được tạo ra không đủ dài trong thời gian dài. Vì vậy, nó được đề xuất
    để sử dụng biểu đồ Hàng giờHàng ngày làm nguồn khi được yêu cầu.
    3. Nâng cấp chế độ nâng cấp theo thời gian thực báo giá càng nhanh càng tốt, tuy nhiên
    điều này đạt được thông qua kịch bản, và MT sẽ bỏ qua gọi hàm start () khi
    rằng máy tính của bạn đang bận và rất nhiều báo giá thu nhập. Nhưng dù sao, điều này hiếm khi xảy ra,
    và ít nhất bạn cũng có thể nhận được 10 bản nâng cấp mỗi giây
    quá đủ.
    4. Biểu đồ ngoại tuyến không có đường giá thầu hiển thị trong biểu đồ, tuy nhiên tất cả dữ liệu
    trong biểu đồ bao gồm các chỉ số vẫn đang được cập nhật,
    vì vậy đừng lo lắng. Bạn có thể chứng minh dòng giá thầu bằng cách bỏ chọn biểu đồ ngoại tuyến
    thay thế trong thuộc tính biểu đồ. Nhưng điều đó không giúp ích đáng kể và bạn nên bỏ qua
    để kiểm tra tùy chọn biểu đồ ngoại tuyến trước khi thoát. Nó sẽ gây ra những sai lầm và
    trở nên trống vào lần khởi động tiếp theo. Bạn phải đóng cửa sổ và bắt đầu
    một lần nữa từ FileOpen offline, thường không đáng để gặp rắc rối.

    IV. Lịch sử:
    2014/03/10 1.6 Thay đổi để khuyến khích xây dựng 600 và sau
    2009.08.07 1.5 Đã thêm 3 tùy chọn. (ShiftTiming, GMTShift, OmitD igit)
    2005.12.24 1.4 nhanh hơn để phát hiện xem dữ liệu đã thay đổi hay chưa bằng cách loại bỏ điểm phao
    hoạt động, hỗ trợ bổ sung cho tệp CSV đầu ra trong thời gian thực.
    OutputCSVFile = 0 nghĩa là không có CSV.
    OutputCSVFile = 1 có nghĩa là CSV HST
    OutputCSVFile = 2 chỉ CSV, không có HST.
    (hữu ích nếu bạn muốn tạo CSV để được xây dựng trong khoảng thời gian)
    Tên tệp CSV sẽ giống với tài liệu HST ngoại trừ phần mở rộng.
    Đã thêm đánh giá được bảo vệ cho PeriodMultiplier.
    2005.12.04 1.3 Cố định thông tin còn thiếu khi có lượng dữ liệu lớn
    được tải trong nhiều khối và khuyến khích tự động nâng cấp
    khi lịch sử mới được điền.
    2005.11.29 1.2 Thêm sửa lỗi cho dữ liệu bị thiếu và thay đổi máy chủ.
    2005.11.29 1.1 Cố định thiếu một phần thông tin sau khi khởi động lại.
    Khởi động lại sau khi thay đổi dữ liệu hoặc máy chủ bị hỏng.
    2005.11.28 1.0 Phát hành lần đầu
    *


    extern đúp Phiên bản = 1.6;/phiên bản mã
    extern loạt BuildInfo = 2014.03.10 bởi micclly;
    extern int PeriodMultiplier = 1;/biến hệ số pha mới
    extern int OutputCSVFile = 0;/tệp CSV đầu ra bổ sung?
    Extern int UpdateInterval = 0;/cập nhật khoảng thời gian tính bằng mili giây, không có nghĩa là cập nhật thời gian thực.
    Extern bool Enabled = true;
    extern bool Debug = false;

    extern int ShiftTiming = 0;/0-3, Sử dụng H1Chart và PeriodMultiplier = 4;
    //nếu 1, ServerH4Chart = 00: 00/04: 00/08: 00/12: 00 ...
    //= gt; OfflineH4Chart = 01: 00/05: 00/09: 00/13: 00 ...
    extern int GMTShift = 0;/nên 9, Thời gian máy chủ = GMT 0 Biểu đồ ngoại tuyến Time = GMT 9
    extern int OmitDigit = 0;/nếu 1, 5 chữ số 4 chữ số

    int FileHandle = -1;
    int CSVHandle = -1;
    int NewPeriod = 0;
    loạt MySymbol =;
    int ShiftBase;
    #define OUTPUT_HST_ONLY 0
    #define OUTPUT_CSV_HST 1
    #define OUTPUT_CSV_ONLY 2


    #define CHART_CMD_UPDATE_DATA 33324

    void DebugMsg (chuỗi msg)

    if (Debug) Alert (msg);


    int init ()

    ShiftBase = Khoảng thời gian () * 60;/giây
    hậu tố chuỗi =;
    if (ShiftTiming! = 0) suffix = StringConenate (hậu tố, s, Shift Interval);
    if (GMTShift! = 0) suffix = StringConenate (hậu tố, gram, GMTSh ift);
    if (OmitDigit! = 0) suffix = StringConenate (hậu tố, o*, OmitDigit *);
    MySymbol = Biểu tượng () _ hậu tố;
    if (StringLen (MySymbol) gt; 11)
    MySymbol = StringConenate (StringSubstr (MySy mbol, 0,11-StringLen (hậu tố)), hậu tố);
    //đánh giá được bảo vệ cho PeriodMultiplier.
    Nếu (PeriodMultiplier lt; = 1 hậu tố ==)
    //chỉ tệp CSV đầu ra
    Chu kỳ thời gian = 1;
    Tệp CSV đầu ra = 2;

    NewPeriod = Period () * PeriodMultiplier;
    if (OpenHistoryFile () lt; 0) trả về (-1);
    WriteHistoryHeader ();
    UpdateHistoryFile (Bars-1, true);
    UpdateChartWindow ();
    return (0);


    void deinit ()

    //Đóng xử lý tệp
    if (FileHandle gt; = 0)
    FileClose (FileHandle);
    FileHandle = -1;

    if (CSVHandle gt; = 0)
    FileClose (CSVHandle);
    CSVHandle = -1;




    int OpenHistoryFile ()

    tên hàng loạt;
    name = MySymbol NewPeriod;
    if (OutputCSVFile! = OUTPUT_CSV_ONLY) FILE_WRITE
    if (OutputCSVFile! = OUTPUT_HST_ONLY) FILE_WRITE
    return (0);


    int WriteHistoryHeader ()

    chuỗi c_copyright;
    int i_digits = Digits-OmitDigit;
    int i_unused [13] = 0;
    int phiên bản = 400;

    if (FileHandle lt; 0) trả về (-1);
    c_copyright = (C) opyright 2003, Tập đoàn phần mềm MetaQuotes;
    FileWriteInteger (FileHandle, phiên bản, LONG_VALUE);
    FileWriteString (FileHandle, c_copyright, 64);
    FileWriteString (FileHandle, MySymbol, 12);
    FileWriteInteger (FileHandle, NewPeriod, LONG_VALUE);
    FileWriteInteger (FileHandle, i_digits, LONG_VALUE);
    FileWriteInteger (FileHandle, 0, LONG_VALUE);/timesign
    FileWriteInteger (FileHandle, 0, LONG_VALUE);/last_sync
    FileWriteArray (FileHandle, i_unused, 0, ArraySize (i_unused));
    return (0);



    tĩnh đôi d_open, d_low, d_high, d_close, d_volume;
    static int i_time;

    void WriteHistoryData ()
    {
    if (FileHandle gt; = 0) {
    FileWriteInteger (FileHandle, i_time GMTShift * 60 * 60, LONG_VALUE);
    FileWriteDouble (FileHandle, d_open, DOUBLE_VALUE);
    FileWriteDouble (FileHandle, D_low, DOUBLE_VALUE);
    FileWriteDouble (FileHandle, d_high, DOUBLE_VALUE);
    FileWriteDouble (FileHandle, d_close, DOUBLE_VALUE);
    FileWriteDouble (FileHandle, d_volume, DOUBLE_VALUE);
    }
    if (CSVHandle gt; = 0)
    int i_digits = Digits-OmitDigit;
    FileWrite (CSVHandle,
    TimeToStr (i_time, TIME_DATE),
    TimeToStr (i_time, TIME_MINUTES),
    DoubleToStr (d_open, i_digits),
    DoubleToStr (d_high, i_digits),
    DoubleToStr (d_low, i_digits),
    DoubleToStr (d_close, i_digits),
    d_volume);

    }

    int UpdateHistoryFile (int start_pos, bool init = false)

    static int last_fpos, csv_fpos;
    int I, ps;
    //if (FileHandle lt; 0) return (-1);
    //chuẩn hóa thời gian mở
    ps = NewPeriod * 60;
    i_time = (Thời gian [start_pos] -ShiftBase * ShiftTiming)ps;
    i_time = i_time * ps ShiftBase * ShiftTiming;
    if (init)
    //thời gian ban đầu, dữ liệu init
    d_open = Mở [start_pos];
    d_low = Thấp [start_pos];
    d_high = Cao [start_pos];
    d_close = Đóng [start_pos];
    d_volume = Âm lượng [start_pos];
    I = start_pos - 1;
    if (FileHandle gt; = 0) last_fpos = FileTell (FileHandle);
    if (CSVHandle gt; = 0) csv_fpos = FileTell (CSVHandle);
    khác
    Id = start_pos;
    if (FileHandle gt; = 0) FileSeek (FileHandle, last_fpos, SEEK_ SET);
    if (CSVHandle gt; = 0) FileSeek (CSVHandle, csv_fpos, SEEK_SET);

    if (I lt; 0) return (-1);

    int cnt = 0;
    int LastBarTime;
    //thanh chế biến
    trong khi (I gt; = 0)
    LastBarTime = Thời gian [I];

    //một thanh mới
    if (LastBarTime gt; = i_time ps)
    //ghi thông tin pub
    WriteHistoryData ();
    cnt ;
    i_time = (LastBarTime-ShiftBase * ShiftTiming)ps;
    i_time = i_time * ps ShiftBase * ShiftTiming;
    d_open = Mở [I];
    d_low = Thấp [I];
    d_high = Cao [I];
    d_close = Đóng [I];
    d_volume = Khối lượng [I];
    khác
    //không có thanh mới
    d_volume = Âm lượng [I];
    if (Thấp [I] lt; d_non) d_low = Thấp [I];
    if (Cao [I] nhận được; d'high) d'high = Cao [I];
    d_close = Đóng [I];

    TÔI--

    //album last_fpos trước khi soạn pub cuối cùng.
    Nếu (FileHandle gt; = 0) last_fpos = FileTell (FileHandle);
    if (CSVHandle gt; = 0) csv_fpos = FileTell (CSVHandle);
    WriteHistoryData ();
    cnt ;
    d_volume - = Âm lượng [0];
    //xóa dữ liệu đã ghi
    nếu (FileHandle gt; = 0) FileFlush (FileHandle);
    if (CSVHandle gt; = 0) FileFlush (CSVHandle);
    return (cnt);


    int UpdateChartWindow ()

    static int hwnd = 0;

    if (FileHandle lt; 0)
    //không mở tệp HST, không cần nâng cấp.
    Trở lại (-1);

    if (hwnd == 0)
    //cố gắng phát hiện cửa sổ biểu đồ để cập nhật
    hwnd = WindowHandle (MySymbol, NewPeriod);

    if (hwnd! = 0)
    if (IsDllsAllowed () == false)
    //Phải cho phép các cuộc gọi DLL
    DebugMsg (Các cuộc gọi dll phải được cho phép);
    return (-1);

    nên (PostMessageA (hwnd, WM_COMMAND, CHART _CMD_UPDATE_DATA, 0) == 0)
    //PostMessage không thành công, đóng cửa sổ biểu đồ
    hwnd = 0;
    khác
    //PostMessage triumph
    return (0);


    //không tìm thấy cửa sổ hoặc PostMessage không thành công
    return (-1);



    /*
    int PerfCheck (bool Start)

    static int StartTime = 0;
    static int Index = 0;
    if (Bắt đầu)
    StartTime = GetTickCount ();
    Chỉ số = 0;
    năng suất (StartTime);

    Index ;
    int diff = GetTickCount () - Thời gian bắt đầu;
    Cảnh báo (Thời gian sử dụng [ Index ]: diff);
    StartTime = GetTickCount ();
    năng suất (diff);

    *

    static int LastStartTime = 0;
    static int LastEndTime = 0;
    static int LastBarCount = 0;

    void reinit ()

    deinit ();
    trong đó();
    LastStartTime = Thời gian [Bars-1];
    LastEndTime = Thời gian [0];
    LastBarCount = Thanh;


    bool IsDataChanged ()
    LastLow! = Thấp [0]

    int CheckNewData ()
    Thời gian [I]! = LastEndTime)
    DebugMsg (Thời gian kết thúc TimeToStr (LastEndTime) không tìm thấy);
    reinit ();
    return (-1);

    cnt = Thanh - I;
    if (cnt! = LastBarCount)
    DebugMsg (Dữ liệu được tải, cnt là cnt LastBarCount là LastBarCount);
    reinit ();
    return (-1);


    //không tải dữ liệu mới, đoàn tụ với vị trí LastEndTime.
    LastBarCount = Thanh;
    LastEndTime = Thời gian [0];
    return (Id);


    // ------------------------------------ ----------- -------------------
    //| chức năng khởi động chương trình |
    // ------------------------------------ ----------- -------------------
    int start ()

    static int last_time = 0;

    if (! Enabled) return (0);
    //luôn cập nhật hoặc cập nhật ngay sau một khoảng thời gian nhất định
    if (UpdateInterval! = 0)
    int cur_time;
    cur_time = GetTickCount ();
    if (MathAbs (cur_time - last_time) lt; UpdateInterval)
    return (0);

    last_time = cur_time;


    //if (Debug) PerfCheck (đúng);
    int n = CheckNewData ();
    //if (Debug) PerfCheck (sai);
    if (n lt; 0) return (0);

    //cập nhật lịch sử với thông tin mới
    UpdateHistoryFile (n);
    //làm mới cửa sổ biểu đồ
    UpdateChartWindow ();
    //if (Debug) PerfCheck (sai);
    return (0);


    Chỉ báo đính kèm:
    Tập tin đính kèm


    https://www.forexibroker.com/attachm...9574793598.mq460 KB | 0 lượt tải xuống

  2. #2
    Chỉnh sửa: mặc dù Nhà giao dịch không thể giao dịch ở một Biểu đồ ngoại tuyến yêu thích với Chỉ báo như vậy, bạn có thể xử lý Giao dịch từ Biểu đồ thông thường mà tôi thực hiện từ nhiều thập kỷ nay. Dù sao thì có ai quan tâm đến suy nghĩ này. Nếu ai đó không phải là ý kiến ​​chính xác giống như tôi có một cái nhìn của riêng bạn. Thực hiện kiểm tra từ chính mình khi so sánh Tuyến tính được chia tỷ lệ thông thường MT4MT5 -Chart bằng cách sử dụng Đường xu hướng và thực hiện tương tự bằng Biểu đồ có kích thước lôgarit có thể truy cập bất kỳ nơi nào trong mạng bằng một số phần mềm miễn phí. Nó sẽ thật tuyệt vời. Một sự khác biệt lớn giữa Biểu đồ được chia tỷ lệ tuyến tính bình thường và Biểu đồ được chia tỷ lệ lôgarit vẽ Đường xu hướng. Greeds Zack

  3. #3
    Bạn có đăng một số hình ảnh để chứng minh sự khác biệt không?

  4. #4
    Tôi rất hạn chế thời gian nên hãy tự mình tìm kiếm. Biểu đồ lôgarit có sẵn trên internet để comßpare để có được cho mình. Cảm ơn. Nếu một vài Coder quan tâm xin vui lòng cho tôi biết. Nó rõ ràng là tốt hơn để làm việc trên mã này hơn là mã hóa một chỉ số vô giá trị mà thực sự giúp đỡ không ai. Cám ơn vì sự quan tâm của bạn. Greeds Zack

  5. #5
    Quote Originally Posted by ;
    Tôi rất hạn chế thời gian nên hãy tự mình xem xét. Biểu đồ lôgarit có sẵn trên toàn mạng để comßpare để có được cho mình. Cảm ơn. Nếu một vài Coder quan tâm, vui lòng cho tôi biết. Nó rõ ràng là tốt hơn để làm việc trên mã này hơn là mã hóa một chỉ số vô dụng mà thực sự giúp không ai. Cám ơn vì sự quan tâm của bạn. Greeds Zack
    chỉ báo
    https://www.forexibroker.com/attachm...2885342069.mq4không hoạt động trên nền tảng của tôi. Nếu đó là một số lỗi khác trong mã. Hãy sửa chữa nó.

  6. #6
    Tuy nhiên, .ex4 nên hoạt động. Nó hoạt động trên Nền tảng của tôi mà không có bất kỳ hạn chế nào. Cảm ơn lời khuyên nào. Z.

  7. #7

    Quote Originally Posted by ;
    Tuy nhiên, .ex4 nên hoạt động. Nó hoạt động trên Nền tảng của tôi mà không có bất kỳ hạn chế nào. Cảm ơn bạn vì bất kỳ thông tin nào. Z.
    sau đó bạn có thể tải lên phiên bản ex4 của
    https://www.forexibroker.com/trading...le-corner.htmlTks

  8. #8

  9. #9

    Quote Originally Posted by ;
    Đây rồi. Tệp Z.
    khá cảm ơn. Bạn có thể giải thích về cài đặt tham số này và cách sử dụng chỉ báo này (biểu đồ ngoại tuyến hoặc ...?)? Timeshiftadd tại hptmm periodmultiplier .... .... ...

  10. #10

Quyền đăng bài

  • Bạn không thể đăng bài viết mới
  • Bạn không thể đăng trả lời
  • Bạn không thể đăng tệp đính kèm
  • Bạn không thể chỉnh sửa bài đăng của bạn
  •  
Chính sách Cookie
Chính sách Cookie: Website forexibroker sử dụng cookies và khi tiếp tục sử dụng website bạn chấp thuận với điều này. Để có thêm thông tin, vui lòng đọc 'Thông tin Cookie'.