[存档]任何菜鸟问题,为了不使论坛变得杂乱无章。专业人士,不要与它擦肩而过。没有你,哪里都不能去 - 5. - 页 354

 
Valsorya:

下午好!!!。

我怎么知道该怎么做--Alpari不会以正常方式将小数数组传递给DLL,我还以为Expert Advisor的某个地方出了错误呢!我复制了所有的文件到insta,forexfo4Yu - 所有的东西都被正确地转移了!我复制了所有的文件到insta, forexfor4U - 一切都是正确的!直接传给dll--马马虎虎!在insta,forex4yu中工作!在alpari中不工作!这只是某种废话!我不能让它工作!我将不得不明天再做。我明天要扭扭捏捏地把小数当作整数来传送,例如,把它们都乘以100,000,再除以100,000,全部得到分数。但是合同的大小是100,000......如果你把它乘以10,000,它就无法装入一个整数。

也许有人知道怎么做,EA正在写。

给我看看代码。
 
请教如何使baylimit每50点打开,如果打开就不再打开。
 

我怎样才能查出交易日开始时的AccountEquity()的数额?

 
Elektronik:

我怎样才能查出交易日开始时的AccountEquity()的数额?


自己计算一下吧。
或从代码库中下载一个指标。

 

为初学者提供关于mql4编程文献的建议,如果你能提供参考的话

 

如何禁用警报,已经安装了,但在表中看不到,请告知

 
我如何检查在给定的价格上是否有一个挂单或开单?
 

我还以为专家顾问中的某个地方出了错误呢!我复制了所有的文件到insta,forexfo4yu - 所有的东西都被正确地转移了!我复制了所有的文件到insta, forexfor4U - 一切都是正确的!直接传给dll--马马虎虎!在insta,forex4yu中工作!在alpari中不工作!这只是某种废话!我不能让它工作!我将不得不明天再做。我明天要扭扭捏捏地把小数当作整数来传送,例如,把它们都乘以100,000,再除以100,000,全部得到分数。但是合同的大小是100,000......如果你把它乘以10,000,它就无法装入一个整数。

也许有人知道怎么做,我正在写。要求把代码放在这里。

在mql中。

在页眉处。

//+------------------------------------------------------------------+
#import "文件名不会告诉你)).dll"

空白SendDataToDLL(int SendDataToDLL_DataForDLL_int[50],
double SendDataToDLL_DataForDLL_double[50],
int SendDataToDLL_ArrayOfErrors[30],
int SendDataToDLL_ArrayOfWornings[10])。
...

##进口
//+------------------------------------------------------------------+
...
//+------------------------------------------------------------------+
int init()
{...
CreateDataForDLL()。
SendDataToDLL(DataForDLL_int,
DataForDLL_double。
DataToDLL_ArrayOfErrors。
DataToDLL_ArrayOfWornings)。
...
}
//+------------------------------------------------------------------+
空白的CreateDataForDLL()。
{...
int CreateDataForDLL_i = -1;
...
CreateDataForDLL_i++; DataForDLL_double[CreateDataForDLL_i] = AccountLeverage()。
CreateDataForDLL_i++; DataForDLL_double[CreateDataForDLL_i] = AccountStopoutLevel()。
CreateDataForDLL_i++; DataForDLL_double[CreateDataForDLL_i] = AccountBalance()。
CreateDataForDLL_i++; DataForDLL_double[CreateDataForDLL_i] = AccountCredit()。
...
}

//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+

在C++中

当然,在头文件中声明,在cpp中写。

Extern "C" __declspec(dllexport) void __stdcall SendDataToDLL(int SendDataToDLL_DataForDLL_int[50],
double SendDataToDLL_DataForDLL_double[50],
int SendDataToDLL_ArrayOfErrors[30],
int SendDataToDLL_ArrayOfWornings[10])
{...
int SendDataToDLL_i; SendDataToDLL_i = 0;
// 解除对int数组的封锁,没有任何问题
...
SendDataToDLL_i = 0。
...//InputData - 结构...没什么大不了的...
SendDataToDLL_i++; InputData.AccountLeverage = SendDataToDLL_DataForDLL_double[SendDataToDLL_i] 。
SendDataToDLL_i++; InputData.AccountStopLevel = SendDataToDLL_DataForDLL_double[SendDataToDLL_i] 。
SendDataToDLL_i++; InputData.AccountBalance = SendDataToDLL_DataForDLL_double[SendDataToDLL_i] 。
SendDataToDLL_i++; InputData.AccountCredit = SendDataToDLL_DataForDLL_double[SendDataToDLL_i] 。
...
字符串 sssss;
sssss = GetCurrentDir().c_str();
sssss += "ssss\InputData.txt"。
std::ofstream out2(ssss.c_str())。
//向文本文件输出一个int数组--一切正常
...
for (SendDataToDLL_i = 0; SendDataToDLL_i < 40; SendDataToDLL_i++)
{out2 << FloatToStr(SendDataToDLL_DataForDLL_double[SendDataToDLL_i]).c_str() << '\n';
}
...}

//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+

我们查看文本文件,在int数组中享受到了正确的数据,而紧随其后的double数组却充满了零或者原则上不可能存在的疯狂的巨大数字等废话。

例如,如果把所有这些文件(dll和ex4)都扔到insta中,一切都能正常工作,所有数据都能正确显示。
 
Stells:

下午好。

你能不能告诉我,修复例如随机指标交叉的最佳方法。

在第一条和第三条上比较信号线和主线的值或第一条和第二条的值。


在相邻的两个人身上。
 
还有,为什么Alpari上的MarketInfo(Symbol(), MODE_STOPLEVEL)返回0?