如何编码? - 页 198

 
arshadFX:
1, 在交易标准触发后添加bool标志

2,在下订单前检查bool标志

3,下单后,bool标志应该被重置。

4,在init()中也重置这个标志。

谢谢

 

需要MQL指南 =^_^=

#属性 indicator_chart_window

#属性 indicator_buffers 2

#属性 indicator_color1 白色

#属性 indicator_color2 白色

extern int Fast.MA.Period = 5;

extern int Slow.MA.Period = 34;

extern int Signal.period = 5;

//---- 缓冲区

double Buffer1[],

Buffer2[]。

b2[],

b3[];

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

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

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

int init()

{

//---- 指标

//两个额外的缓冲区用于计数

IndicatorBuffers(4);

IndicatorShortName("MA3_54")。

SetIndexStyle(0,DRAW_ARROW,STYLE_SOLID,3);

SetIndexArrow(0,242); //向下 226 234 242

SetIndexBuffer(0,b2);

SetIndexStyle(1,DRAW_ARROW,STYLE_SOLID,3);

SetIndexArrow(1,241); //向上 225 233 241

SetIndexBuffer(1,b3);

//这些缓冲区不会被绘制出来,只是用来确定箭头。

SetIndexBuffer(2,Buffer1);

SetIndexBuffer(3,Buffer2);

//----

return(0);

}

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

//|Custor指示器的去初始化功能|

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

int deinit()

{

//----

return(0);

}

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

//|自定义指标迭代函数|

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

int start()

{

int i, counted_bars=IndicatorCounted();

双重MA5,MA34;

int limit=Bars-counted_bars;

Print(" print limit = ", limit);

如果(counted_bars>0) limit++;

// 主线

for(i=0; i<limit; i++)

{

MA5=iMA(NULL,0,Fast.MA.Period,0,MODE_SMA,PRICE_MEDIAN,i)。

MA34=iMA(NULL,0,Slow.MA.Period,0,MODE_SMA,PRICE_MEDIAN,i)。

Buffer1=MA5-MA34。

}

// 信号线

for(i=0; i<limit; i++)

{

Buffer2=iMAOnArray(Buffer1,Bars,Signal.period,0,MODE_LWMA,i) 。

}

// 箭头

for(i=0; i<limit; i++)

{

if(Buffer1 > Buffer2 && Buffer1 < Buffer2)

b2 = High+10*Point;

如果(Buffer1 Buffer2)

b3 = Low-10*Point。

}

//----

返回(0)。

}

你能教我如何根据这个指数创建EA吗? 当箭头出现在屏幕上时,就是EA自动进场的时候,能做到吗? 请指导我,因为我很想学习 =^_^=

 

好的参考

liew_stanley:
#属性 indicator_chart_window

#property indicator_buffers 2

............指导我,因为我热衷于学习 =^_^=

请参阅本指南,这真的是很好的材料MQL4教程

 

该指数看起来像这样

这是上面提到的箭头信号,需要有人来指导我的EA编码。

谢谢你,任何人都有=^_^=

附加的文件:
untitled.jpg  80 kb
 

谁能帮我把这个代码编入一个简单的EA?

嗨,谁能帮我把这个指数编入EA?只有一个简单的EA,当箭头出现在屏幕上时,就会进入位置,如果能帮助我做一个简单的EA,非常感谢。 =^_^= 谢谢

#property indicator_chart_window

#属性 indicator_buffers 2

#属性 indicator_color1 White

#属性 Indicator_color2 White

extern int Fast.MA.Period = 5;

extern int Slow.MA.Period = 34;

extern int Signal.period = 5;

//---- 缓冲区

double Buffer1[],

Buffer2[]。

b2[],

b3[];

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

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

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

int init()

{

//---- 指标

// 两个额外的缓冲区用于计数

IndicatorBuffers(4);

IndicatorShortName("Elliott Wave Oscillator")。

SetIndexStyle(0,DRAW_ARROW,STYLE_SOLID,3);

SetIndexArrow(0,242); //向下 226 234 242

SetIndexBuffer(0,b2);

SetIndexStyle(1,DRAW_ARROW,STYLE_SOLID,3);

SetIndexArrow(1,241); //向上 225 233 241

SetIndexBuffer(1,b3);

//

SetIndexBuffer(2,Buffer1);

SetIndexBuffer(3,Buffer2);

//----

return(0);

}

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

//|Custor指示器的去初始化功能|

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

int deinit()

{

//

//----

return(0);

}

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

//|自定义指标迭代函数|

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

int start()

{

int i, counted_bars=IndicatorCounted();

双重MA5,MA34;

int limit=Bars-counted_bars;

Print(" print limit = ", limit);

如果(counted_bars>0) limit++;

// 主线

for(i=0; i<limit; i++)

{

MA5=iMA(NULL,0,Fast.MA.Period,0,MODE_SMA,PRICE_MEDIAN,i)。

MA34=iMA(NULL,0,Slow.MA.Period,0,MODE_SMA,PRICE_MEDIAN,i)。

Buffer1=MA5-MA34。

}

// 信号线

for(i=0; i<limit; i++)

{

Buffer2=iMAOnArray(Buffer1,Bars,Signal.period,0,MODE_LWMA,i) 。

}

// 箭头

for(i=0; i<limit; i++)

{

if(Buffer1 > Buffer2 && Buffer1 < Buffer2)

b2 = High+10*Point;

如果(Buffer1 Buffer2)

b3 = Low-10*Point。

}

//----

返回(0)。

}

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

 

多订单代码?

有没有人有好的代码,可以在遇到最大手数障碍时交易多个订单?

IE Broker只允许5手,而你想交易10手,所以该函数 将交易2 x 5手的订单。

我在寻找的不仅仅是一个简单的循环。问题是,一个简单的循环并不总是完全完成,你可能只留下部分订单。

 

如何消除OrderModify错误1

你好。

我无法避免OrderModify的错误1:总是出现,甚至试图控制 修改前的数据是不同的我也试过doublenormalize......没有用......。

这就是代码。

如果(Bid-OrderOpenPrice() >= VPoint*BreakEvenAtProfit)

{

如果(OrderStopLoss() != OrderOpenPrice() + BreakEvenShift*VPoint)

{

Vresult = OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice()+ BreakEvenShift*VPoint,OrderTakeProfit(),0,Green) 。

有什么建议吗?

谢谢。

 
liew_stanley:
嗨,谁能帮我把这个指数编入EA?只有一个简单的EA,进入位置//+------------+。

这些航空器显示在两个移动平均线上,即5-34,你可以找到许多EA "MA的交叉EA "搜索,希望你会找到一个。

 

我如何设置警报频率?

我是mq4的新手,我试图在屏幕上创建一个显示MACD 的交叉点。以下是我的代码,但警报每隔几分钟就会弹出。

我如何编写代码使其每小时只显示一次警报?或者每条街有一个警报?

int start()

{

string MACD1=""。

color colt9;

double MACDM_S10 = iCustom(NULL, PERIOD_H1, "MACD", 8,17,9, MODE_MAIN, 0);

double MACDS_S10 = iCustom(NULL, PERIOD_H1, "MACD", 8,17,9, MODE_SIGNAL,0);

double MACDM_S11 = iCustom(NULL, PERIOD_H1, "MACD", 8,17,9, MODE_MAIN, 1);

double MACDS_S11 = iCustom(NULL, PERIOD_H1, "MACD", 8,17,9, MODE_SIGNAL,1);

如果((MACDM_S11 < MACDS_S11 && MACDM_S10 < MACDS_S10)) { MACD1="IN UPTREND"; colt9=LimeGreen; }

如果((MACDM_S11 > MACDS_S11 && MACDM_S10 > MACDS_S10)) { MACD1="下降趋势"; colt9=红色; } 如果(MACDM_S11 > MACDS_S11 && MACDM_S10 > MACDS_S10))

如果((MACDM_S11 > MACDS_S11 && MACDM_S10 < MACDS_S10)) { MACD1="新上升交叉点"; colt9=石灰绿; }

如果((MACDM_S11 MACDS_S10)) { MACD1="新的下跌横盘"; colt9=红色; }.

字符串MACD2=""。

颜色 colt14;

double MACDM_L10 = iCustom(NULL, PERIOD_H1, "MACD", 12,26,9, MODE_MAIN, 0);

double MACDS_L10 = iCustom(NULL, PERIOD_H1, "MACD", 12,26,9, MODE_SIGNAL,0);

double MACDM_L11 = iCustom(NULL, PERIOD_H1, "MACD", 12,26,9, MODE_MAIN, 1);

double MACDS_L11 = iCustom(NULL, PERIOD_H1, "MACD", 12,26,9, MODE_SIGNAL,1);

如果((MACDM_L11 < MACDS_L11 && MACDM_L10 < MACDS_L10)) { MACD2="IN UPTREND"; colt14=LimeGreen; }

如果((MACDM_L11 > MACDS_L11 && MACDM_L10 > MACDS_L10)) { MACD2="下降趋势"; colt14=红色; }

如果((MACDM_L11 > MACDS_L11 && MACDM_L10 < MACDS_L10)) { MACD2="新上升交叉点"; colt14=石灰绿色; }

如果((MACDM_L11 MACDS_L10)) { MACD2="新的下跌横盘"; colt14=红色; }

如果(MACD1=="新上升交叉点"&&MACD2=="上升中")

Alert(Symbol()," - ", "H1:"," MACD MAIN UPTREND MOVEMENT"," at ", Bid, " - ",TimeToStr(CurTime(),TIME_SECONDS))。

如果(MACD1=="新的下降交叉点"&&MACD2=="下降中")

Alert(Symbol()," - ", "H1:"," MACD主要下跌走势"," at ", Bid, " - ",TimeToStr(CurTime(),TIME_SECONDS));

如果(MACD2=="新上升交叉点"&MACD1=="上升中")

Alert(Symbol()," - ", "H1:"," MACD, MAIN TREND CHANGE TO UPTREND"," at ", Bid, " - ",TimeToStr(CurTime(),TIME_SECONDS) )。

如果(MACD2=="新的下降交叉点"&MACD1=="处于下降趋势")

Alert(Symbol()," - ", "H1:"," MACD, MAIN TREND CHANGE TO DOWNTREND"," at ", Bid, " - ",TimeToStr(CurTime(),TIME_SECONDS))。

返回(0)。

}

 

以什么方式配对?

原因: