初学者的问题 MQL5 MT5 MetaTrader 5 - 页 356 1...349350351352353354355356357358359360361362363...1503 新评论 Aleksandr Teleguz 2015.05.01 16:39 #3551 Karputov Vladimir: Высылайте.发送 Aleksandr Teleguz 2015.05.01 17:21 #3552 Karputov Vladimir: 把它寄给我。 我还想补充一点,如果改变了输入参数,该指标 也能正常工作,没有错误。 Aleksandr Teleguz 2015.05.01 18:20 #3553 在卡尔普托夫-弗拉基米尔 的帮助下。我通过在OnInit()函数中获得指标句柄,然后在OnDeinit()中删除它来解决这个问题。你能不能让指标从某一栏开始画线,而不是在整个历史上画? valeravilks 2015.05.01 21:08 #3554 下午好。我有这样一个问题。我已经开始研究MQL,并正在编写一个EA。当我编译并运行我的EA时,它打开了欧元兑美元的一小时图表,但我没有指定要打开哪个图表。我已经规定欧元的开盘时间为5分钟。首先,它将欧元美元打开一个小时,然后打开5分钟。我怎样才能删除小时图?下面是专家顾问的代码。提前感谢您的建议。//+------------------------------------------------------------------+//|а.ǞǞǞ//|Valery Wilkes |//|https://www.mql5.com ||//+------------------------------------------------------------------+#财产版权"Valery Wilkes"#属性链接 "https://www.mql5.com"#财产版本 "1.00"#属性严格 double iAlligator(); bool ObjectSetInteger()。 long a=ChartOpen("EURUSD",PERIOD_M5)。//+------------------------------------------------------------------+//| 专家初始化功能|//+------------------------------------------------------------------+ int OnInit(){//-----------------创建计时器 EventSetTimer(5)。//--- return(INIT_SUCCEEDED)。}//+------------------------------------------------------------------+//| 专家去初始化功能|//+------------------------------------------------------------------+ 空白的OnDeinit(const int reason)。{//--------------销毁计时器 EventKillTimer()。}//+------------------------------------------------------------------+//|专家勾选功能|//+------------------------------------------------------------------+ 空白的OnTick(){ for(int f=3;; f++) { double val=iFractals("EURUSD",15,1,f); 如果(val!=0) { Alert("Buy Fractal",val, "Bar Left",f); 突破。}} for(int f1=3;; f1++) { double val1=iFractals("EURUSD",15,2,f1); 如果(val1!=0) { Alert("Fractal to sell" ,val1, "Bar left" ,f1); 突破。} 警报(Bid)。}}//+------------------------------------------------------------------+//| 定时器功能|//+------------------------------------------------------------------+ 空白的OnTimer(){}//+------------------------------------------------------------------+//| 测试器功能|//+------------------------------------------------------------------+ double OnTester(){//--- double ret=0.0。//---//--- return(ret)。}//+------------------------------------------------------------------+ Автоматический трейдинг и тестирование торговых стратегий www.mql5.com MQL5: язык торговых стратегий для MetaTrader 5, позволяет писать собственные торговые роботы, технические индикаторы, скрипты и библиотеки функций Questions from Beginners MQL5 新人对MQL4和MQL5的任何问题,对算法和代码的帮助和讨论 错误、漏洞、问题 Vitalii Ananev 2015.05.02 04:31 #3555 valeravilks:下午好。我有这样一个问题。我已经开始研究MQL,我正在写一个专家顾问。当我编译和运行专家顾问时,它打开了欧元兑美元的小时图,但我还没有指定要打开哪个图表。我已经规定欧元的开盘时间为5分钟。首先,它将欧元美元打开一个小时,然后打开5分钟。我怎样才能删除小时图?下面是专家顾问的代码。提前感谢您的提示。你必须是启用调试,然后你的EA在默认的符号上启动。在元编辑器设置中指定所需的符号和TF。(见附图)。 附加的文件: kagfqct9ki.png 28 kb [删除] 2015.05.03 14:53 #3556 下午好。int maxValueIdx= ArraySort(INDEX,WHOLE_ARRAY,ArrayMaximum(INDEX,WHOLE_ARRAY,0),MODE_ASCEND); int minValueIdx=ArraySort(INDEX,WHOLE_ARRAY,ArrayMinimum(INDEX,WHOLE_ARRAY,0),MODE_DESCEND); 你认为这意味着什么? Vladimir Karputov 2015.05.03 15:04 #3557 azfaraon:下午好。你认为这意味着什么? 这是MQL4代码。首先,它寻找数组中的最大值,检查整个数组,从零元素开始。然后从找到的最大索引开始对数组进行排序(在第一个例子中是升序排序,在第二个例子中是降序排序)。 [删除] 2015.05.03 15:13 #3558 因此,在这一块,我们正在寻找从最大到最小的最大和最小值?并在此 int maxValueIdx=ArrayMaximum(INDEX,WHOLE_ARRAY,0); int minValueIdx=ArrayMinimum(INDEX,WHOLE_ARRAY,0);从最小到最大? Vladimir Karputov 2015.05.03 15:31 #3559 azfaraon: 这个代码。int maxValueIdx=ArrayMaximum(INDEX,WHOLE_ARRAY,0);搜索具有最大值的元素的索引。搜索从零元素开始,通过整个数组进行。 Vladimir Karputov 2015.05.03 16:22 #3560 azfaraon:以下是代码//+------------------------------------------------------------------+ //| test_script.mq4 | //| Copyright 2015, MetaQuotes Software Corp. | //| https://www.mql5.com | //+------------------------------------------------------------------+ #property copyright "Copyright 2015, MetaQuotes Software Corp." #property link "https://www.mql5.com" #property version "1.00" #property strict //+------------------------------------------------------------------+ //| Script program start function | //+------------------------------------------------------------------+ void OnStart() { //--- Инициализация массива int INDEX[]={2,45,21,8,96,14,32,6,81,46,1,3,31,22,5,78,24,25,66}; //--- Выведем на печать наш массив int size; string text; size=ArraySize(INDEX); // размер нашего массива text=NULL; for(int i=0;i<size;i++) { if(i<size-1) text=text+IntegerToString(INDEX[i])+","; else text=text+IntegerToString(INDEX[i]); } Print("Старт"); Print(text); //--- Print("---"); Print("Элемент с индексом ",ArrayMaximum(INDEX,WHOLE_ARRAY,0), " имеет максимальное значение равное ",INDEX[ArrayMaximum(INDEX,WHOLE_ARRAY,0)]); int maxValueIdx=ArraySort(INDEX,WHOLE_ARRAY,ArrayMaximum(INDEX,WHOLE_ARRAY,0),MODE_ASCEND); //--- Выведем на печать наш массив size=ArraySize(INDEX); // размер нашего массива text=NULL; for(int i=0;i<size;i++) { if(i<size-1) text=text+IntegerToString(INDEX[i])+","; else text=text+IntegerToString(INDEX[i]); } Print(text); //--- Print("---"); Print("Элемент с индексом ",ArrayMinimum(INDEX,WHOLE_ARRAY,0), " имеет минимальное значение равное ",INDEX[ArrayMinimum(INDEX,WHOLE_ARRAY,0)]); int minValueIdx=ArraySort(INDEX,WHOLE_ARRAY,ArrayMinimum(INDEX,WHOLE_ARRAY,0),MODE_DESCEND); //--- Выведем на печать наш массив size=ArraySize(INDEX); // размер нашего массива text=NULL; for(int i=0;i<size;i++) { if(i<size-1) text=text+IntegerToString(INDEX[i])+","; else text=text+IntegerToString(INDEX[i]); } Print(text); Print("Конец"); } //+------------------------------------------------------------------+ 而这就是结果。2015.05.03 19:20:03.917 test_script #CHL,Daily: Старт 2015.05.03 19:20:03.917 test_script #CHL,Daily: 2,45,21,8,96,14,32,6,81,46,1,3,31,22,5,78,24,25,66 2015.05.03 19:20:03.917 test_script #CHL,Daily: --- 2015.05.03 19:20:03.917 test_script #CHL,Daily: Элемент с индексом 4 имеет максимальное значение равное 96 2015.05.03 19:20:03.917 test_script #CHL,Daily: 2,45,21,8,1,3,5,6,14,22,24,25,31,32,46,66,78,81,96 2015.05.03 19:20:03.917 test_script #CHL,Daily: --- 2015.05.03 19:20:03.917 test_script #CHL,Daily: Элемент с индексом 4 имеет минимальное значение равное 1 2015.05.03 19:20:03.917 test_script #CHL,Daily: 2,45,21,8,96,81,78,66,46,32,31,25,24,22,14,6,5,3,1 2015.05.03 19:20:03.917 test_script #CHL,Daily: Конец探索,请。 1...349350351352353354355356357358359360361362363...1503 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
Karputov Vladimir:
Высылайте.
发送
把它寄给我。
在卡尔普托夫-弗拉基米尔 的帮助下。我通过在OnInit()函数中获得指标句柄,然后在OnDeinit()中删除它来解决这个问题。
你能不能让指标从某一栏开始画线,而不是在整个历史上画?
下午好。我有这样一个问题。我已经开始研究MQL,并正在编写一个EA。当我编译并运行我的EA时,它打开了欧元兑美元的一小时图表,但我没有指定要打开哪个图表。我已经规定欧元的开盘时间为5分钟。首先,它将欧元美元打开一个小时,然后打开5分钟。我怎样才能删除小时图?下面是专家顾问的代码。提前感谢您的建议。
//+------------------------------------------------------------------+
//|а.ǞǞǞ
//|Valery Wilkes |
//|https://www.mql5.com ||
//+------------------------------------------------------------------+
#财产版权"Valery Wilkes"
#属性链接 "https://www.mql5.com"
#财产版本 "1.00"
#属性严格
double iAlligator();
bool ObjectSetInteger()。
long a=ChartOpen("EURUSD",PERIOD_M5)。
//+------------------------------------------------------------------+
//| 专家初始化功能|
//+------------------------------------------------------------------+
int OnInit()
{
//-----------------创建计时器
EventSetTimer(5)。
//---
return(INIT_SUCCEEDED)。
}
//+------------------------------------------------------------------+
//| 专家去初始化功能|
//+------------------------------------------------------------------+
空白的OnDeinit(const int reason)。
{
//--------------销毁计时器
EventKillTimer()。
}
//+------------------------------------------------------------------+
//|专家勾选功能|
//+------------------------------------------------------------------+
空白的OnTick()
{
for(int f=3;; f++)
{
double val=iFractals("EURUSD",15,1,f);
如果(val!=0)
{
Alert("Buy Fractal",val, "Bar Left",f);
突破。
}
}
for(int f1=3;; f1++)
{
double val1=iFractals("EURUSD",15,2,f1);
如果(val1!=0)
{
Alert("Fractal to sell" ,val1, "Bar left" ,f1);
突破。
}
警报(Bid)。
}
}
//+------------------------------------------------------------------+
//| 定时器功能|
//+------------------------------------------------------------------+
空白的OnTimer()
{
}
//+------------------------------------------------------------------+
//| 测试器功能|
//+------------------------------------------------------------------+
double OnTester()
{
//---
double ret=0.0。
//---
//---
return(ret)。
}
//+------------------------------------------------------------------+
下午好。我有这样一个问题。我已经开始研究MQL,我正在写一个专家顾问。当我编译和运行专家顾问时,它打开了欧元兑美元的小时图,但我还没有指定要打开哪个图表。我已经规定欧元的开盘时间为5分钟。首先,它将欧元美元打开一个小时,然后打开5分钟。我怎样才能删除小时图?下面是专家顾问的代码。提前感谢您的提示。
你必须是启用调试,然后你的EA在默认的符号上启动。在元编辑器设置中指定所需的符号和TF。(见附图)。
因此,在这一块,我们正在寻找从最大到最小的最大和最小值?
并在此
从最小到最大?
这个代码。
搜索具有最大值的元素的索引。搜索从零元素开始,通过整个数组进行。
以下是代码
而这就是结果。
探索,请。