多时间框架指标 - 页 1204 1...119711981199120012011202120312041205120612071208120912101211...1223 新评论 Shino Unada 2017.07.05 07:59 #12031 greenpar : 再次感谢您的帮助。我已经纳入了你所概述的修改,但我仍然有问题/错误(见附件文件)。如果我能够得到一些进一步的指导,那就太好了。谢谢你。 我上传了一个固定的程序和一个完整的样本。 附加的文件: Candle_Size_Alert_v3_2.mq4 8 kb greenpar 2017.07.05 10:35 #12032 Naguisa Unada: 我上传了一个固定的程序和一个完整的样本。再次感谢您的帮助,我已经按照建议进行了修改(见下面的附件文件和代码)。我在编译时仍然遇到许多错误(见附件中的编译错误图片),我怀疑这与下面代码中的高亮行有关。请记住,我希望在这个指标文件中加入其他时间框架、货币对,以及其他指标(如ADX)。如果有任何进一步的帮助,我将不胜感激。#property description "Indicator alerts when candle size is larger than CandlePoint value for specified period" #property strict #property indicator_chart_window #property indicator_buffers 0 #property indicator_plots 0 //+------------------------------------------------------------------+ //| Declaring Constants | //+------------------------------------------------------------------+ #define RESET 0 //+------------------------------------------------------------------+ //| Enumeration for the indication of operation | //+------------------------------------------------------------------+ //+------------------------------------------------------------------+ //| Input parameters of the indicator | //+------------------------------------------------------------------+ //--- Candle point size input uint CandlePointM1 = 5; // Minimum candle points for Period M1 input uint CandlePointM5 = 5; // Minimum candle points for Period M5 int timeFrame[] = {PERIOD_M1, PERIOD_M5, PERIOD_H1}; string currencyPairs[] = {"AUDCAD", "AUDNZD", "AUDJPY", "AUDUSD"} //+------------------------------------------------------------------+ //| Custom indicator initialisation function | //+------------------------------------------------------------------+ int OnInit() { return(INIT_SUCCEEDED); } //+------------------------------------------------------------------+ //| Deinitialisation | //+------------------------------------------------------------------+ void OnDeinit(const int reason) { } //+------------------------------------------------------------------+ //| Custom iteration function | //+------------------------------------------------------------------+ int OnCalculate(const int rates_total, const int prev_calculated, const datetime &time[], const double &open[], const double &high[], const double &low[], const double &close[], const long &tick_volume[], const long &volume[], const int &spread[]) //+------------------------------------------------------------------+ //| Candle size indicator | //+------------------------------------------------------------------+ { int range; static datetime alertBar[] = {0, 0, 0}; // used for one alert/bar datetime candleTime[3]; for(int i=0; i<3; i++) { for (int j=0 ;j<3 ;j++) { double candleLow, candleHigh; candleLow = iLow(currencyPairs[i],timeFrame[j],0); candleHigh = iHigh(currencyPairs[i],timeFrame[j],0); range = int((candleHigh-candleLow)/_Point); candleTime[j] = iTime(currencyPairs[i],timeFrame[j],0); if (alertBar[j] != candleTime[j]) { if (timeFrame[j] == PERIOD_M1 && range>int(CandlePointM1)) { Alert(currencyPairs[i], "PERIOD_M1", "candle >", CandlePointM1, "points"); alertBar[j] = candleTime[j]; } if (timeFrame[j] == PERIOD_M5 && range>int(CandlePointM5)) { Alert(currencyPairs[i], "PERIOD_M5", "candle >", CandlePointM5, "points"); alertBar[j] = candleTime[j]; } } } } 附加的文件: Candle_Size_Alert_v4.mq4 3 kb Shino Unada 2017.07.05 14:44 #12033 greenpar : 再次感谢您的帮助,我已经按照建议进行了修改(见下面的附件文件和代码)。我在编译时仍然遇到许多错误(见附件中的编译错误图片),我怀疑这与下面代码中的高亮行有关。请记住,我希望在这个指标文件中加入其他时间框架、货币对,以及其他指标(如ADX)。如果有任何进一步的帮助,我将不胜感激。1.在行的末尾;缺少。 String currencyPairs [] = {"AUDCAD", "AUDNZD", "AUDJPY", "AUDUSD" }; 2.缺少了以下几行。 返回(rate_total)。 } 3.我把数组的尺寸放错了。现已修改如下,并移至全局区域。 datetime alert_bar [3] [3]; datetime candleTime [3] [3]; 附加的文件: Candle_Size_Alert_v4.mq4 4 kb Sample.mq4 4 kb greenpar 2017.07.05 16:44 #12034 Naguisa Unada:1.在该行的末尾;被丢失。 String currencyPairs [] = {"AUDCAD", "AUDNZD", "AUDJPY", "AUDUSD" }; 2.以下几行缺失。 返回(rate_total)。 } 3.我把数组的尺寸放错了。现已修改如下,并移至全局区域。 datetime alert_bar [3] [3]; datetime candleTime [3] [3]; 再次非常感谢你。现在,它在列出的所有时间框架和货币对 中都发出了警报。但是,它不再是每个柱状图都发出警报,而是每增加一个烛光点,超过最小烛光点的大小,它就发出警报。你在上一条信息中附上的'Sample.mq4'中的第78、84和90行并没有确保每根蜡烛只发出一次警报。我试图改变"[]"中的数值,但这显然没有解决问题。怎样才能解决这个问题呢?如同往常一样,我们将非常感谢任何进一步的帮助。谢谢你。 Shino Unada 2017.07.06 01:50 #12035 greenpar : 然而,它不再是每个柱状图都发出警报,而是每增加一个蜡烛点都会发出警报,超过最小蜡烛点的大小。你在上一条信息中附上的'Sample.mq4'中的第78、84和90行没有确保它在每个蜡烛上只发出一次警报。我试图改变"[]"中的数值,但这显然没有解决问题。怎样才能解决这个问题呢?当然是这样。我应该在 "OnInit "中写下以下几行。 //ArrayResize(candleTime, CPNO); //ArrayResize(alert_bar, CPNO); //ArrayInitialize(alert_bar, 0); int OnInit () { //--- indicator buffers mapping TFNO = ArraySize (timeFrame); CPNO = ArraySize (currencyPairs); ArrayResize (candleTime, CPNO); ArrayResize (alert_bar, CPNO); ArrayInitialize (alert_bar, 0 ); if ( StringLen ( Symbol ()) > 6 ) { sufix = StringSubstr ( Symbol (), 6 , 0 ); for ( int i = 0 ; i < CPNO; i++) currencyPairs[i] += sufix; } //--- return ( INIT_SUCCEEDED ); }[]内的数字用上面的 "ArrayResize "来调整。即使货币对 的数量增加,这里也会自动调整,但如果你想增加另一个时间框架,你必须直接修改程序。这是因为它是MQL4的规范。 greenpar 2017.07.06 03:06 #12036 Naguisa Unada:当然是这样的。我应该在 "OnInit "中写以下几行。 []中的数字是用上面的 "ArrayResize "调整的。即使货币对 的数量增加,这里也会自动调整,但如果你想增加另一个时间框架,你必须直接修改程序。这是因为这是MQL4的规范。 再次感谢您。我已经把代码加进去了。每一个烛光点的增加超过最小烛光点的大小,警报仍然在提醒 - 即使从图表中删除指标,重新编译,退出MT等。我怎样才能解决这个问题呢?如同往常一样,我们将非常感谢任何进一步的帮助。谢谢你。 Shino Unada 2017.07.06 04:08 #12037 greenpar : 即使从图表中删除该指标,重新编译,退出MT等,每一个蜡烛点的增加超过最小蜡烛点的大小,该警报仍在提醒。我怎样才能解决这个问题?在我的电脑上,它可以正常工作,没有任何问题。我认为有些地方出了问题,但我不知道是什么问题。 greenpar 2017.07.06 04:42 #12038 Naguisa Unada:在我的电脑上,它可以正常工作,没有任何问题。我认为有些地方出了问题,但我不知道是什么。我正在运行MT4 build 1090。不知道问题出在哪里。也许其他人可以帮忙?谢谢你 [删除] 2017.07.06 12:22 #12039 谁能修改一下这个指标,当曲线相互交叉时,箭头显示在第二根蜡烛上,但我需要箭头显示在当前的蜡烛上,每次当曲线相互交叉时立即显示。谢谢 附加的文件: _Stochastic_Cross_Alert_SigOverlayM_cw.mq4 6 kb Shino Unada 2017.07.06 15:46 #12040 fxprogramer:谁能修改一下这个指标,当STOCH相互交叉时,箭头显示在第二根蜡烛上,但我需要箭头显示在当前蜡烛上,每次当STOCH相互交叉时立即显示。//for(i=1; i<=limit; i++) for(i=0; i<=limit; i++) 这很简单。将第77行的i = 1改为i = 0。 1...119711981199120012011202120312041205120612071208120912101211...1223 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
再次感谢您的帮助。我已经纳入了你所概述的修改,但我仍然有问题/错误(见附件文件)。如果我能够得到一些进一步的指导,那就太好了。
谢谢你。
我上传了一个固定的程序和一个完整的样本。
再次感谢您的帮助,我已经按照建议进行了修改(见下面的附件文件和代码)。我在编译时仍然遇到许多错误(见附件中的编译错误图片),我怀疑这与下面代码中的高亮行有关。
请记住,我希望在这个指标文件中加入其他时间框架、货币对,以及其他指标(如ADX)。
如果有任何进一步的帮助,我将不胜感激。
再次感谢您的帮助,我已经按照建议进行了修改(见下面的附件文件和代码)。我在编译时仍然遇到许多错误(见附件中的编译错误图片),我怀疑这与下面代码中的高亮行有关。
请记住,我希望在这个指标文件中加入其他时间框架、货币对,以及其他指标(如ADX)。
如果有任何进一步的帮助,我将不胜感激。
1.在行的末尾;缺少。
String currencyPairs [] = {"AUDCAD", "AUDNZD", "AUDJPY", "AUDUSD" };
2.缺少了以下几行。
返回(rate_total)。
}
3.我把数组的尺寸放错了。现已修改如下,并移至全局区域。
datetime alert_bar [3] [3];
datetime candleTime [3] [3];
1.在该行的末尾;被丢失。
String currencyPairs [] = {"AUDCAD", "AUDNZD", "AUDJPY", "AUDUSD" };
2.以下几行缺失。
返回(rate_total)。
}
3.我把数组的尺寸放错了。现已修改如下,并移至全局区域。
datetime alert_bar [3] [3];
datetime candleTime [3] [3];
再次非常感谢你。现在,它在列出的所有时间框架和货币对 中都发出了警报。
但是,它不再是每个柱状图都发出警报,而是每增加一个烛光点,超过最小烛光点的大小,它就发出警报。你在上一条信息中附上的'Sample.mq4'中的第78、84和90行并没有确保每根蜡烛只发出一次警报。我试图改变"[]"中的数值,但这显然没有解决问题。怎样才能解决这个问题呢?
如同往常一样,我们将非常感谢任何进一步的帮助。谢谢你。
然而,它不再是每个柱状图都发出警报,而是每增加一个蜡烛点都会发出警报,超过最小蜡烛点的大小。你在上一条信息中附上的'Sample.mq4'中的第78、84和90行没有确保它在每个蜡烛上只发出一次警报。我试图改变"[]"中的数值,但这显然没有解决问题。怎样才能解决这个问题呢?
当然是这样。我应该在 "OnInit "中写下以下几行。
[]内的数字用上面的 "ArrayResize "来调整。即使货币对 的数量增加,这里也会自动调整,但如果你想增加另一个时间框架,你必须直接修改程序。这是因为它是MQL4的规范。
当然是这样的。我应该在 "OnInit "中写以下几行。
[]中的数字是用上面的 "ArrayResize "调整的。即使货币对 的数量增加,这里也会自动调整,但如果你想增加另一个时间框架,你必须直接修改程序。这是因为这是MQL4的规范。
再次感谢您。我已经把代码加进去了。
每一个烛光点的增加超过最小烛光点的大小,警报仍然在提醒 - 即使从图表中删除指标,重新编译,退出MT等。我怎样才能解决这个问题呢?
如同往常一样,我们将非常感谢任何进一步的帮助。谢谢你。
即使从图表中删除该指标,重新编译,退出MT等,每一个蜡烛点的增加超过最小蜡烛点的大小,该警报仍在提醒。我怎样才能解决这个问题?
在我的电脑上,它可以正常工作,没有任何问题。我认为有些地方出了问题,但我不知道是什么问题。
在我的电脑上,它可以正常工作,没有任何问题。我认为有些地方出了问题,但我不知道是什么。
我正在运行MT4 build 1090。不知道问题出在哪里。也许其他人可以帮忙?
谢谢你
谁能修改一下这个指标,当曲线相互交叉时,箭头显示在第二根蜡烛上,但我需要箭头显示在当前的蜡烛上,每次当曲线相互交叉时立即显示。
谢谢
谁能修改一下这个指标,当STOCH相互交叉时,箭头显示在第二根蜡烛上,但我需要箭头显示在当前蜡烛上,每次当STOCH相互交叉时立即显示。
这很简单。将第77行的i = 1改为i = 0。