如何编码? - 页 167 1...160161162163164165166167168169170171172173174...347 新评论 [删除] 2009.03.23 10:46 #1661 [删除] 2009.03.23 17:33 #1662 仍然试图在这个指标中添加声音警报......谁能帮我检查一下 代码,因为它不工作了? //+------------------------------------------------------------------+ //| //| //+------------------------------------------------------------------+ #property copyright "niva" #property indicator_chart_window #property indicator_buffers 2 #property indicator_color1 White #property indicator_color2 Red extern bool Email_Enabled = false; extern bool Alert_Enabled = true; //---- input parameters int CountBars=10000; //---- buffers double uptrend[]; double downtrend[]; bool AlertSent,EmailSent; //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int init() { //---- indicator line IndicatorBuffers(2); SetIndexStyle(0,DRAW_ARROW); SetIndexArrow(0,217); SetIndexStyle(1,DRAW_ARROW); SetIndexArrow(1,218); SetIndexBuffer(0,val1); SetIndexBuffer(1,val2); //---- return(0); } //+------------------------------------------------------------------+ //| AltrTrend_Signal_v2_2 | //+------------------------------------------------------------------+ int start() { if (CountBars>=Bars) CountBars=Bars; int i,shift,counted_bars=IndicatorCounted(); int uptrend, downtrend; for (shift = CountBars; shift>=0; shift--) { if(High[shift-1]>High[shift]&&Low[shift-1]>Low[shift]&&uptrend!=3){ uptrend = uptrend+1; downtrend=0; }else if(High[shift-1]<High[shift]&&Low[shift-1]<Low[shift]&&downtrend!=3){ downtrend=downtrend+1; uptrend=0; } else{ uptrend=0; downtrend=0; } if (uptrend==3) { val1[shift]=Low[shift]; } if (downtrend==3) { val2[shift]=High[shift]; } } return(0); } //---- if (Alert_Enabled && (uptrend[0] != 0 || uptrend[0] !=0) && !AlertSent) { Alert(Symbol() + "HiLow+3"); AlertSent=true; } if (Email_Enabled && (downtrend[0] != 0 || downtrend[0] !=0) && !EmailSent) { SendMail(Symbol() + "HiLow+3","HiLow+3 indicator triggered"); EmailSent=true; } if(downtrend[0] == 0 && uptrend[0] == 0 ) { EmailSent=false; AlertSent=false; } return(0); } //+------------------------------------------------------------------+ How to code? 信号系统(ASCTrend和其他修改)。 [存档!]任何菜鸟问题,为了不给论坛添乱。专业人士,不要与它擦肩而过。没有你,哪里都不能去 - 2. Guilhermesalgado 2009.03.23 19:15 #1663 谢谢 mrwobbles: 在代码的某处,括号不平衡。听起来像是代码中某个地方少了一个}和一个)。你需要查看并计算有多少个开放和封闭的大括号(+1表示开放,-1表示封闭),这应该能告诉你缺少多少个大括号(比如+2表示有两个右括号'}',反之亦然)。如果他缩进得当,你应该能够找出把正确的}放在哪里。狩猎愉快 我设法改变了一些设置,最后我相信几乎达到了目的!现在,在下面的编码之后,它说。 shortSL' - 未定义的变量 'longSL' - 未定义变量 下面是它的样子。 //+------------------------------------------------------------------+ //|Salgado.mq4 || //|salgadoguilherme@hotmail.com|| //| | //+------------------------------------------------------------------+ #财产版权"" #属性链接 "salgadoguilherme@hotmail.com" 外部 bool trade=true; extern int barstocount=50; extern double lots=0.01; extern int StopLoss =40; extern int TakeProfit =10; extern int slippage=3; 外置 int magicnumber=816; //+------------------------------------------------------------------+ //|专家初始化函数 | //+------------------------------------------------------------------+ int init() { //---- //---- return(0); } //+------------------------------------------------------------------+ //|专家的去初始化功能| //+------------------------------------------------------------------+ int deinit() { //---- //---- return(0); } //+------------------------------------------------------------------+ //|专家启动功能| //+------------------------------------------------------------------+ int start() { //---- 如果(trade==true) { //M15 double M15_resistance=iCustom(NULL,PERIOD_M15,"!LinRegrBuf", "true",barstocount,2,0) 。 double M15_resistance_p=iCustom(NULL,PERIOD_M15,"!LinRegrBuf", "true",barstocount,2,barstocount-1) 。 double M15_line=iCustom(NULL,PERIOD_M15,"!LinRegrBuf", "true",barstocount,0,0) 。 double M15_support=iCustom(NULL,PERIOD_M15,"!LinRegrBuf", "true",Barstocount,1,0); double slopeM15=((M15_resistance-M15_resistance_p)/barstocount)/Point; //Alert(DoubleToStr(slopeM15,2); 评论( "\n", "M15斜率|",slopeM15。 //短信息 如果(slopeM15<0 && IsTradeAllowed()==true) { bool shortopen=false; int ord_cnt1=OrdersTotal(); for (int start1=0;start1<ord_cnt1;start1++) { OrderSelect(start1, SELECT_BY_POS, MODE_TRADES)。 如果(OrderMagicNumber()==magicnumber && OrderType()==OP_SELL) {shortopen=true;} } 如果(shortopen==false) { double M15High=iHigh(Symbol(),PERIOD_M15,0); 如果(M15High>=M15_resistance) int shortticket=OrderSend(Symbol(),OP_SELL,lot,Bid,slipage,Bid+shortSL,M15_line,DoubleToStr(slopeM15,2); 如果(shortticket<0) { //长线进场 如果(slopeM15>0 && IsTradeAllowed()==true) { bool longopen=false; int ord_cnt=OrdersTotal(); for (int start=0;start<ord_cnt;start++) { OrderSelect(start, SELECT_BY_POS, MODE_TRADES)。 如果(OrderMagicNumber()==magicnumber && OrderType()==OP_BUY) {longopen=true;} } 如果(longopen==false) { double M15Low=iLow(Symbol(),PERIOD_M15,0); 如果(M15Low<=M15_support) int longticket=OrderSend(Symbol(),OP_BUY,lot,Ask,slipage,Ask-longSL,M15_line,DoubleToStr(slopeM15,2); 如果(longticket<0) { //---- return(0); } //+------------------------------------------------------------------+ How to code? [存档!]我将免费撰写任何专家或指标。 [警告关闭!]任何新手问题,为了不给论坛添乱。专业人士,不要走过。没有你,哪里都不能去。 Jenom Nyam 2009.03.23 23:48 #1664 蜡烛型印第安人 你好。 我非常需要关于如何编码蜡烛型指标的MQL教程,如附图所示。只要提供本论坛内或外的链接就可以了。非常感谢。 派普。 附加的文件: ma_candles.gif 15 kb darvasboxes 2009.03.24 00:09 #1665 谁能告诉我如何编写以下代码。 计算短期MA与长期MA相交后的条数。 谢谢! JForex78 2009.03.25 17:10 #1666 关机后恢复交易的EA代码。 你好。 是否有任何EA的示例代码,可以在其停止后恢复管理交易,然后再回来? 谢谢。 JForex chazzmoney 2009.03.26 05:17 #1667 如何编码? darvasboxes: 谁能告诉我如何编写下面的代码。计算短期MA与长期MA相交后的条数。 谢谢! 是的! 计算它们相交后的条数。 int i; bool shortGreater = (iMA(NULL,0,8,8,MODE_SMMA,PRICE_MEDIAN,0) > iMA(NULL,0,24,8,MODE_SMMA,PRICE_MEDIAN,0)) 。 bool sgLast; for(i=0;i<iBars(NULL,0);i++) { sgLast = shortGreater; shortGreater = (iMA(NULL,0,8,8,MODE_SMMA,PRICE_MEDIAN,i) > iMA(NULL,0,24,8,MODE_SMMA,PRICE_MEDIAN,i)) 。 if(shortGreater !== sgLast) { break; } } 变量i将包含他们交叉后的条数。 如果你觉得有帮助,请随时给我寄一些现金。 我将不胜感激。 chazzmoney 2009.03.26 05:19 #1668 给你。 Guilhermesalgado: 我设法改变了一些设置,最后我相信几乎达到了目的!现在在下面的编码之后,它说。 shortSL' - 未定义的变量 'longSL' - 未定义的变量 给你。 我把你所做的修改了一下,使之能够编译。 请注意,你的逻辑很糟糕,显得不完整,而且它可能不会做你想要的事情。 但是,你可以这样做。 - ChazzMoney P.S. 170美元对于一个程序来说是非常便宜的。 我每年写一到两次定制的投资软件,价格是五位数。 承担这种工作的程序员应该注意--你需要检查所有的东西,以确保你不会错过任何一个案例。 一个错误和一个随机的交易者一样好。 如果你觉得有帮助,请随时给我寄一些现金。 我很感谢你的想法。 附加的文件: guilhermesalgado.mq4 4 kb Arshed Qureshi 2009.03.26 09:17 #1669 标准ZigZag的代码 你好 这段代码来自标准的 "ZigZag.mq4"。 "if (counted_bars==0 && downloadhistory) // history was downloaded" counted_bars==0 :检查 该值是否等于零........。 downloadhistory:没有条件检查,为什么?请清除这个问题。 谢谢。 SPACECHIMP 2009.03.26 13:33 #1670 持续地开两张订单和关闭两张订单。 我一直在尝试,尝试了很久,让我的EA总是为买入或卖出开两个订单。一个是TP,另一个是NONE。在开了两张订单后,就不再开了,直到向相反方向交易的时候。 出于某种原因,我查看了账户历史,我看到1个订单,然后是3个订单,然后是4个机会,然后是2个订单,它的运行就像垃圾一样。 任何编码大师都可以看一下并给我意见吗? 谢谢你!!!!!!!!!!!!!!!! 开放订单 ------- BuyTicket1 = False; BuyTicket2 = False; while (!BuyTicket1) { BuyTicket1 = OrderSend(Symbol(), OP_BUY, Lots, Ask, Slippage, StopLoss, Ask + TakeProfit * Point, "Buy(#" + MagicNumber + ")", MagicNumber, 0, DodgerBlue) 。 Sleep(PausebetweenOrders*1000);} //if (BuyTicket1 && SignalMail) SendMail("[信号提示]", "[" + Symbol() + "] " + DoubleToStr(Ask, Digits) + " Open 1st Buy"); Sleep(1000); while (!BuyTicket2) { BuyTicket2 = OrderSend(Symbol(), OP_BUY, Lots, Ask, Slippage, StopLoss, 0, "2nd Buy(#" + MagicNumber + ")", MagicNumber, 0, BlueViolet)。 Sleep(PausebetweenOrders*1000);} ------------ 关闭订单 ------------ 如果(OrdersTotal() > 0) { OrderSelect(0, SELECT_BY_POS, MODE_TRADES)。 如果(OrderType() == OP_SELL){ for (int j = OrdertotalCloseSell-1; j >= 0; j --) { PositionClosedSell = False。 AttemptsTriedCloseSell = 0; OrderSelect(j, SELECT_BY_POS, MODE_TRADES)。 while (!PositionClosedSell && AttemptsTriedCloseSell < CloseposnAttempts) { AttemptsTriedCloseSell = AttemptsTriedCloseSell + 1; OrderCloseSell = OrderClose(OrderTicket(), OrderLots(), Ask, Slippage, MediumSeaGreen); Sleep(PausebetweenOrders * 1000); if( OrderCloseSell == True ) { // 平仓成功。 How to code? 战略展望系统 [警告关闭!]任何新手问题,为了不给论坛添乱。专业人士,不要走过。没有你,哪里都不能去。 1...160161162163164165166167168169170171172173174...347 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
仍然试图在这个指标中添加声音警报......谁能帮我检查一下 代码,因为它不工作了?
//|
//|
//+------------------------------------------------------------------+
#property copyright "niva"
#property indicator_chart_window
#property indicator_buffers 2
#property indicator_color1 White
#property indicator_color2 Red
extern bool Email_Enabled = false;
extern bool Alert_Enabled = true;
//---- input parameters
int CountBars=10000;
//---- buffers
double uptrend[];
double downtrend[];
bool AlertSent,EmailSent;
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init()
{
//---- indicator line
IndicatorBuffers(2);
SetIndexStyle(0,DRAW_ARROW);
SetIndexArrow(0,217);
SetIndexStyle(1,DRAW_ARROW);
SetIndexArrow(1,218);
SetIndexBuffer(0,val1);
SetIndexBuffer(1,val2);
//----
return(0);
}
//+------------------------------------------------------------------+
//| AltrTrend_Signal_v2_2 |
//+------------------------------------------------------------------+
int start()
{
if (CountBars>=Bars) CountBars=Bars;
int i,shift,counted_bars=IndicatorCounted();
int uptrend, downtrend;
for (shift = CountBars; shift>=0; shift--)
{
if(High[shift-1]>High[shift]&&Low[shift-1]>Low[shift]&&uptrend!=3){
uptrend = uptrend+1;
downtrend=0;
}else if(High[shift-1]<High[shift]&&Low[shift-1]<Low[shift]&&downtrend!=3){
downtrend=downtrend+1;
uptrend=0;
}
else{
uptrend=0;
downtrend=0;
}
if (uptrend==3)
{
val1[shift]=Low[shift];
}
if (downtrend==3)
{
val2[shift]=High[shift];
}
}
return(0);
}
//----
if (Alert_Enabled && (uptrend[0] != 0 || uptrend[0] !=0) && !AlertSent)
{
Alert(Symbol() + "HiLow+3");
AlertSent=true;
}
if (Email_Enabled && (downtrend[0] != 0 || downtrend[0] !=0) && !EmailSent)
{
SendMail(Symbol() + "HiLow+3","HiLow+3 indicator triggered");
EmailSent=true;
}
if(downtrend[0] == 0 && uptrend[0] == 0 )
{
EmailSent=false;
AlertSent=false;
}
return(0);
}
//+------------------------------------------------------------------+谢谢
在代码的某处,括号不平衡。听起来像是代码中某个地方少了一个}和一个)。你需要查看并计算有多少个开放和封闭的大括号(+1表示开放,-1表示封闭),这应该能告诉你缺少多少个大括号(比如+2表示有两个右括号'}',反之亦然)。如果他缩进得当,你应该能够找出把正确的}放在哪里。狩猎愉快
我设法改变了一些设置,最后我相信几乎达到了目的!现在,在下面的编码之后,它说。
shortSL' - 未定义的变量
'longSL' - 未定义变量
下面是它的样子。
//+------------------------------------------------------------------+
//|Salgado.mq4 ||
//|salgadoguilherme@hotmail.com||
//| |
//+------------------------------------------------------------------+
#财产版权""
#属性链接 "salgadoguilherme@hotmail.com"
外部 bool trade=true;
extern int barstocount=50;
extern double lots=0.01;
extern int StopLoss =40;
extern int TakeProfit =10;
extern int slippage=3;
外置 int magicnumber=816;
//+------------------------------------------------------------------+
//|专家初始化函数 |
//+------------------------------------------------------------------+
int init()
{
//----
//----
return(0);
}
//+------------------------------------------------------------------+
//|专家的去初始化功能|
//+------------------------------------------------------------------+
int deinit()
{
//----
//----
return(0);
}
//+------------------------------------------------------------------+
//|专家启动功能|
//+------------------------------------------------------------------+
int start()
{
//----
如果(trade==true)
{
//M15
double M15_resistance=iCustom(NULL,PERIOD_M15,"!LinRegrBuf", "true",barstocount,2,0) 。
double M15_resistance_p=iCustom(NULL,PERIOD_M15,"!LinRegrBuf", "true",barstocount,2,barstocount-1) 。
double M15_line=iCustom(NULL,PERIOD_M15,"!LinRegrBuf", "true",barstocount,0,0) 。
double M15_support=iCustom(NULL,PERIOD_M15,"!LinRegrBuf", "true",Barstocount,1,0);
double slopeM15=((M15_resistance-M15_resistance_p)/barstocount)/Point;
//Alert(DoubleToStr(slopeM15,2);
评论(
"\n", "M15斜率|",slopeM15。
//短信息
如果(slopeM15<0 && IsTradeAllowed()==true)
{
bool shortopen=false;
int ord_cnt1=OrdersTotal();
for (int start1=0;start1<ord_cnt1;start1++)
{
OrderSelect(start1, SELECT_BY_POS, MODE_TRADES)。
如果(OrderMagicNumber()==magicnumber && OrderType()==OP_SELL)
{shortopen=true;}
}
如果(shortopen==false)
{
double M15High=iHigh(Symbol(),PERIOD_M15,0);
如果(M15High>=M15_resistance)
int shortticket=OrderSend(Symbol(),OP_SELL,lot,Bid,slipage,Bid+shortSL,M15_line,DoubleToStr(slopeM15,2);
如果(shortticket<0)
{
//长线进场
如果(slopeM15>0 && IsTradeAllowed()==true)
{
bool longopen=false;
int ord_cnt=OrdersTotal();
for (int start=0;start<ord_cnt;start++)
{
OrderSelect(start, SELECT_BY_POS, MODE_TRADES)。
如果(OrderMagicNumber()==magicnumber && OrderType()==OP_BUY)
{longopen=true;}
}
如果(longopen==false)
{
double M15Low=iLow(Symbol(),PERIOD_M15,0);
如果(M15Low<=M15_support)
int longticket=OrderSend(Symbol(),OP_BUY,lot,Ask,slipage,Ask-longSL,M15_line,DoubleToStr(slopeM15,2);
如果(longticket<0)
{
//----
return(0);
}
//+------------------------------------------------------------------+
蜡烛型印第安人
你好。
我非常需要关于如何编码蜡烛型指标的MQL教程,如附图所示。只要提供本论坛内或外的链接就可以了。非常感谢。
派普。
谁能告诉我如何编写以下代码。
计算短期MA与长期MA相交后的条数。
谢谢!
关机后恢复交易的EA代码。
你好。
是否有任何EA的示例代码,可以在其停止后恢复管理交易,然后再回来?
谢谢。
JForex
如何编码?
谁能告诉我如何编写下面的代码。
计算短期MA与长期MA相交后的条数。
谢谢!是的!
计算它们相交后的条数。
int i;
bool shortGreater = (iMA(NULL,0,8,8,MODE_SMMA,PRICE_MEDIAN,0) > iMA(NULL,0,24,8,MODE_SMMA,PRICE_MEDIAN,0)) 。
bool sgLast;
for(i=0;i<iBars(NULL,0);i++) {
sgLast = shortGreater;
shortGreater = (iMA(NULL,0,8,8,MODE_SMMA,PRICE_MEDIAN,i) > iMA(NULL,0,24,8,MODE_SMMA,PRICE_MEDIAN,i)) 。
if(shortGreater !== sgLast) {
break;
}
}
变量i将包含他们交叉后的条数。
如果你觉得有帮助,请随时给我寄一些现金。 我将不胜感激。
给你。
我设法改变了一些设置,最后我相信几乎达到了目的!现在在下面的编码之后,它说。
shortSL' - 未定义的变量
'longSL' - 未定义的变量
给你。 我把你所做的修改了一下,使之能够编译。 请注意,你的逻辑很糟糕,显得不完整,而且它可能不会做你想要的事情。
但是,你可以这样做。
- ChazzMoney
P.S. 170美元对于一个程序来说是非常便宜的。 我每年写一到两次定制的投资软件,价格是五位数。 承担这种工作的程序员应该注意--你需要检查所有的东西,以确保你不会错过任何一个案例。 一个错误和一个随机的交易者一样好。
如果你觉得有帮助,请随时给我寄一些现金。 我很感谢你的想法。
标准ZigZag的代码
你好
这段代码来自标准的 "ZigZag.mq4"。
"if (counted_bars==0 && downloadhistory) // history was downloaded"
counted_bars==0 :检查 该值是否等于零........。
downloadhistory:没有条件检查,为什么?请清除这个问题。
谢谢。
持续地开两张订单和关闭两张订单。
我一直在尝试,尝试了很久,让我的EA总是为买入或卖出开两个订单。一个是TP,另一个是NONE。在开了两张订单后,就不再开了,直到向相反方向交易的时候。
出于某种原因,我查看了账户历史,我看到1个订单,然后是3个订单,然后是4个机会,然后是2个订单,它的运行就像垃圾一样。
任何编码大师都可以看一下并给我意见吗?
谢谢你!!!!!!!!!!!!!!!!
开放订单
-------
BuyTicket1 = False;
BuyTicket2 = False;
while (!BuyTicket1) {
BuyTicket1 = OrderSend(Symbol(), OP_BUY, Lots, Ask, Slippage, StopLoss, Ask + TakeProfit * Point, "Buy(#" + MagicNumber + ")", MagicNumber, 0, DodgerBlue) 。
Sleep(PausebetweenOrders*1000);}
//if (BuyTicket1 && SignalMail) SendMail("[信号提示]", "[" + Symbol() + "] " + DoubleToStr(Ask, Digits) + " Open 1st Buy");
Sleep(1000);
while (!BuyTicket2) {
BuyTicket2 = OrderSend(Symbol(), OP_BUY, Lots, Ask, Slippage, StopLoss, 0, "2nd Buy(#" + MagicNumber + ")", MagicNumber, 0, BlueViolet)。
Sleep(PausebetweenOrders*1000);}
------------
关闭订单
------------
如果(OrdersTotal() > 0) {
OrderSelect(0, SELECT_BY_POS, MODE_TRADES)。
如果(OrderType() == OP_SELL){
for (int j = OrdertotalCloseSell-1; j >= 0; j --) {
PositionClosedSell = False。
AttemptsTriedCloseSell = 0;
OrderSelect(j, SELECT_BY_POS, MODE_TRADES)。
while (!PositionClosedSell && AttemptsTriedCloseSell < CloseposnAttempts) {
AttemptsTriedCloseSell = AttemptsTriedCloseSell + 1;
OrderCloseSell = OrderClose(OrderTicket(), OrderLots(), Ask, Slippage, MediumSeaGreen);
Sleep(PausebetweenOrders * 1000);
if( OrderCloseSell == True ) { // 平仓成功。