创建您自己的MetaTrader扩展(dll)。 - 页 11 1...456789101112131415 新评论 sunshineh 2012.07.20 11:40 #101 对mql4-编程的基本问题 你好。 我想从一个dll中导入一些函数。因此我必须包含一些*.h文件。 这是否可行,或者我必须写*.mqh而不是*.h? 这个dll是为一种c语言编程的。 有一些带有指针和结构的函数作为数据源。是否可以用mql4来使用? [删除] 2013.08.19 11:04 #102 接收股票价格 你好。 我想用c#从meta trader接收股票价格,但不知道如何做。 谁能给我解释一下或者给我一个具体的指南? 非常感谢。 Mladen Rakic 2013.08.19 11:16 #103 kfirmt: 你好。我想用c#从meta trader接收股票价格,但不知道怎么做。 谁能给我解释一下或者给我一个具体的指南? 非常感谢。 在experts/examples/DLLExample中,你会发现价格是如何从metatrader传递到C语言的(它足够接近,所以你可以直接使用这个例子),利率信息结构从一开始就没有改变,仍然定义为.NET。 struct RateInfo { unsigned int ctm; double open; double low; double high; double close; double vol; }; 所以你把它传给C#应该不会有任何问题。 [删除] 2013.08.19 12:03 #104 谢谢! where is theexperts\examples\DLLExample ? Mladen Rakic 2013.08.19 12:07 #105 kfirmt: 谢谢!experts/examples/DLLExample 在哪里? 在你的metatrader文件夹中(你安装它的文件夹)。 [删除] 2013.08.19 15:42 #106 mladen: 在你的metatrader文件夹(你安装它的文件夹)中 我已经下载了2个元数据库,在这两个数据库中的例子都是用C++语言。虽然我是用c#编程的,但我想我可以从中理解,但我找不到我需要的东西,即如何获得股票价格。 Mladen Rakic 2013.08.19 16:15 #107 kfirmt: 我已经下载了两个metatraders,在这两个例子中都是用C++语言。我想我能理解这一点,尽管我是用c#编程的,但我找不到我需要的东西,如何获得股票价格。 你正在将指标或EA的价格传递给你的DLL扩展。 你有一个完整的例子(MQL部分和C部分),在该文件夹中,它是如何完成的。一旦你在C#部分接收了来自MQL部分的数据,你将如何处理这些数据就只是一个代码的问题了。 [删除] 2013.08.19 16:54 #108 mladen: 你正在将价格从指标或EA传递到你的DLL扩展中,你有一个完整的例子(MQL部分和C部分),在该文件夹中,它是如何完成的。一旦你在C#部分接收到来自MQL部分的数据,你将如何处理这些数据,这只是一个代码问题。 我没有找到MQL或C语言的例子,只有C++的。总之,有很多函数,我不明白哪一个是我需要的函数,以获得价格。你有这样的例子吗? 非常感谢。 Mladen Rakic 2013.08.19 17:00 #109 kfirmt: 我没有找到MQL或C语言的例子,只有C++的例子。总之,有很多函数,我不明白哪一个是我需要的函数,以获得价格。你有这样的例子吗? 从C方面来看(见评论)。 //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ MT4_EXPFUNC double __stdcall GetRatesItemValue(const RateInfo* rates,const int rates_total,const int shift,const int nrate) { //--- if(rates==NULL) { printf("GetRatesItemValue: NULL array\n"); return(0.0); } //--- if(rates_total<0) { printf("GetRatesItemValue: wrong rates_total number (%d)\n", rates_total); return(0.0); } //--- if(shift=rates_total) { printf("GetRatesItemValue: wrong shift number (%d)\n", shift); return(0.0); } //--- if(nrate5) { printf("GetRatesItemValue: wrong rate index (%d)\n", nrate); return(0.0); } // // here you are having prices, time and volume // int nitem=rates_total-1-shift; switch(nrate) { case 0: return double(rates[nitem].ctm); case 1: return rates[nitem].open; case 2: return rates[nitem].low; case 3: return rates[nitem].high; case 4: return rates[nitem].close; case 5: return rates[nitem].vol; } //--- return(0.0); } Create your own MetaTrader DLL access to all Direction of OnCalculate() in [删除] 2013.08.20 05:19 #110 mladen: 从C端来看(见评论)。//+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ MT4_EXPFUNC double __stdcall GetRatesItemValue(const RateInfo* rates,const int rates_total,const int shift,const int nrate) { //--- if(rates==NULL) { printf("GetRatesItemValue: NULL array\n"); return(0.0); } //--- if(rates_total<0) { printf("GetRatesItemValue: wrong rates_total number (%d)\n", rates_total); return(0.0); } //--- if(shift=rates_total) { printf("GetRatesItemValue: wrong shift number (%d)\n", shift); return(0.0); } //--- if(nrate5) { printf("GetRatesItemValue: wrong rate index (%d)\n", nrate); return(0.0); } // // here you are having prices, time and volume // int nitem=rates_total-1-shift; switch(nrate) { case 0: return double(rates[nitem].ctm); case 1: return rates[nitem].open; case 2: return rates[nitem].low; case 3: return rates[nitem].high; case 4: return rates[nitem].close; case 5: return rates[nitem].vol; } //--- return(0.0); } 谢谢! 你有C#语言的东西吗? 因为对我来说,它并没有真正说明什么。 1...456789101112131415 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
对mql4-编程的基本问题
你好。
我想从一个dll中导入一些函数。因此我必须包含一些*.h文件。
这是否可行,或者我必须写*.mqh而不是*.h?
这个dll是为一种c语言编程的。
有一些带有指针和结构的函数作为数据源。是否可以用mql4来使用?
接收股票价格
你好。
我想用c#从meta trader接收股票价格,但不知道如何做。
谁能给我解释一下或者给我一个具体的指南?
非常感谢。
你好。
我想用c#从meta trader接收股票价格,但不知道怎么做。
谁能给我解释一下或者给我一个具体的指南?
非常感谢。在experts/examples/DLLExample中,你会发现价格是如何从metatrader传递到C语言的(它足够接近,所以你可以直接使用这个例子),利率信息结构从一开始就没有改变,仍然定义为.NET。
{
unsigned int ctm;
double open;
double low;
double high;
double close;
double vol;
};
所以你把它传给C#应该不会有任何问题。
谢谢!
where is theexperts\examples\DLLExample ?
谢谢!experts/examples/DLLExample 在哪里?
在你的metatrader文件夹中(你安装它的文件夹)。
在你的metatrader文件夹(你安装它的文件夹)中
我已经下载了2个元数据库,在这两个数据库中的例子都是用C++语言。虽然我是用c#编程的,但我想我可以从中理解,但我找不到我需要的东西,即如何获得股票价格。
我已经下载了两个metatraders,在这两个例子中都是用C++语言。我想我能理解这一点,尽管我是用c#编程的,但我找不到我需要的东西,如何获得股票价格。
你正在将指标或EA的价格传递给你的DLL扩展。
你有一个完整的例子(MQL部分和C部分),在该文件夹中,它是如何完成的。一旦你在C#部分接收了来自MQL部分的数据,你将如何处理这些数据就只是一个代码的问题了。
你正在将价格从指标或EA传递到你的DLL扩展中,你有一个完整的例子(MQL部分和C部分),在该文件夹中,它是如何完成的。一旦你在C#部分接收到来自MQL部分的数据,你将如何处理这些数据,这只是一个代码问题。
我没有找到MQL或C语言的例子,只有C++的。总之,有很多函数,我不明白哪一个是我需要的函数,以获得价格。你有这样的例子吗?
非常感谢。
我没有找到MQL或C语言的例子,只有C++的例子。总之,有很多函数,我不明白哪一个是我需要的函数,以获得价格。你有这样的例子吗?
从C方面来看(见评论)。
//| |
//+------------------------------------------------------------------+
MT4_EXPFUNC double __stdcall GetRatesItemValue(const RateInfo* rates,const int rates_total,const int shift,const int nrate)
{
//---
if(rates==NULL)
{
printf("GetRatesItemValue: NULL array\n");
return(0.0);
}
//---
if(rates_total<0)
{
printf("GetRatesItemValue: wrong rates_total number (%d)\n", rates_total);
return(0.0);
}
//---
if(shift=rates_total)
{
printf("GetRatesItemValue: wrong shift number (%d)\n", shift);
return(0.0);
}
//---
if(nrate5)
{
printf("GetRatesItemValue: wrong rate index (%d)\n", nrate);
return(0.0);
}
//
// here you are having prices, time and volume
//
int nitem=rates_total-1-shift;
switch(nrate)
{
case 0: return double(rates[nitem].ctm);
case 1: return rates[nitem].open;
case 2: return rates[nitem].low;
case 3: return rates[nitem].high;
case 4: return rates[nitem].close;
case 5: return rates[nitem].vol;
}
//---
return(0.0);
}
从C端来看(见评论)。
//| |
//+------------------------------------------------------------------+
MT4_EXPFUNC double __stdcall GetRatesItemValue(const RateInfo* rates,const int rates_total,const int shift,const int nrate)
{
//---
if(rates==NULL)
{
printf("GetRatesItemValue: NULL array\n");
return(0.0);
}
//---
if(rates_total<0)
{
printf("GetRatesItemValue: wrong rates_total number (%d)\n", rates_total);
return(0.0);
}
//---
if(shift=rates_total)
{
printf("GetRatesItemValue: wrong shift number (%d)\n", shift);
return(0.0);
}
//---
if(nrate5)
{
printf("GetRatesItemValue: wrong rate index (%d)\n", nrate);
return(0.0);
}
//
// here you are having prices, time and volume
//
int nitem=rates_total-1-shift;
switch(nrate)
{
case 0: return double(rates[nitem].ctm);
case 1: return rates[nitem].open;
case 2: return rates[nitem].low;
case 3: return rates[nitem].high;
case 4: return rates[nitem].close;
case 5: return rates[nitem].vol;
}
//---
return(0.0);
}
谢谢!
你有C#语言的东西吗? 因为对我来说,它并没有真正说明什么。