编码帮助 - 页 197 1...190191192193194195196197198199200201202203204...786 新评论 Georgebaker 2013.11.14 11:01 #1961 mladen: 你可以添加它来再次绘制这些额外的线条--像这样: if (add>0) { drawLine(totalLevels,current+diff+add,addLinesColor,addLinesStyle); drawLine(totalLevels,current+diff-add ,addLinesColor,addLinesStyle); } ,它将在所有 "基本 "线条周围绘制这些额外的线条。 再次感谢你mladen Slow Moe 2013.11.15 15:40 #1962 在编程中需要帮助的警报 嗨,我是整个mql4编程 的新手。 我想创建一个新的 "all in one "警报。 我有Fx MNT, Super Signal和CHT Value Chart的报警信号。 现在我想只有一个警报,当MNT、超级信号、价值图和RSI处于正确位置时。 如何编写这个代码?我可以使用现有的报警部分,并将它们全部放在一个大的代码中吗? 敬请期待。 Mladen Rakic 2013.11.15 16:49 #1963 Slow Moe: 你好,我对整个mql4的编程很陌生。 我想创建一个新的 "一体式 "警报。我有Fx MNT,超级信号和CHT价值图的报警信号。现在我想只有一个警报,当MNT、超级信号、价值图和RSI处于正确位置时。如何编写这个代码?我可以使用现有的报警部分并把它们都放在一个大的代码中吗? 尊敬的Slow先生 缓慢 你可以这样做,但 "负责 "从所有这些指标中获取数据的代码并不简单(尤其是带参数 的部分,你需要向所有指标声明外部参数,以便发现是否应该触发警报)。 metrus 2013.11.15 17:47 #1964 连续收高/收低 附件中的文件有许多条件,可以通过选择真/假来包含。 我想把另一个条件变成真/假:是否有 2个连续的较高收盘价的多头? 如果有,那么如果由 "真 "启用的其他条件也存在,就会产生向上的箭头。 有2个连续的较低收盘价的空头吗? 如果有,那么如果由 "真 "启用的其他条件存在,那么就会产生向下的箭头。 收盘次数可以是一个变量吗? 谁能把这个额外的条件编入Stoch_Indy指标? 谢谢你。 附加的文件: stoch_indy.mq4 24 kb consecutive_closes.png 28 kb Mladen Rakic 2013.11.16 08:37 #1965 person77: 附件中的文件有许多条件,可以通过选择真/假来包含。 我想把另一个条件作为真/假纳入:是否有 2个连续的较高收盘价的多头? 如果有,那么如果由 "真 "启用的其他条件也存在,就会产生向上的箭头。 有2个连续的较低收盘价的空头吗? 如果有,那么如果由 "真 "启用的其他条件存在,那么就会产生向下的箭头。 收盘次数可以是一个变量吗? 谁能把这个额外的条件编入Stoch_Indy指标? 谢谢你。 人77 试试这个 为此添加了UseConsecutiveCloseBars选项。不仅仅是测试收盘价,而且收盘价必须大于开盘价才能成为连续上涨,或者必须低于开盘价才能成为连续下跌。 附加的文件: stoch_indy-1.01.mq4 24 kb metrus 2013.11.16 19:05 #1966 mladen: 人77试试这个 为此添加了UseConsecutiveCloseBars选项。不仅仅是测试收盘价,而且收盘价必须大于开盘价才能成为连续上涨,或者必须低于开盘价才能成为连续下跌。 非常好的mladen - 效果非常好。 谢谢你!"。 在我遇到的几个例子中,允许C=O的情况基本上是有利的。 你能不能把它改成允许这样,或者,最好有一个是否允许C=O的选项? 附加的文件: stoch_indy_1.png 63 kb stoch_indy_2.png 49 kb Mladen Rakic 2013.11.16 19:32 #1967 person77:非常好的mladen--效果很好。谢谢你!"。在我遇到的少数情况下,允许有C=O的情况大体上是有利的。 你能不能把它改成允许这样,或者,最好有一个选项,是否允许C=O? 人77 又增加了一个选项。AllowCloseEqualOpen。所以你现在可以用这个选项来控制 它。 附加的文件: stoch_indy-1.02.mq4 25 kb Cainah 2013.11.17 05:54 #1968 嗨,伙计们。 我有一个关于编码的问题 是否可以用这个偏好在普通图表上画出移动平均线? nCountedBars = IndicatorCounted(); dFactor = 2*3.14159/180.0; mFactor = 10000.0; Mladen Rakic 2013.11.17 07:10 #1969 cain82: 嗨,伙计们。我有一个关于编码的问题 是否可以用这种偏好在普通图表上画出移动平均线? nCountedBars = IndicatorCounted(); dFactor = 2*3.14159/180.0。 mFactor = 10000.0。 你所写的(dFactor和mFactor)都被评估为一个常数,而不考虑价格和条数,所以你在图表上会有一条水平线。 Cainah 2013.11.17 07:26 #1970 mladen: 你所写的(dFactor和mFactor)都被评估为一个常数,无论价格和条数如何,所以你在图表上会有一条水平线。 谢谢你的回答 但是我怎样才能在一般的图表上获得MA的角度线,就像在这个di hystogramm代码中一样? //---- indicator settings #property indicator_separate_window #property indicator_buffers 3 #property indicator_color1 LimeGreen #property indicator_color2 FireBrick #property indicator_color3 Yellow #property indicator_width1 2 #property indicator_width2 2 #property indicator_width3 2 //---- indicator parameters extern int TimeFrame = 60; extern int MAMode = 0; extern int MAPeriod = 50; extern int Price = 4; extern double AngleTreshold = 0.25; extern int StartMAShift = 2; extern int EndMAShift = 0; extern int MaxBars = 500; string TF1; //---- indicator buffers double UpBuffer[]; double DownBuffer[]; double ZeroBuffer[]; //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int init() { //---- 2 additional buffers are used for counting. IndicatorBuffers(3); //---- drawing settings SetIndexStyle(0,DRAW_HISTOGRAM); SetIndexStyle(1,DRAW_HISTOGRAM); SetIndexStyle(2,DRAW_HISTOGRAM); IndicatorDigits(MarketInfo(Symbol(),MODE_DIGITS)+2 ); //---- 3 indicator buffers mapping if(!SetIndexBuffer(0,UpBuffer) && !SetIndexBuffer(1,DownBuffer) && !SetIndexBuffer(2,ZeroBuffer)) Print("cannot set indicator buffers!"); SetIndexLabel(0,""); SetIndexLabel(1,""); SetIndexLabel(2,""); switch(TimeFrame) { case 1: TF1="M1"; break; case 5: TF1="M5"; break; case 15: TF1="M15"; break; case 30: TF1="M30"; break; case 60: TF1="H1"; break; case 240: TF1="H4"; break; case 1440: TF1="D1"; break; case 10080: TF1="W1"; break; case 43200: TF1="MN1"; break; default: {TimeFrame = Period(); init(); return(0);} } IndicatorShortName("MAAngle MTF * "+TF1+" *"); //---- initialization done return(0); } //+------------------------------------------------------------------+ //| The angle for EMA | //+------------------------------------------------------------------+ int start() { double fEndMA, fStartMA; double fAngle, mFactor, dFactor; int nLimit, i; int nCountedBars; double angle; int ShiftDif; string Sym; if (MAMode >= 4) MAMode = 0; if(EndMAShift >= StartMAShift) { Print("Error: EndMAShift >= StartMAShift"); StartMAShift = 6; EndMAShift = 0; } nCountedBars = IndicatorCounted(); dFactor = 2*3.14159/180.0; mFactor = 10000.0; Sym = StringSubstr(Symbol(),3,3); if (Sym == "JPY") mFactor = 100.0; ShiftDif = StartMAShift-EndMAShift; mFactor /= ShiftDif; //---- check for possible errors if(nCountedBars<0) return(-1); //---- last counted bar will be recounted if(nCountedBars>0) nCountedBars--; nLimit=Bars-nCountedBars; nLimit=MathMax(nLimit,TimeFrame/Period()); nLimit=MathMin(nLimit,MaxBars ); //---- main loop for(i=0; i<nLimit; i++) { int y = iBarShift(NULL,TimeFrame,Time); if (TimeFrame<Period()) TimeFrame=Period(); fEndMA=iMA(NULL,TimeFrame,MAPeriod,0,MAMode,Price,y+EndMAShift); fStartMA=iMA(NULL,TimeFrame,MAPeriod,0,MAMode,Price,y+StartMAShift); // 10000.0 : Multiply by 10000 so that the fAngle is not too small // for the indicator Window. fAngle = mFactor * (fEndMA - fStartMA)/2.0; //fAngle = MathArctan(fAngle)/dFactor; DownBuffer = 0.0; UpBuffer = 0.0; ZeroBuffer = 0.0; if(fAngle > AngleTreshold) UpBuffer = fAngle; else if (fAngle < -AngleTreshold) DownBuffer = fAngle; else ZeroBuffer = fAngle; } return(0); } //+------------------------------------------------------------------+ Coding help MAAngle Indicator Sound Alert 1...190191192193194195196197198199200201202203204...786 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
你可以添加它来再次绘制这些额外的线条--像这样:
再次感谢你mladen
在编程中需要帮助的警报
嗨,我是整个mql4编程 的新手。
我想创建一个新的 "all in one "警报。
我有Fx MNT, Super Signal和CHT Value Chart的报警信号。
现在我想只有一个警报,当MNT、超级信号、价值图和RSI处于正确位置时。
如何编写这个代码?我可以使用现有的报警部分,并将它们全部放在一个大的代码中吗?
敬请期待。
你好,我对整个mql4的编程很陌生。
我想创建一个新的 "一体式 "警报。
我有Fx MNT,超级信号和CHT价值图的报警信号。
现在我想只有一个警报,当MNT、超级信号、价值图和RSI处于正确位置时。
如何编写这个代码?我可以使用现有的报警部分并把它们都放在一个大的代码中吗?
尊敬的Slow先生缓慢
你可以这样做,但 "负责 "从所有这些指标中获取数据的代码并不简单(尤其是带参数 的部分,你需要向所有指标声明外部参数,以便发现是否应该触发警报)。
连续收高/收低
附件中的文件有许多条件,可以通过选择真/假来包含。
我想把另一个条件变成真/假:是否有
2个连续的较高收盘价的多头?
如果有,那么如果由 "真 "启用的其他条件也存在,就会产生向上的箭头。
有2个连续的较低收盘价的空头吗?
如果有,那么如果由 "真 "启用的其他条件存在,那么就会产生向下的箭头。
收盘次数可以是一个变量吗?
谁能把这个额外的条件编入Stoch_Indy指标? 谢谢你。
附件中的文件有许多条件,可以通过选择真/假来包含。
我想把另一个条件作为真/假纳入:是否有
2个连续的较高收盘价的多头?
如果有,那么如果由 "真 "启用的其他条件也存在,就会产生向上的箭头。
有2个连续的较低收盘价的空头吗?
如果有,那么如果由 "真 "启用的其他条件存在,那么就会产生向下的箭头。
收盘次数可以是一个变量吗?
谁能把这个额外的条件编入Stoch_Indy指标? 谢谢你。
人77
试试这个
为此添加了UseConsecutiveCloseBars选项。不仅仅是测试收盘价,而且收盘价必须大于开盘价才能成为连续上涨,或者必须低于开盘价才能成为连续下跌。
人77
试试这个
为此添加了UseConsecutiveCloseBars选项。不仅仅是测试收盘价,而且收盘价必须大于开盘价才能成为连续上涨,或者必须低于开盘价才能成为连续下跌。非常好的mladen - 效果非常好。 谢谢你!"。
在我遇到的几个例子中,允许C=O的情况基本上是有利的。
你能不能把它改成允许这样,或者,最好有一个是否允许C=O的选项?
非常好的mladen--效果很好。谢谢你!"。
在我遇到的少数情况下,允许有C=O的情况大体上是有利的。
你能不能把它改成允许这样,或者,最好有一个选项,是否允许C=O?人77
又增加了一个选项。AllowCloseEqualOpen。所以你现在可以用这个选项来控制 它。
嗨,伙计们。
我有一个关于编码的问题
是否可以用这个偏好在普通图表上画出移动平均线?
nCountedBars = IndicatorCounted();
dFactor = 2*3.14159/180.0;
mFactor = 10000.0;
嗨,伙计们。
我有一个关于编码的问题
是否可以用这种偏好在普通图表上画出移动平均线?
nCountedBars = IndicatorCounted();
dFactor = 2*3.14159/180.0。
mFactor = 10000.0。你所写的(dFactor和mFactor)都被评估为一个常数,而不考虑价格和条数,所以你在图表上会有一条水平线。
你所写的(dFactor和mFactor)都被评估为一个常数,无论价格和条数如何,所以你在图表上会有一条水平线。
谢谢你的回答
但是我怎样才能在一般的图表上获得MA的角度线,就像在这个di hystogramm代码中一样?
#property indicator_separate_window
#property indicator_buffers 3
#property indicator_color1 LimeGreen
#property indicator_color2 FireBrick
#property indicator_color3 Yellow
#property indicator_width1 2
#property indicator_width2 2
#property indicator_width3 2
//---- indicator parameters
extern int TimeFrame = 60;
extern int MAMode = 0;
extern int MAPeriod = 50;
extern int Price = 4;
extern double AngleTreshold = 0.25;
extern int StartMAShift = 2;
extern int EndMAShift = 0;
extern int MaxBars = 500;
string TF1;
//---- indicator buffers
double UpBuffer[];
double DownBuffer[];
double ZeroBuffer[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init()
{
//---- 2 additional buffers are used for counting.
IndicatorBuffers(3);
//---- drawing settings
SetIndexStyle(0,DRAW_HISTOGRAM);
SetIndexStyle(1,DRAW_HISTOGRAM);
SetIndexStyle(2,DRAW_HISTOGRAM);
IndicatorDigits(MarketInfo(Symbol(),MODE_DIGITS)+2 );
//---- 3 indicator buffers mapping
if(!SetIndexBuffer(0,UpBuffer) &&
!SetIndexBuffer(1,DownBuffer) &&
!SetIndexBuffer(2,ZeroBuffer))
Print("cannot set indicator buffers!");
SetIndexLabel(0,"");
SetIndexLabel(1,"");
SetIndexLabel(2,"");
switch(TimeFrame)
{
case 1: TF1="M1"; break;
case 5: TF1="M5"; break;
case 15: TF1="M15"; break;
case 30: TF1="M30"; break;
case 60: TF1="H1"; break;
case 240: TF1="H4"; break;
case 1440: TF1="D1"; break;
case 10080: TF1="W1"; break;
case 43200: TF1="MN1"; break;
default: {TimeFrame = Period(); init(); return(0);}
}
IndicatorShortName("MAAngle MTF * "+TF1+" *");
//---- initialization done
return(0);
}
//+------------------------------------------------------------------+
//| The angle for EMA |
//+------------------------------------------------------------------+
int start()
{
double fEndMA, fStartMA;
double fAngle, mFactor, dFactor;
int nLimit, i;
int nCountedBars;
double angle;
int ShiftDif;
string Sym;
if (MAMode >= 4) MAMode = 0;
if(EndMAShift >= StartMAShift)
{
Print("Error: EndMAShift >= StartMAShift");
StartMAShift = 6;
EndMAShift = 0;
}
nCountedBars = IndicatorCounted();
dFactor = 2*3.14159/180.0;
mFactor = 10000.0;
Sym = StringSubstr(Symbol(),3,3);
if (Sym == "JPY") mFactor = 100.0;
ShiftDif = StartMAShift-EndMAShift;
mFactor /= ShiftDif;
//---- check for possible errors
if(nCountedBars<0) return(-1);
//---- last counted bar will be recounted
if(nCountedBars>0) nCountedBars--;
nLimit=Bars-nCountedBars;
nLimit=MathMax(nLimit,TimeFrame/Period());
nLimit=MathMin(nLimit,MaxBars );
//---- main loop
for(i=0; i<nLimit; i++)
{
int y = iBarShift(NULL,TimeFrame,Time);
if (TimeFrame<Period()) TimeFrame=Period();
fEndMA=iMA(NULL,TimeFrame,MAPeriod,0,MAMode,Price,y+EndMAShift);
fStartMA=iMA(NULL,TimeFrame,MAPeriod,0,MAMode,Price,y+StartMAShift);
// 10000.0 : Multiply by 10000 so that the fAngle is not too small
// for the indicator Window.
fAngle = mFactor * (fEndMA - fStartMA)/2.0;
//fAngle = MathArctan(fAngle)/dFactor;
DownBuffer = 0.0;
UpBuffer = 0.0;
ZeroBuffer = 0.0;
if(fAngle > AngleTreshold)
UpBuffer = fAngle;
else if (fAngle < -AngleTreshold)
DownBuffer = fAngle;
else ZeroBuffer = fAngle;
}
return(0);
}
//+------------------------------------------------------------------+