PDA

View Full Version : Xuất sang Excel trong thời gian thực



YORSANKAR
12-14-2012 11:08, 11:08 AM
Tôi sử dụng thư viện DDE do Windows cung cấp. Không có tùy chỉnhdll đó là độc quyền.

Quá trình sẽ như sau:

1. Khởi tạo DDE
2. Tạo chuỗi xử lý cho Ứng dụng Excel (trong thuật ngữ DDE, nó được gọi là SERVICE)
3. Tạo chuỗi xử lý cho tiêu đề trang tính (TOPIC)
4.) Kết nối với trang tính
5. Miễn phí các tay cầm ở trên, chúng sẽ không còn được sử dụng nữa
6. Tạo chuỗi xử lý cho ô (ITEM) sử dụng địa chỉ ô trong kiểu R1C1
7. Gửi thông tin
8. Để xuất thông tin sang một ô khác, sao chép 6-7
9. Bạn có thể tái sử dụng các mặt hàng được tạo ra '(trong trường hợp bạn muốn cập nhật các tế bào thường xuyên)
10. Trước khi trở về chương trình, xử lý chuỗi tất cả các mục miễn phí
11. Ngắt kết nối Excel và trang tính
12. Uninitialize DDE

Hãy chắc chắn để cho phép nhập khẩu DLL trong cấu hình Expert Advisor.
Bạn có thể muốn vô hiệu hóa MT4 DDE Server trước khi chạy tập lệnh này.

Bạn sẽ tìm thấy 2 tập tin đính kèm trong bài viết này:
- ExcelExportLib.mq4, đặt tệp này trong thư mục các thư viện chuyên gia \. Đây chỉ là một thư viện mq4 rất đơn giản bao bọc một hàm DDE.
- ExcelExportTest.mq4, đặt tệp này trong thư mục các chuyên gia \ script. Nó là một kịch bản thử nghiệm có thể viết văn bản trên Excel Sheet 1, ô R2C2

Chúc mừng,

Senriselbobo
11-26-2021 10:10, 10:10 AM
Tôi chỉ muốn cảm ơn bạn, mặc dù MT4 không được tôi sử dụng - rằng tôi biết có bao nhiêu công việc để đặt những thứ đó lại với nhau.

ôoaĐuin
11-26-2021 11:31, 11:31 AM
Công việc tốt đẹp Sangmane - và - cảm ơn bạn.

aiphrsule
11-26-2021 12:52, 12:52 PM
Xin chào, Bạn có thể vui lòng hai tệp này không? Tôi muốn cung cấp thử nghiệm này. Cảm ơn nhiều

pamerpelis8
11-26-2021 14:12, 02:12 PM
Sangmane, Có thể xuất chỉ số thời gian thực có giá trị cho một bảng tính excel? Vui lòng đính kèm lại 2 tệp. Cảm ơn và kính trọng,

Rekup
11-26-2021 15:33, 03:33 PM
Xin chào, Im đang cố gắng sử dụng thư viện của bạn, unfortunatelly không thành công. Ngoài ra các tập tin thử nghiệm không hoạt động, nó cho lỗi (1) (xem bên dưới). Đang sử dụng MT4 build 670 trên Windows 8 và tôi có 2 tình huống sau: 1) khi tôi cố gắng đưa thư viện vào mã của mình, tôi nhận được lỗi sau: Không thể định vị 'ExcelInit' trong 'ExcelExportLib.ex4' 2) Để giải quyết vấn đề trong 1) Tôi đã làm một thủ tục KISS = gt; Tôi đã sao chép ExcelExportLib.mq4 trong EA của tôi và được gọi là các chức năng đúng, sau đó tôi đã phát hiện ra rằng tại ExcelInit (..), DdeConnect (...) trả về 0, bất cứ điều gì tôi cố gắng. Sau đó, tôi googled cho DdeConnect cộng với một số đề nghị rằng tôi nên chuyển sang phong cách Unicode thay vì Ansi, vì vậy tôi thay đổi vào sử dụng DdeInitializeW (..) Và DdeCreateStringHandleW (.) Nhưng điều này cũng không giúp đỡ. Bạn có hiểu điều gì đang xảy ra không và cách tôi có thể sửa lỗi này? Cảm ơn trước.

YORSANKAR
11-26-2021 16:54, 04:54 PM
2 Tệp đính kèm

Xin chào, Im đang cố gắng sử dụng thư viện của bạn, unfortunatelly mà không có thành tích. Ngoài ra, các tập tin kiểm tra không hoạt động, nó cho sai lầm (1) (xem bên dưới). Im sử dụng MT4 xây dựng 670 trên Windows 8 và bây giờ tôi có 2 kịch bản sau đây: 1) khi tôi cố gắng thêm thư viện của bạn vào mã của tôi, tôi nhận được lỗi sau: không thể tìm thấy 'ExcelInit' trong 'ExcelExportLib.ex4' hai) Để giải quyết vấn đề trong 1) tôi đã thực hiện một phương pháp KISS = gt; Tôi đã sao chép ExcelExportLib.mq4 trong EA của tôi và được gọi là các chức năng đúng, và sau đó tôi đã phát hiện ra rằng trong ExcelInit (..), DdeConnect (...) trả về 0, bất cứ điều gì tôi cố gắng ....
Hi Serkan, tôi đã nâng cấp thư viện lên bản dựng MT4 gần đây nhất. Đặt ExcelExportLib.ex4 vào thư mục MQL4 \ Libraries. Tôi cũng đính kèm một kịch bản mẫu cho thấy cách gọi lib. Tốt nhất, s
https://www.forexibroker.com/attachments/15184142011512546714.ex4
https://www.forexibroker.com/attachments/1518414203239519258.mq4

Rekup
11-26-2021 18:15, 06:15 PM
OK thx for the effort. I have analyzed your new files and mistake (1) doesn't seem anymore, but (2) still happens if I run your test (an alert is displayed with the message ExcelWrite neglected !) ; Btw, correct me if I am wrong, but the idea of your code is that you create your own DDE service that could be called from Excel or OpenOffice, right ? Like this (in OpenOffice) =DDE(EXCEL, sheet1; r1c1).

sanatikkineox
11-26-2021 19:36, 07:36 PM
Cảm ơn rất nhiều sangmane, đã tìm kiếm ở khắp mọi nơi cho một thứ như thế này! Chúc mừng

Yorpheus11
11-26-2021 20:56, 08:56 PM
1 Tệp đính kèm là một Công cụ thú vị. Tôi đã cố gắng xuất bản các Giao dịch của mình trên Trang chủ của mình Sau đó tôi phát hiện ra chương trình này:
https://www.mql5.com/de/code/1246Làm cách nào để chuyển đổi mq5 thành mq4? Công cụ này được tạo thành trong mq4 nhưng được thay đổi thành mq5. Tất cả thông tin có sẵn trong MQL5 có thể được xuất qua giao diện DDE này. Làm cách nào để sửa đổi dde_example để xuất các Giao dịch đã Đóng của tôi, Mở các nhượng bộ và các lệnh chờ để vượt trội.
https://www.forexibroker.com/general-forex/116-favorite-alert-systems.html

Yorpheus11
11-26-2021 22:17, 10:17 PM
Trích dẫn Hi Serkan, tôi đã nâng cấp thư viện lên bản build MT4 mới nhất. Đặt ExcelExportLib.ex4 vào thư mục MQL4 \ Libraries. Tôi cũng đính kèm một kịch bản mẫu cho thấy cách gọi lib. Tệp tài liệu tốt nhất, s
Hallo Sir tôi đã cố gắng sửa đổi
https://www.forexibroker.com/attachments/15184142061557218443.mq4để nhận thêm dữ liệu trong Excel. Đây là mã của tôi nhưng tôi chỉ nhận được cá tính R CellAddress = R1C2: rằng tôi xin lỗi sự giúp đỡ của bạn. #property copyright Bản quyền 2012, Stephen Ambatoding #property Hyperlink http://www.forexibroker.com/sangmane #property strict #property show_inputs Chuỗi chuỗi bên ngoài = Sheet1; string CellAddress; chuỗi CellValue; # import ExcelExportLib.ex4 int ExcelInit (chuỗi Trang tính); void ExcelDeinit (); int ExcelWrite (chuỗi CellAddress, chuỗi CellValue); #import void OnStart () nếu (CellAddress = R1C2) chuỗi CellValue = Từ Indonesia với tình yêu; int iRet; iRet = ExcelInit (Trang tính); nếu (iRet == 0) Cảnh báo (ExcelInit không thành công!); trở về; iRet = ExcelWrite (CellAddress, CellValue); if (iRet == 0) Thông báo (ExcelWrite không thành công!); ExcelDeinit (); trở về;

KhakheM
11-26-2021 23:38, 11:38 PM
2 Attachment (s) Tôi thích giải pháp này rất nhiều, nhưng nó cần cập nhật cho MT4 ngày nay. Vì vậy, tôi đính kèm các tệp mới sau những thay đổi nhỏ mà tôi đã thực hiện. Thực sự thay đổi đã được thực hiện chỉ để ExcelExportLib, nhưng tôi đính kèm các hồ sơ thử nghiệm cũng chỉ trong trường hợp. @ bah12ram - Giải pháp này sẽ sửa đổi những gì bạn đã trải nghiệm.
https://www.forexibroker.com/attachments/15184142072128899637.mq4
https://www.forexibroker.com/attachments/15184142091600486381.ex4

kaĐi
11-27-2021 00:59, 12:59 AM
Tôi thích giải pháp này rất nhiều, nhưng nó cần cập nhật lên MT4. Vì vậy, tôi đính kèm tài liệu mới sau những thay đổi nhỏ mà tôi đã thực hiện. Thực sự thay đổi đã được thực hiện chỉ để ExcelExportLib, nhưng tôi đính kèm các tập tin thử nghiệm cũng chỉ trong trường hợp.
@ friday13, cảm ơn rất nhiều. Bạn có phiền khi gửi tệp ExcelExportLib.mq4 không? Trân trọng

kaĐi
11-27-2021 02:19, 02:19 AM
1 Tệp đính kèm

@ friday13, cảm ơn rất nhiều. Bạn có phiền khi gửi tệp ExcelExportLib.mq4 cùng với những thay đổi bạn đã thực hiện không?
Đừng lo, tôi đã tìm ra nó. Xem tệp đính kèm.
https://www.forexibroker.com/attachments/1518414210593033486.mq4

KhakheM
11-27-2021 03:40, 03:40 AM
Đừng lo, tôi đã tìm ra nó. Xem tập tin đính kèm. tập tin
Thực hiện tốt. Tôi đã không thêm mã vào sự ngưỡng mộ của Sangmane, người đã không đặt nó ở đây. Hai ý kiến: 1. Thêm ”không cần thiết, như:

MQL4 sử dụng cả hai cách tiếp cận, với một ngoại lệ: các mảng, các yếu tố kiểu cấu trúc và các đối tượng lớp luôn luôn được truyền qua tham chiếu.
(từ
https://docs.mql4.com/basis/function/parameterpass2. Mã của bạn xác định kích thước ô tối đa là 256 byte, trong khi tệp lib của tôi sử dụng dải động vì tôi không muốn giới hạn dung lượng bộ nhớ của mình theo kích thước cố định mỗi lần và kích thước ô excel có thể chứa 32.767 byte, theo:
https://support.office.com/en-us/article/excel-specifiions-and-limits-1672b34d-7043-467e-8e27-269d656771c3.

kaĐi
11-27-2021 05:01, 05:01 AM
trích dẫn đúng cách. Tôi chỉ đơn giản là không thêm mã vào sự tôn trọng Sangmane, mà không đăng nó ở vị trí đầu tiên.
Xin chào, Cảm ơn bạn đã bình luận, bạn hoàn toàn đúng. Bạn có thể thực hiện bất kỳ tiến bộ nào với việc đọc từ Excel bằng DDE không? Trân trọng

KhakheM
11-27-2021 06:22, 06:22 AM
Trích dẫn Xin chào, Cảm ơn ý kiến ​​của bạn, bạn hoàn toàn đúng. Có lẽ bạn có thể thực hiện bất kỳ tiến bộ với việc học tập từ Excel bằng cách sử dụng DDE? Trân trọng
Xin chào, Trên thực tế không, tôi không cố đọc từ Excel bằng DDE, chỉ để xuất sang Excel. Tại sao bạn muốn đọc từ Excel bằng DDE và bạn muốn xuất thông tin đến đâu? Chúng tôi có thể mở một chủ đề mới về ý tưởng của bạn nếu bạn muốn.

kaĐi
11-27-2021 07:42, 07:42 AM
Trích dẫn Hi, Trên thực tế không, tôi đã không cố gắng và đọc từ Excel bằng cách sử dụng DDE, chỉ để xuất khẩu vào Excel. Bạn có muốn đọc bằng cách sử dụng DDE và bạn muốn xuất thông tin đến đâu? Chúng tôi có thể mở một chủ đề mới nếu bạn muốn.
Xin chào, tôi muốn đọc thông tin về MT4 cho các mục đích khác nhau. Điều này đôi khi được gây ra bởi các phép tính trong Excel hoặc điều khiển được phát hành từ Excel. Excel là một công cụ nghiên cứu tuyệt vời. Dù sao, tôi quản lý để có được 2 cách giao tiếp hoạt động và đã sản xuất một wrapper C # DDE. Đó là một công việc đang diễn ra, nhưng về nguyên tắc nó hoạt động tốt. Trân trọng

KhakheM
11-27-2021 09:03, 09:03 AM
Trích dẫn Xin chào, tôi muốn đọc dữ liệu về MT4 cho các mục đích khác nhau. Điều này đôi khi là kết quả của các phép tính trong Excel, cũng như lệnh được phát hành từ Excel. Excel là một công cụ nghiên cứu tuyệt vời. Nhưng dù sao, tôi đã tạo ra một wrapper C # DDE và đã có thể giao tiếp 2 chiều. Đó là một công việc đang diễn ra, nhưng về nguyên tắc nó hoạt động ổn. Trân trọng
Nghe hay đấy!