如何编码? - 页 334

[Deleted]  

大家好。

我不能在数组上画包络线。

我可以画布林带,没有任何问题。

我想在CCI指标上画包络线。

我已经用附件中的代码画出了布林带,而且成功了。

唯一的问题是在CCI指标上画包络线。

请帮助我。

附加的文件:
cci_env.mq4  3 kb
 
luffy:
你好,伙计们。

我不能在数组上画包络线

我可以毫无问题地画出布林带。

我想在CCI指标上画包络线。

我已经用附件中的代码画出了布林带,它是有效的。

唯一的问题是在CCI指标上画包络线。

请帮助。

吕飞

如果不为每一个你想应用 信封的指标值编码,就无法做到这一点。

 
mladen:
luffy 如果不对每一个你希望应用包络的指标值进行编码,就无法做到这一点。

嗨,Mladen

我很感谢你对我的巨大帮助,因为我无法编程。

我对所附的Macd3 有一个问题,它只在我编辑它并再次关闭它时才刷新。

如果它能在每次关闭时刷新,那将是很大的帮助。我希望你能找到一个解决方案。

顺便说一下,这是一个非常好的指标,可以提前获得转折点。

附加的文件:
macd_3m.ex4  17 kb
macd_3m.mq4  5 kb
 
wolfsch:
嗨,Mladen

我很感谢你对我的巨大帮助,因为我无法编程。

我对所附的Macd3有一个问题,它只在我编辑它并再次关闭它时才刷新。

如果它能在每一栏关闭时刷新,那将是很大的帮助。我希望你能找到一个解决方案。

顺便说一下,这是一个非常好的指标,可以提前获得转折点

wolfsch

在我的终端上工作正常(在1分钟的图表上测试,一切正常 - 我使用的是Build 788)。

 
wolfsch:
嗨,Mladen

我很感谢你对我的巨大帮助,因为我无法编程。

我对所附的Macd3有一个问题,它只在我编辑它并再次关闭它时才刷新。

如果它能在每一栏关闭时刷新,那将是很大的帮助。我希望你能找到一个解决方案。

顺便说一下,这是一个非常好的指标,可以提前获得转折点

对我来说也是如此

 
luffy:
大家好。

我不能在数组上画包络线

我可以毫无问题地画出布林带。

我想在CCI指标上画包络线。

我已经用附件中的代码画出了布林带,它是有效的。

唯一的问题是在CCI指标上画包络线。

请帮助。

吕飞

现在就试试吧:CCI_env_1.mq4

附加的文件:
cci_env_1.mq4  3 kb
cci_env.gif  71 kb
 

我试图将我的EA设置为在一个特定的时间自动关闭所有未平仓的交易,我想知道是否有人能帮助我解决这个问题? 谢谢。

谢谢

阮文杰

 
tkuan77:
你好,我正试图将我的EA设置为在特定时间自动关闭所有未平仓的交易,我想知道是否有人能在这个问题上帮我指点一下? 谢谢。

疑问

阮文杰

瑞安

看看这个:https://www.mql5.com/en/forum/177401/page2

不要担心编译代码时的两个编译器警告--它们是良性的。

 

嗨,mladen,我试着输入了关于根据时间和编译关闭交易的部分,它确实像你提到的那样给了我警告,然而,当我运行代码时,它并没有在我指定的时间关闭交易。

我不太确定这里的错误是什么。希望你能告诉我,我可能在哪里出错了。

问候

阮先生

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

//|外汇TSD - 外汇论坛|外汇TSD

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

#属性版权 "R Creation"

#property link "https://www.forex-tsd.com"

//---- 输入参数

extern double TakeProfit = 200.0;

extern double Lots = 0.1;

extern double StopLoss = 200.0;

外置 int PreferredHour_1st = 5;

外置int PreferredMinute_1st = 30;

int magicNo_1st = 530;

extern bool UseCurrSymbol = False; // 不太确定这是为了什么.....

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

//|专家初始化函数 |

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

int init()

{

//----

//----

return(0);

}

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

//|专家的去初始化功能|

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

int deinit()

{

//----

//----

return(0);

}

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

//|专家启动功能|

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

datetime newbar;

双倍的pBid, pAsk。

int start()

{

如果(newbar==Time[0])返回(0)。

否则newbar=Time[0]。

int ticket, total;

如果(Bars<100)

{

Print("小于100的条数")。

return(0);

}

如果(TakeProfit<10)

{

Print("TakeProfit小于10")。

return(0); // 检查TakeProfit

}

double Fast_MA, Slow_MA;

Fast_MA = iMA(NULL,0,7,0,MODE_EMA,PRICE_CLOSE,0)。

Slow_MA = iMA(NULL,0,30,0,MODE_EMA,PRICE_CLOSE,0)。

total = OrdersTotal(); // 检查当前开放的交易总数

if(total < 1)

{

如果(Hour()==PreferredHour_1st &&Minute()==PreferredMinute_1st &&Seconds()==0 && Fast_MA > Slow_MA)

{

ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,1,Ask-StopLoss*Point, Ask+TakeProfit*Point,

"My EA",magicNo_1st,0,Green)。

如果(ticket>0)

{

如果(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES))Print("BUY order opened : ",OrderOpenPrice());

}

否则 Print("打开BUY订单错误。",GetLastError())。

return(0);

}

如果(Hour()==PreferredHour_1st &&Minute()==PreferredMinute_1st &&Seconds()==0 && Fast_MA < Slow_MA)

{

ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,1,Bid+StopLoss*Point, Bid-TakeProfit*Point,

"My EA",magicNo_1st,0,Red)。

如果(ticket>0)

{

如果(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES))Print("SELL订单打开:",OrderOpenPrice())。

}

否则 Print("打开卖出订单错误。",GetLastError())。

return(0);

}

return(0);

}

if(total > 1) //根据时机关闭订单...尚未解决。

{

if (Hour()==7 && Minute()==0 && Seconds()==0)

{

for (int i=OrdersTotal()-1; i>=0; i--)

{

如果(OrderSelect(i, SELECT_BY_POS, MODE_TRADES))

{

如果(!UseCurrSymbol || OrderSymbol()==Symbol())

{

如果(OrderType()==OP_BUY)

{

pBid=MarketInfo(OrderSymbol(),MODE_BID)。

OrderClose(OrderTicket(),OrderLots(),pBid,1,Blue)。

}

如果(OrderType()==OP_SELL)

{

pAsk=MarketInfo(OrderSymbol(),MODE_ASK)。

OrderClose(OrderTicket(),OrderLots(),pAsk,1,Red)。

}

}

}

}

}

}

return(0);

}

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

 
tkuan77:
你好,我试着输入了关于根据时间关闭交易的部分,并进行了编译,它确实如你所说的那样给了我警告,然而,当我运行代码时,它并没有在我指定的时间关闭交易。

我不太确定这里的错误是什么。希望你能指点我,我可能在哪里出了错。

谢谢

阮先生

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

//|外汇TSD - 外汇论坛|外汇TSD

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

#属性版权 "R Creation"

#property link "https://www.forex-tsd.com"

//---- 输入参数

extern double TakeProfit = 200.0;

extern double Lots = 0.1;

extern double StopLoss = 200.0;

外置 int PreferredHour_1st = 5;

外置int PreferredMinute_1st = 30;

int magicNo_1st = 530;

extern bool UseCurrSymbol = False; // 不太确定这是为了什么.....

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

//|专家初始化函数 |

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

int init()

{

//----

//----

return(0);

}

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

//|专家的去初始化功能|

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

int deinit()

{

//----

//----

return(0);

}

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

//|专家启动功能|

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

datetime newbar;

双倍的pBid, pAsk。

int start()

{

如果(newbar==Time[0])返回(0)。

否则newbar=Time[0]。

int ticket, total;

如果(Bars<100)

{

Print("小于100的条数")。

return(0);

}

如果(TakeProfit<10)

{

Print("TakeProfit小于10")。

return(0); // 检查TakeProfit

}

double Fast_MA, Slow_MA;

Fast_MA = iMA(NULL,0,7,0,MODE_EMA,PRICE_CLOSE,0)。

Slow_MA = iMA(NULL,0,30,0,MODE_EMA,PRICE_CLOSE,0)。

total = OrdersTotal(); // 检查当前开放的交易总数

if(total < 1)

{

如果(Hour()==PreferredHour_1st &&Minute()==PreferredMinute_1st &&Seconds()==0 && Fast_MA > Slow_MA)

{

ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,1,Ask-StopLoss*Point, Ask+TakeProfit*Point,

"My EA",magicNo_1st,0,Green)。

如果(ticket>0)

{

如果(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES))Print("BUY order opened : ",OrderOpenPrice());

}

否则 Print("打开BUY订单错误。",GetLastError())。

return(0);

}

如果(Hour()==PreferredHour_1st &&Minute()==PreferredMinute_1st &&Seconds()==0 && Fast_MA < Slow_MA)

{

ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,1,Bid+StopLoss*Point, Bid-TakeProfit*Point,

"My EA",magicNo_1st,0,Red)。

如果(ticket>0)

{

如果(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES))Print("SELL订单打开:",OrderOpenPrice())。

}

否则 Print("打开卖出订单错误。",GetLastError())。

return(0);

}

return(0);

}

if(total > 1) //根据时机关闭订单...尚未解决。

{

if (Hour()==7 && Minute()==0 && Seconds()==0)

{

for (int i=OrdersTotal()-1; i>=0; i--)

{

如果(OrderSelect(i, SELECT_BY_POS, MODE_TRADES))

{

如果(!UseCurrSymbol || OrderSymbol()==Symbol())

{

如果(OrderType()==OP_BUY)

{

pBid=MarketInfo(OrderSymbol(),MODE_BID)。

OrderClose(OrderTicket(),OrderLots(),pBid,1,Blue)。

}

如果(OrderType()==OP_SELL)

{

pAsk=MarketInfo(OrderSymbol(),MODE_ASK)。

OrderClose(OrderTicket(),OrderLots(),pAsk,1,Red)。

}

}

}

}

}

}

return(0);

}

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

这一部分

如果(newbar==Time[0])返回(0)。

否则newbar=Time[0]。

int ticket, total;

如果(Bars<100)

{

Print("小于100的条数")。

return(0);

}

如果(TakeProfit<10)

{

Print("TakeProfit小于10")。

return(0); // 检查TakeProfit

}

如果不是新条形图的第一个点,并且利润不超过10点,是否会阻止EA在特定时间关闭订单?