编码帮助 - 页 10

 

RSI电子邮件提醒

嗨,程序员。

如果有人能添加一个电子邮件警报来补充现有的警报,我非常感激。它应该只在当前价格条期间,当RSI水平首次被击中时发送一封电子邮件(所以如果它在价格条期间上下跳动,我不会被电子邮件淹没)。我对mql编程知识一窍不通,所以任何帮助都是非常好的。

祝您一切顺利。

马尔科姆

附加的文件:
rsi_alert.mq4  3 kb
 
m1nich:
嗨,程序员。

如果有人能添加一个电子邮件警报来补充现有的警报,我真的很感激。它应该只在当前价格栏中,当RSI水平首次被击中时发送一封邮件(这样我就不会在价格栏中上蹿下跳时被邮件淹没)。我对mql编程知识一窍不通,所以任何帮助都是非常好的。

祝您一切顺利。

Malcolm

嗨,马尔科姆。

试试这里https://www.mql5.com/en/forum/180648

帖子# 2928

 

RSI电子邮件提醒

嗨,MrTools。

厉害啊!

万事如意

 

有错误的指标

嗨,编码员。

我发现了这个指标。它很适合手工交易。该指标显示了 几个订单的盈亏平衡点。不幸的是,他有几个错误。谁能纠正这个问题?

增加新的功能?

如果我用一个订单改变tp或sl,其他订单的sl和tp会自动改变(像e-MoveSLTPbyMouse.mq4)。

谢谢!

对不起,我的英语不好!

附加的文件:
 
rajivzzz:
你好

有没有人知道如何在EA中创建指标,我有这个指标,但我可以错过许多次更好的退出、进入和获利的位置,因为我没有每次都坐在电脑前,但它工作得非常好,在自然市场的任何货币对的每个时间框架上。

请看

红线 是很好的卖出位置

绿色线 是很好的买入位置

获利中心线

我可以用粉红色的线显示我在欧洲/美元上的一些交易,所有的交易都是以盈利结束的。

我想让EA像这样工作,在红线上卖出,TP点在中心线上,在绿线上买入,TP点在中心线上。

你好

我认为这是可能的,我可以提供帮助。编写一个EA必须满足某些条件。请给我发邮件,以便进一步讨论。

谢谢。

 
rvvidhul:
请专家们为所附图表编码一个MT4指标,谢谢。这是基于Heikin Ashi枢轴和NMA摆动系统。

下面是这个图表的Afl代码,谁能把这个公式转换成Metatrader指标。

_SECTION_BEGIN("NMA Swing Explorer");

SetBarsRequired(200,0);

GraphXSpace = 5;

SetChartOptions(0,chartShowArrows|chartShowDates)。

k = Optimize("K",Param("K",2,0.25,5,0.25),0.25,5,0.25)。

Per= Optimize("atr",Param("atr",20,3,20,1),3,20,1);

haclose=(o+h+l+c)/4;

HaOpen = AMA( Ref( HaClose, -1 ), 0.5 )。

HaHigh = Max( H, Max( HaClose, HaOpen ) )。

HaLow = Min( L, Min( HaClose, HaOpen ) )。

if( ParamToggle( "Plot Heikin-Ashi", "No, Yes", 1 )

PlotOHLC( HaOpen, HaHigh, HaLow, HaClose, "Heikin Ashi " + Name(), colorBlack, styleCandle ) 。

否则

Plot( C, "Regular candles " + Name(), colorBlack, styleCandle )。

j=Haclose。

//================================================================================================================

//=========================Indicator=================================================================================

f=ATR(15);

rfsctor = WMA(H-L, Per);

revers = k * rfsctor;

趋势=1。

NW[0] = 0。

for(i = 1; i < BarCount; i++)

{

如果(趋势==1)

{

如果(j < NW)

{

趋势 = -1。

NW = j + Revers。

}

否则

{

趋势=1。

如果((j - Revers) > NW)

{

NW = j - Revers。

}

否则

{

NW = NW。

}

}

}

if(Trend == -1)

{

如果(j > NW)

{

趋势 = 1。

NW = j - Revers。

}

否则

{

趋势 = -1。

如果((j + Revers) < NW)

{

NW = j + Revers。

}

否则

{

NW = NW。

}

}

}

}

//===============system================

Plot(NW, "", IIf(Trend == 1, 27, 4), 4);

Buy=Cover=Cross(j,nw);

Sell=Short=Cross(nw,j);

SellPrice=ValueWhen(Sell,C,1);

BuyPrice=ValueWhen(Buy,C,1);

Long=Flip(Buy,Sell);

Shrt=Flip(Sell,Buy );

nmab= nw<haclose;

nmas= nw>haclose;

NMA_status= WriteIf(NMAB, "BUY MODE", WriteIf(NMAS, "SELL MODE", "NEUTRAL"))。

NMAS_Col=IIf(NMAB, colorGreen, IIf(NMAS, colorRed, colorLightGrey))。

过滤器=1。

AddColumn( NW, "SAR", 1.2 );

AddColumn( HACLOSE, "HA Close", 1.2 );

AddColumn( C, "Close", 1.2 );

AddTextColumn( NMA_status, "MODE", 1, colorWhite, NMAS_Col);

_section_end()。

//=================TITLE===========================================================================================

_SECTION_BEGIN("标题")。

如果( Status("action") == actionIndicator )

(

标题 = EncodeColor(colorWhite)+ "NICK MA Swing System" + " - " + Name() + " - " + EncodeColor(colorRed)+ Interval(2) + EncodeColor(colorWhite) +

"-" + Date() +" - "+"/n" +EncodeColor(colorRed) +"Op-"+O+" "+"Hi-"+H+" "+"Lo-"+L+" "+

"Cl-"+C+" "+ "Vol="+ WriteVal(V)+"/n "+

EncodeColor(colorLime)+

WriteIf (Buy , " GO LONG / Reverse Signal at " +C+" ",")+

WriteIf (Sell , " EXIT LONG / Reverse Signal at "+C+" ",")+"\n "+EncodeColor(colorWhite)+

WriteIf(Sell , "Total Profit/Loss for the Last Trade Rs. "+(C-BuyPrice)+"",")+

WriteIf(Buy , "Total Profit/Loss for the Last Trade Rs. "+(SellPric-C)+"",")+

WriteIf(Long AND NOT Buy, "交易:多头 - 入场价格Rs.+(BuyPrice),""+

WriteIf(Shrt AND NOT Sell, "Trade : Short - Entry price Rs. "+(SellPrice),""+"/n "+

WriteIf(Long AND NOT Buy,"Current Profit/Loss Rs. "+(C-BuyPrice)+"",")+

WriteIf(shrt AND NOT Sell, "Current Profit/Loss Rs. "+(SellPric-C)+",")。

PlotShapes(IIf(Buy, shapeSquare, shapeNone),colorGreen, 0, L, Offset=-40);

PlotShapes(IIf(Buy, shapeSquare, shapeNone),colorLime, 0,L, Offset=-50);

PlotShapes(IIf(Buy, shapeUpArrow, shapeNone),colorWhite, 0,L, Offset=-45);

PlotShapes(IIf(Sell, shapeSquare, shapeNone),colorRed, 0, H, Offset=40);

PlotShapes(IIf(Sell, shapeSquare, shapeNone),colorOrange, 0,H, Offset=50);

PlotShapes(IIf(Sell, shapeDownArrow, shapeNone),colorWhite, 0,H, Offset=-45);

_section_end();

 
rajivzzz:
我没有再分享它

重绘,LOL

它的作用就像HolyGrial

如果你不知道它是怎么做的,你就不能为我做任何事情。

多么好的一个人,多么聪明的一个人!!!!!!!!!!!!!!!!!!!!!!!!

 

嗨,Laurus,你只需要切换缓冲区的顺序。Mt4显示缓冲区3在缓冲区2的上面,在缓冲区1的上面等等。

 

指标的对象层顺序

我有一个经典的带直方图的MACD,直方图被画在MACD和信号线的前面。谁能告诉我如何将柱状图设置在后面?我已经尝试过了,但没有成功。

谢谢。

Laurus

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

//| _MACD.mq4|

//| |

//| 经典的MACD与柱状图。

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

//---- 指标设置

#属性 indicator_separate_window

#property indicator_buffers 3

#属性 indicator_color1 黑色

#属性 indicator_color2 红色

#属性 indicator_color3 钢蓝

#属性 indicator_width1 1

#属性指示器宽度2 1

#perty indicator_width3 2

//---- 指标参数

extern int FastEMA=12;

extern int SlowEMA=26;

extern int SignalEMA=9;

//----指标缓冲区

double MACD_Buffer[];

double SIGNAL_Buffer[];

double HISTOGRAM_Buffer[];

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

//|自定义指标初始化函数|

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

int init() {

//---- 绘图设置

SetIndexStyle(0,DRAW_LINE);

SetIndexStyle(1,DRAW_LINE);

SetIndexStyle(2,DRAW_HISTOGRAM);

SetIndexDrawBegin(1,SignalEMA);

IndicatorDigits(Digits+1)。

//---- 指标缓冲区的映射

SetIndexBuffer(0,MACD_Buffer)。

SetIndexBuffer(1,SIGNAL_Buffer);

SetIndexBuffer(2,HISTOGRAM_Buffer)。

//---- DataWindow和指标子窗口标签的名称

IndicatorShortName("_MACD ("+FastEMA+", "+SlowEMA+", "+SignalEMA+")")。

SetIndexLabel(0, "MACD")。

SetIndexLabel(1, "信号")。

SetIndexLabel(2, "Histogram");

//---- 初始化完成

返回(0)。

}

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

//| 移动平均线收敛/背离|

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

int start() {

int i;

int limit;

int counted_bars = IndicatorCounted();

if(counted_bars < 0) return(-1); //----,检查可能的错误。

if(counted_bars > 0) counted_bars--; //----,最后一个被计算的柱子将被重新计算。

limit = Bars - counted_bars。

//---- 绘制MACD线

for(i=0; i<limit; i++) { //-- 从当前柱子到第一个柱子的循环。

MACD_Buffer = iMA(NULL,0,FastEMA,0,MODE_EMA,PRICE_CLOSE,i) - iMA(NULL,0,SlowEMA,0,MODE_EMA,PRICE_CLOSE,i) 。

}

//---- 绘制信号线和柱状图

for(i=0; i<limit; i++) { //-- 上面的循环相同

SIGNAL_Buffer = iMAOnArray(MACD_Buffer,Bars,SignalEMA,0,MODE_EMA,i) 。

HISTOGRAM_Buffer = MACD_Buffer - SIGNAL_Buffer。

}

//---- Done

return(0);

}

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

 
christinaLi:
嗨,Laurus,你只需要切换缓冲区的顺序。Mt4显示缓冲区3,在缓冲区2的上面,在缓冲区1的上面等等。

伟大的ChristinaLi!非常感谢您的答复和帮助。这样就可以了。现在工作得非常好

如果有人想得到后面的直方图,我附上了文件。

- Laurus

附加的文件:
_macd.mq4  3 kb