如何编码? - 页 317 1...310311312313314315316317318319320321322323324...347 新评论 dasio 2012.10.15 19:48 #3161 你好。 我正在考虑如何编写这个指标/工具。 我需要一个指标,脚本或类似的东西,我可以决定一些天数的范围(例如12/10/2012-15/10/2012或15/10/2012-15/10/2012),然后它在csv或excel文件中写出图表中显示的蜡烛的开盘高点和收盘,这取决于TF(例如,如果我只决定一天并在1小时TF中附上它,它会写出24个蜡烛的规格)。 谢谢你的帮助 Mastercash 2012.10.16 10:04 #3162 警报信号问题。 大家好,我写的MT4代码有一个小问题。这个代码应该是观察三个指数,随机指数,RSI和CCI。如果随机指数向上或向下穿过它的信号线,RSI的70和6期相互向上或向下交叉,CCI高于或低于零,如果整个三个指数都在它们的信号线以上,应该有一个买入信号,如果三个指数都在它们的信号线以下,应该有卖出信号。....... 这个代码可以工作,但是每当有警报时,它就会在蜡烛的每个点上不断重复。我怎样才能使这个警报只在当前蜡烛上满足三个条件时发出,而不是重复发出。这是下面的代码。 如果(Period()==240){ double ist_main=iStochastic(NULL,240,8,3,3,MODE_SMA,0,MODE_MAIN,0) 。 double ist_signal=iStochastic(NULL,240,8,3,3,MODE_SMA,0,MODE_SIGNAL,0)。 double RSIP1=iRSI(NULL,240,14,PRICE_CLOSE,0); double RSIP2=iRSI(NULL,240,70,PRICE_CLOSE,0); double b4enCCI=iCCI(NULL,240,6,PRICE_TYPICAL,1); double nowenCCI=iCCI(NULL,240,6,PRICE_TYPICAL,0); double b4trCCI=iCCI(NULL,240,14,PRICE_TYPICAL,1); double nowtrCCI=iCCI(NULL,240,14,PRICE_TYPICAL,0); // 警报 if((ist_main>ist_signal)&&(RSIP1>RSIP2)&&(nowenCCI>0&&nowenCCI>b4enCCI)&&(nowtrCCI>0&&nowtrCCI>b4trCCI)){ Alert("Buy Arrow","/n","当前时间 是",TimeToStr(CurTime()),"/n",Symbol())。 } 如果((ist_main<ist_signal)&&(RSIP1<RSIP2)&&(nowenCCI<0&&nowenCCI<b4enCCI)&&(nowtrCCI<0&&nowtrCCI<b4trCCI)){ Alert("Sell Arrow","/n", "当前时间是",TimeToStr(CurTime()),"/n",Symbol()。 } } How to code? Trade Assistant Any rookie question, so poohguo 2012.10.16 10:32 #3163 mladen: pooh这只是因为不同符号的价值可以相差很多(例如GBPJPY现在大约是126,而EURUSD大约是100倍 - 当你在同一个图表上画出这些价值时,EURUSD的价值根本 "不在画面上,因为Metatrader把GBPJPY的价值作为图表缩放的标准)。 看一下这个主题:https://www.mql5.com/en/forum/178052。在该线程中,已经有几个类似问题的解决方案了 谢谢你,Mladen。按照你的链接,找到了适合我需要的指标。 pooh Mladen Rakic 2012.10.16 12:43 #3164 试着像这样: if(Period()==240) { static datetime lastAlerted=0; double ist_main=iStochastic(NULL,240,8,3,3,MODE_SMA,0,MODE_MAIN,0); double ist_signal=iStochastic(NULL,240,8,3,3,MODE_SMA,0,MODE_SIGNAL,0); double RSIP1=iRSI(NULL,240,14,PRICE_CLOSE,0); double RSIP2=iRSI(NULL,240,70,PRICE_CLOSE,0); double b4enCCI=iCCI(NULL,240,6,PRICE_TYPICAL,1); double nowenCCI=iCCI(NULL,240,6,PRICE_TYPICAL,0); double b4trCCI=iCCI(NULL,240,14,PRICE_TYPICAL,1); double nowtrCCI=iCCI(NULL,240,14,PRICE_TYPICAL,0); // alerts if((ist_main>ist_signal)&&(RSIP1>RSIP2)&&(nowenCCI >0&&nowenCCI>b4enCCI)&&(nowtrCCI>0&&nowtrCCI>b4trCCI)&&(lastAlerted!=Time[0])) { lastAlerted=Time[0]; Alert("Buy Arrow","\n","Current time is ",TimeToStr(CurTime()),"\n",Symbol()); } if((ist_main<ist_signal)&&(RSIP1<RSIP2)&&(nowenCCI <0&&nowenCCI<b4enCCI)&&(nowtrCCI<0&&nowtrCCI<b4trCCI)&&(lastAlerted!=Time[0])) { lastAlerted=Time[0]; Alert("Sell Arrow","\n","Current time is ",TimeToStr(CurTime()),"\n",Symbol()); } } Mastercash: 大家好,我写的MT4代码有一个小问题。这个代码应该是观察三个指数,随机指数,RSI和CCI。如果随机指数向上或向下穿越其信号线,RSI的周期70和6相互向上或向下交叉,CCI高于或低于零,如果整个3个指数都在其信号线以上,应该有一个买入信号,或者如果3个指数都在其信号线以下,应该有卖出信号。....... 这个代码可以工作,但是每当有警报时,它就会在蜡烛的每个点上不断重复。我怎样才能使这个警报只在当前蜡烛上满足三个条件时发出,而不是重复发出。这是下面的代码。如果(Period()==240){ double ist_main=iStochastic(NULL,240,8,3,3,MODE_SMA,0,MODE_MAIN,0)。 double ist_signal=iStochastic(NULL,240,8,3,3,MODE_SMA,0,MODE_SIGNAL,0)。 double RSIP1=iRSI(NULL,240,14,PRICE_CLOSE,0); double RSIP2=iRSI(NULL,240,70,PRICE_CLOSE,0); double b4enCCI=iCCI(NULL,240,6,PRICE_TYPICAL,1); double nowenCCI=iCCI(NULL,240,6,PRICE_TYPICAL,0); double b4trCCI=iCCI(NULL,240,14,PRICE_TYPICAL,1); double nowtrCCI=iCCI(NULL,240,14,PRICE_TYPICAL,0); // 警报 if((ist_main>ist_signal)&&(RSIP1>RSIP2)&&(nowenCCI>0&&nowenCCI>b4enCCI)&&(nowtrCCI>0&&nowtrCCI>b4trCCI)){ Alert("Buy Arrow","/n", "当前时间是",TimeToStr(CurTime()),"/n",Symbol())。 } 如果((ist_main<ist_signal)&&(RSIP1<RSIP2)&&(nowenCCI<0&&nowenCCI<b4enCCI)&&(nowtrCCI<0&&nowtrCCI<b4trCCI)){ Alert("Sell Arrow","/n", "当前时间是",TimeToStr(CurTime()),"/n",Symbol()。 } } How to code? Trade Assistant Any rookie question, so Mastercash 2012.10.17 10:21 #3165 警报问题 谢谢你mladen,我会尝试的。我从来没有注意到LastAlert()这个函数,请你让我知道在哪里可以得到所有这些 "分批唤醒 "mt4函数的目录。 Mladen Rakic 2012.10.17 10:34 #3166 掌握现金 注意:这不是一个函数,而是一个静态变量,用来存储最后一次警报的时间(bar time),这样可以防止在同一个bar上出现多个警报。不幸的是,在metatrader中没有LastAlert()这样的函数,所以我们必须找到变通的方法,就像例子中的湖泊一样,来解决函数缺乏的问题。 Mastercash: 谢谢你mladen,我会尝试的。我从来没有注意到LastAlert()这个函数,请你让我知道在哪里可以得到所有这些 "批判 "mt4函数的目录。 dasio 2012.10.17 14:32 #3167 你好,mladen。 我需要为最后一小时的24支蜡烛分配24个变量。 我需要对蜡烛做一些计算,结果将被分配到一个缓冲区。 我怎样才能对前一天的24小时蜡烛进行编码? 谢谢你 Mladen Rakic 2012.10.17 15:40 #3168 dasio 你可以使用与此类似的东西(这种模式不使用数组)。另外,这个例子是针对当天的 datetime startTime = iTime(NULL,PERIOD_D1,0); for (int i=iBarShift(NULL,PERIOD_H1,startTime); TimeDayOfYear(iTime(NULL,PERIOD_H1,i))==TimeDayOfYear(startTime); i--) { // // // processing the hourly data ... just an example here // // double close = iClose(NULL,PERIOD_H1,i); // double open = iOpen(NULL,PERIOD_H1,i); // and so on ... } dasio: 你好,mladen。我需要为最后一小时的24支蜡烛分配24个变量。 我需要对蜡烛做一些计算,结果将被分配到一个缓冲区。 我怎样才能对前一天的24小时蜡烛进行编码? 谢谢你 How to code? Useful tips for participants RSI open order at dasio 2012.10.17 16:36 #3169 mladen: 邓小平 你可以使用与此类似的东西(这种模式不使用数组)。另外,这个例子是针对当前日期的 datetime startTime = iTime(NULL,PERIOD_D1,0); for (int i=iBarShift(NULL,PERIOD_H1,startTime); TimeDayOfYear(iTime(NULL,PERIOD_H1,i))==TimeDayOfYear(startTime); i--) { // // // processing the hourly data ... just an example here // // double close = iClose(NULL,PERIOD_H1,i); // double open = iOpen(NULL,PERIOD_H1,i); // and so on ... } 谢谢你mladen。 在这个例子中。 double close =iClose(NULL,PERIOD_H1,i); // double open = iOpen(NULL,PERIOD_H1,i); // 哪支蜡烛代表什么,我怎样才能切换到下一支蜡烛? 谢谢你 Mladen Rakic 2012.10.17 17:32 #3170 大西奥 它已经在循环浏览当天的所有小时。我把iClose() 和iOpen()放在一起,只是为了举例说明从1小时以外的时间段调用。如果你想访问与当前日期不同的日期,那么请将startTime=iTime(NULL,PERIOD_D1,0); 部分替换为你希望收集的任何日期的数据。 dasio: 谢谢你mladen。在这个例子中。double close = iClose(NULL,PERIOD_H1,i); //double open = iOpen(NULL,PERIOD_H1,i); //哪支蜡烛代表什么,我怎样才能切换到下一支蜡烛? 谢谢你 1...310311312313314315316317318319320321322323324...347 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
你好。
我正在考虑如何编写这个指标/工具。
我需要一个指标,脚本或类似的东西,我可以决定一些天数的范围(例如12/10/2012-15/10/2012或15/10/2012-15/10/2012),然后它在csv或excel文件中写出图表中显示的蜡烛的开盘高点和收盘,这取决于TF(例如,如果我只决定一天并在1小时TF中附上它,它会写出24个蜡烛的规格)。
谢谢你的帮助
警报信号问题。
大家好,我写的MT4代码有一个小问题。这个代码应该是观察三个指数,随机指数,RSI和CCI。如果随机指数向上或向下穿过它的信号线,RSI的70和6期相互向上或向下交叉,CCI高于或低于零,如果整个三个指数都在它们的信号线以上,应该有一个买入信号,如果三个指数都在它们的信号线以下,应该有卖出信号。....... 这个代码可以工作,但是每当有警报时,它就会在蜡烛的每个点上不断重复。我怎样才能使这个警报只在当前蜡烛上满足三个条件时发出,而不是重复发出。这是下面的代码。
如果(Period()==240){
double ist_main=iStochastic(NULL,240,8,3,3,MODE_SMA,0,MODE_MAIN,0) 。
double ist_signal=iStochastic(NULL,240,8,3,3,MODE_SMA,0,MODE_SIGNAL,0)。
double RSIP1=iRSI(NULL,240,14,PRICE_CLOSE,0);
double RSIP2=iRSI(NULL,240,70,PRICE_CLOSE,0);
double b4enCCI=iCCI(NULL,240,6,PRICE_TYPICAL,1);
double nowenCCI=iCCI(NULL,240,6,PRICE_TYPICAL,0);
double b4trCCI=iCCI(NULL,240,14,PRICE_TYPICAL,1);
double nowtrCCI=iCCI(NULL,240,14,PRICE_TYPICAL,0);
// 警报
if((ist_main>ist_signal)&&(RSIP1>RSIP2)&&(nowenCCI>0&&nowenCCI>b4enCCI)&&(nowtrCCI>0&&nowtrCCI>b4trCCI)){
Alert("Buy Arrow","/n","当前时间 是",TimeToStr(CurTime()),"/n",Symbol())。
}
如果((ist_main<ist_signal)&&(RSIP1<RSIP2)&&(nowenCCI<0&&nowenCCI<b4enCCI)&&(nowtrCCI<0&&nowtrCCI<b4trCCI)){
Alert("Sell Arrow","/n", "当前时间是",TimeToStr(CurTime()),"/n",Symbol()。
}
}
pooh
这只是因为不同符号的价值可以相差很多(例如GBPJPY现在大约是126,而EURUSD大约是100倍 - 当你在同一个图表上画出这些价值时,EURUSD的价值根本 "不在画面上,因为Metatrader把GBPJPY的价值作为图表缩放的标准)。
看一下这个主题:https://www.mql5.com/en/forum/178052。在该线程中,已经有几个类似问题的解决方案了谢谢你,Mladen。按照你的链接,找到了适合我需要的指标。
pooh
试着像这样:
{
static datetime lastAlerted=0;
double ist_main=iStochastic(NULL,240,8,3,3,MODE_SMA,0,MODE_MAIN,0);
double ist_signal=iStochastic(NULL,240,8,3,3,MODE_SMA,0,MODE_SIGNAL,0);
double RSIP1=iRSI(NULL,240,14,PRICE_CLOSE,0);
double RSIP2=iRSI(NULL,240,70,PRICE_CLOSE,0);
double b4enCCI=iCCI(NULL,240,6,PRICE_TYPICAL,1);
double nowenCCI=iCCI(NULL,240,6,PRICE_TYPICAL,0);
double b4trCCI=iCCI(NULL,240,14,PRICE_TYPICAL,1);
double nowtrCCI=iCCI(NULL,240,14,PRICE_TYPICAL,0);
// alerts
if((ist_main>ist_signal)&&(RSIP1>RSIP2)&&(nowenCCI >0&&nowenCCI>b4enCCI)&&(nowtrCCI>0&&nowtrCCI>b4trCCI)&&(lastAlerted!=Time[0]))
{
lastAlerted=Time[0]; Alert("Buy Arrow","\n","Current time is ",TimeToStr(CurTime()),"\n",Symbol());
}
if((ist_main<ist_signal)&&(RSIP1<RSIP2)&&(nowenCCI <0&&nowenCCI<b4enCCI)&&(nowtrCCI<0&&nowtrCCI<b4trCCI)&&(lastAlerted!=Time[0]))
{
lastAlerted=Time[0]; Alert("Sell Arrow","\n","Current time is ",TimeToStr(CurTime()),"\n",Symbol());
}
}大家好,我写的MT4代码有一个小问题。这个代码应该是观察三个指数,随机指数,RSI和CCI。如果随机指数向上或向下穿越其信号线,RSI的周期70和6相互向上或向下交叉,CCI高于或低于零,如果整个3个指数都在其信号线以上,应该有一个买入信号,或者如果3个指数都在其信号线以下,应该有卖出信号。....... 这个代码可以工作,但是每当有警报时,它就会在蜡烛的每个点上不断重复。我怎样才能使这个警报只在当前蜡烛上满足三个条件时发出,而不是重复发出。这是下面的代码。
如果(Period()==240){
double ist_main=iStochastic(NULL,240,8,3,3,MODE_SMA,0,MODE_MAIN,0)。
double ist_signal=iStochastic(NULL,240,8,3,3,MODE_SMA,0,MODE_SIGNAL,0)。
double RSIP1=iRSI(NULL,240,14,PRICE_CLOSE,0);
double RSIP2=iRSI(NULL,240,70,PRICE_CLOSE,0);
double b4enCCI=iCCI(NULL,240,6,PRICE_TYPICAL,1);
double nowenCCI=iCCI(NULL,240,6,PRICE_TYPICAL,0);
double b4trCCI=iCCI(NULL,240,14,PRICE_TYPICAL,1);
double nowtrCCI=iCCI(NULL,240,14,PRICE_TYPICAL,0);
// 警报
if((ist_main>ist_signal)&&(RSIP1>RSIP2)&&(nowenCCI>0&&nowenCCI>b4enCCI)&&(nowtrCCI>0&&nowtrCCI>b4trCCI)){
Alert("Buy Arrow","/n", "当前时间是",TimeToStr(CurTime()),"/n",Symbol())。
}
如果((ist_main<ist_signal)&&(RSIP1<RSIP2)&&(nowenCCI<0&&nowenCCI<b4enCCI)&&(nowtrCCI<0&&nowtrCCI<b4trCCI)){
Alert("Sell Arrow","/n", "当前时间是",TimeToStr(CurTime()),"/n",Symbol()。
}
}警报问题
谢谢你mladen,我会尝试的。我从来没有注意到LastAlert()这个函数,请你让我知道在哪里可以得到所有这些 "分批唤醒 "mt4函数的目录。
掌握现金
注意:这不是一个函数,而是一个静态变量,用来存储最后一次警报的时间(bar time),这样可以防止在同一个bar上出现多个警报。不幸的是,在metatrader中没有LastAlert()这样的函数,所以我们必须找到变通的方法,就像例子中的湖泊一样,来解决函数缺乏的问题。
谢谢你mladen,我会尝试的。我从来没有注意到LastAlert()这个函数,请你让我知道在哪里可以得到所有这些 "批判 "mt4函数的目录。
你好,mladen。
我需要为最后一小时的24支蜡烛分配24个变量。
我需要对蜡烛做一些计算,结果将被分配到一个缓冲区。
我怎样才能对前一天的24小时蜡烛进行编码?
谢谢你
dasio
你可以使用与此类似的东西(这种模式不使用数组)。另外,这个例子是针对当天的
for (int i=iBarShift(NULL,PERIOD_H1,startTime); TimeDayOfYear(iTime(NULL,PERIOD_H1,i))==TimeDayOfYear(startTime); i--)
{
//
//
// processing the hourly data ... just an example here
//
//
double close = iClose(NULL,PERIOD_H1,i); //
double open = iOpen(NULL,PERIOD_H1,i); // and so on ...
}
你好,mladen。
我需要为最后一小时的24支蜡烛分配24个变量。
我需要对蜡烛做一些计算,结果将被分配到一个缓冲区。
我怎样才能对前一天的24小时蜡烛进行编码?
谢谢你邓小平
你可以使用与此类似的东西(这种模式不使用数组)。另外,这个例子是针对当前日期的
for (int i=iBarShift(NULL,PERIOD_H1,startTime); TimeDayOfYear(iTime(NULL,PERIOD_H1,i))==TimeDayOfYear(startTime); i--)
{
//
//
// processing the hourly data ... just an example here
//
//
double close = iClose(NULL,PERIOD_H1,i); //
double open = iOpen(NULL,PERIOD_H1,i); // and so on ...
}
谢谢你mladen。
在这个例子中。
double close =iClose(NULL,PERIOD_H1,i); //
double open = iOpen(NULL,PERIOD_H1,i); //
哪支蜡烛代表什么,我怎样才能切换到下一支蜡烛?
谢谢你
大西奥
它已经在循环浏览当天的所有小时。我把iClose() 和iOpen()放在一起,只是为了举例说明从1小时以外的时间段调用。如果你想访问与当前日期不同的日期,那么请将startTime=iTime(NULL,PERIOD_D1,0); 部分替换为你希望收集的任何日期的数据。
谢谢你mladen。
在这个例子中。
double close = iClose(NULL,PERIOD_H1,i); //
double open = iOpen(NULL,PERIOD_H1,i); //
哪支蜡烛代表什么,我怎样才能切换到下一支蜡烛?
谢谢你