簡體   English   中英

從Java訪問.net DLL

[英]Access .net DLL from Java

我是java和DLL-s的新手

我需要從java訪問DLL的方法。 所以對我很輕松。

我嘗試過使用JNA來訪問DLL,這就是我所做的。

import com.sun.jna.Library;

public class mapper {

  public interface mtApi extends Library {
        public boolean IsStopped();
  }

  public static void main(String []args){
     mtApi lib = (mtApi) Native.loadLibrary("MtApi", mtApi.class);
     boolean test = lib.IsStopped();
     System.out.println(test);

  }
}

當我運行代碼時,我收到以下錯誤:

Exception in thread "main" java.lang.UnsatisfiedLinkError:
Error looking up function 'IsStopped':
The specified procedure could not be found.

我知道這個錯誤說它無法找到該功能,但我不知道如何修復它。

我正在嘗試使用此API mt4api

這是方法,我試圖訪問MQL4

誰能告訴我我做錯了什么?

我已經看過其他替代品,比如jni4net ,但我也無法做到這一點。

如果有人可以將我鏈接到一個教程,告訴我如何設置它,或者知道如何,我會很高興。

貿易?
狩獵幾毫秒刮胡子?
轉而進入分布式處理...... 絕對比依賴API更安全!

雖然你的OP被引導到如何將java調用.NET DLL函數,但讓我勾勒出一個更加安全的解決方案

使用基於AI / ML回歸的外匯交易預測器,我在同一片森林里狩獵。 在過去大約12年中發現的最佳解決方案,花了大約幾百人*多年的經驗,按以下方式設置:

Host A執行交易:運行MetaTrader Terminal 4,包括Script和EA --- 分布式處理系統使用ZeroMQ低延遲消息/信令框架 (需要大約幾十微秒)進行通信

Host B對交易工具執行預測的AI / ML處理(大約幾百微秒適用)

Cluster C執行連續的AI / ML預測器重新訓練和HyperParameterSPACE模型選擇(確實需要很多CPU小時,連續模型自適應過程全天候運行)


使用ZeroMQ信令/消息傳遞層具有端口和/或綁定,可用於大多數主流和許多小眾編程語言,包括java

僅針對已發布的API進行隱藏的危險:

雖然系統集成和測試的努力是巨大的,但API規范對於規范爬行總是危險的。

這就是說,在MT4語言規范的靜默更改之后,添加了無數人*月的調試,這些規范會破壞以前的工具+庫。 為什么? 想象一下。 前段時間, MQL4停止為MQL4 ,並以名稱New - MQL4默默地轉向MQL5 在編譯中的其他變化中,棺材中有許多小釘和大釘 - string令人驚訝地不再是一個string並被隱藏為內部struct - 人們可以猜出所有DLL調用會導致什么。

所以,要注意API蠕變。


它是否會損害分布式處理解決方案?

沒有。

通過明智的消息布局設計,MetaTrader Terminal 4行為沒有任何不利影響,所有邏輯(包括策略決策)都被置於這個爬行平台之外。

可行的。 快速而聰明。 如果您的預算允許,也可以使用遠程GPU集群處理。


它在Strategy Tester中是否有效?

是的,它確實。

如果有人依靠內置的策略測試程序,那么分布式處理模型仍然適用於那里。 性能取決於首選的建模風格,整整一年,逐個滴答模擬,相當復雜的AI / ML組件在常見的COTS台式PC系統上花了幾天時間(經過多年的定量研發,經過多年的研發,我們做到了根本不在內部使用Strategy Tester,但請求是批量測試y / y tick-data,因此可以在這里進行評論)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM