问吧! - 页 98 1...919293949596979899100101102103104105...182 新评论 Putz 2008.02.09 20:14 #971 再次提供帮助 大家好。 我一直在研究一个EA,似乎已经很久了。感谢这个主题上所有的人给我的所有帮助。 我现在又陷入了困境,希望得到更多的帮助。我们都知道,大多数从MA到Stoch的交叉型信号效果都不是很好,因为很多时候它是在移动的末端交叉的。 我想做的是,当Stochastic RSI越过50线时,但只有在价格超过高点或低点一定数量(MinPips)的情况下,才能在接下来的交易中使用。我的主要问题是,当我跟踪交叉时,如果价格只在交叉后的后续条上达到MinPips,但交叉保持在同一方向。 我试图附上一张图片,以显示我所要做的事情。 1号点是卖出交叉点,但由于价格从未超过该条的低点,所以没有交易(实际上,我希望任何先前的交易保持活跃)。 2号点位于买入交叉点,但价格只在交叉点后的第4个柱子上超过柱子的高点,应该在那时进行交易。任何之前的卖出订单 都应该在这个时候被关闭。 我希望这有用,因为这是我第一次附上图片。如果我搞砸了,我提前表示歉意。 普茨 附加的文件: cross_example.jpg 167 kb Putz 2008.02.09 20:28 #972 更多信息 以下是我的编程,CurrDir是当前方向,PrevDir是前一个方向,所以如果它不相等,那么就有一个交叉。 问题是,如果它没有在当前条形上交叉,那么CurrDir和PrevDir就会相等,而且它永远不会越过该条形去看它是否达到ValHigh或ValLow。 希望能得到任何帮助。 朴茨 if(CurrDir != PrevDir) { if(CurrDir == 1) { ValHigh = iHigh(Symbol(),Timeframe2,1) + MinPips*Point; if(Bid >= ValHigh) { return(1); //up } return (2); } if(CurrDir == 2) { ValLow = iLow(Symbol(),Timeframe2,1) - MinPips*Point; if(Ask <= ValLow) { return(2);//down } return (1); } Ask! Using Custom Indicator in [警告关闭!]任何新手问题,为了不给论坛添乱。专业人士,不要走过。没有你,哪里都不能去。 Putz 2008.02.10 05:19 #973 想通了......我想 我想我终于找到了我的问题。现在快到凌晨2点半了,我已经很累了,所以我明天再去看看...... 普茨 MFM 2008.02.11 15:01 #974 有没有办法改变MT4导出文件的数据格式? 我正在寻找ASCII.csv,但需要数据为以下格式。 1)独立的栏目(只需要:时间、最高点、最低点和收盘点)。 2)只需要过去1000个柱子的数据 3)颠倒顺序(最后一个在上)。 4)将其保存在我桌面上已有的一个文件夹中(也许可以用浏览功能 来选择哪个文件夹?) 感谢任何能够帮助我的人。 Dave137 2008.02.13 01:45 #975 添加和删除指标 能否在EA中写一段代码来添加或删除交易平台 上的指标? 戴夫 metastock 2008.02.17 13:33 #976 我在订单管理方面遇到了很大的麻烦....。 我的简单的EA在X:59进入......,但我在同一个十字路口有多次进入。我的问题是。是否可以检查 订单的输入时间并与新订单进行比较? 我想在X:59进入,只有一个十字架的订单....。 谁能帮助我? metastock 2008.02.18 18:18 #977 metastock: 我在管理订单方面遇到了很大的麻烦....我的简单EA在X:59进入......,但我在同一个十字路口有多个入口。我的问题是。是否有可能检查订单的进入时间并与新订单进行比较? 我想在X:59进入,只有一个十字架的订单....。 谁能帮助我? 这是我的解决方案,我希望这能帮助别人...... //+------------------------------------------------------------------+ //| 信号开始(进入) | //+------------------------------------------------------------------+ 如果(Buy1_1 58 &&check_buy==0) Order = SIGNAL_BUY; 如果(Sell1_1 > Sell1_2 && Minute()>58 &&check_sell==0)订单=SIGNAL_SELL。 如果(Minute()==00) {check_buy=0;} 如果(Minute()==00) {check_sell=0;} //+------------------------------------------------------------------+ //| 信号结束 | //+------------------------------------------------------------------+ //买入 如果(Order == SIGNAL_BUY && ((EachTickMode && !TickCheck) || (!EachTickMode && (Bars != BarCount))))){ //if(!IsTrade) { //检查自由保证金 如果(AccountFreeMargin() < (1000 * Lots)) { Print("我们没有钱。Free Margin = ", AccountFreeMargin())。 return(0); } if (StopLossMode) StopLossLevel = Ask - StopLoss * Point; else StopLossLevel = 0.0; if (TakeProfitMode) TakeProfitLevel = Ask + TakeProfit * Point; else TakeProfitLevel = 0.0; check_buy=1; Ticket = OrderSend(Symbol(), OP_BUY, Lots, Ask, Slippage, StopLossLevel, TakeProfitLevel, "Buy %W(#" + Magic_Number + ")", Magic_Number, 0, DodgerBlue) 。 如果(Ticket > 0) { 如果(OrderSelect(Ticket, SELECT_BY_TICKET, MODE_TRADES)) { Print("BUY订单打开:", OrderOpenPrice())。 if (SignalMail) SendMail("[信号提示]", "[" + Symbol() + "] " + DoubleToStr(Ask, Digits) + "Open Buy"); } else { Print("打开买入订单出错。", GetLastError())。 } } if (EachTickMode) TickCheck = True; 如果(!EachTickMode) BarCount = Bars; return(0); // } } //卖出 如果(Order == SIGNAL_SELL && ((EachTickMode && !TickCheck) || (!EachTickMode && (Bars != BarCount))))){ //if(!IsTrade) { //检查自由保证金 如果(AccountFreeMargin() < (1000 * Lots)) { Print("我们没有钱。Free Margin = ", AccountFreeMargin())。 return(0); } if (StopLossMode) StopLossLevel = Bid + StopLoss * Point; else StopLossLevel = 0.0; if (TakeProfitMode) TakeProfitLevel = Bid - TakeProfit * Point; else TakeProfitLevel = 0.0。 check_sell=1; Ticket = OrderSend(Symbol(), OP_SELL, Lots, Bid, Slippage, StopLossLevel, TakeProfitLevel, "Sell %W(#" + Magic_Number + ")", Magic_Number, 0, DeepPink) 。 如果(Ticket > 0) { 如果(OrderSelect(Ticket, SELECT_BY_TICKET, MODE_TRADES)) { Print("Sell order opened : " , OrderOpenPrice()); if (SignalMail) SendMail("[Signal Alert]", "[" + Symbol() + "] " + DoubleToStr(Bid, Digits) + " Open Sell"); } else { Print("错误打开卖出订单。", GetLastError())。 } } if (EachTickMode) TickCheck = True; 如果(!EachTickMode) BarCount = Bars; return(0); //} } 如果(!EachTickMode) BarCount = Bars; return(0); } //+------------------------------------------------------------------+ Ask! 如何编码? 买/卖EA和指标 BigBe 2008.02.24 00:18 #978 致Metastock 我不知道是什么原因导致check_buy 为True。 为了限制一个订单的开启,你可以在进入前使用。 如果(OrdersTotal()==0) 大的是 BigBe 2008.02.24 00:19 #979 编码知识问题 什么时候你想使用STATIC变量--它能解决什么问题? 什么时候你想在INIT()部分放点东西--它能解决什么问题? 大的是 longng12 2008.02.24 04:47 #980 不知道以前是否有人问过这个问题,但是否有办法在EA中的当前时间+1小时之前和之后的某个价格处画一条线? 1...919293949596979899100101102103104105...182 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
再次提供帮助
大家好。
我一直在研究一个EA,似乎已经很久了。感谢这个主题上所有的人给我的所有帮助。
我现在又陷入了困境,希望得到更多的帮助。我们都知道,大多数从MA到Stoch的交叉型信号效果都不是很好,因为很多时候它是在移动的末端交叉的。
我想做的是,当Stochastic RSI越过50线时,但只有在价格超过高点或低点一定数量(MinPips)的情况下,才能在接下来的交易中使用。我的主要问题是,当我跟踪交叉时,如果价格只在交叉后的后续条上达到MinPips,但交叉保持在同一方向。
我试图附上一张图片,以显示我所要做的事情。
1号点是卖出交叉点,但由于价格从未超过该条的低点,所以没有交易(实际上,我希望任何先前的交易保持活跃)。
2号点位于买入交叉点,但价格只在交叉点后的第4个柱子上超过柱子的高点,应该在那时进行交易。任何之前的卖出订单 都应该在这个时候被关闭。
我希望这有用,因为这是我第一次附上图片。如果我搞砸了,我提前表示歉意。
普茨
更多信息
以下是我的编程,CurrDir是当前方向,PrevDir是前一个方向,所以如果它不相等,那么就有一个交叉。
问题是,如果它没有在当前条形上交叉,那么CurrDir和PrevDir就会相等,而且它永远不会越过该条形去看它是否达到ValHigh或ValLow。
希望能得到任何帮助。
朴茨
if(CurrDir != PrevDir)
{
if(CurrDir == 1)
{
ValHigh = iHigh(Symbol(),Timeframe2,1) + MinPips*Point;
if(Bid >= ValHigh)
{
return(1); //up
}
return (2);
}
if(CurrDir == 2)
{
ValLow = iLow(Symbol(),Timeframe2,1) - MinPips*Point;
if(Ask <= ValLow)
{
return(2);//down
}
return (1);
}
想通了......我想
我想我终于找到了我的问题。现在快到凌晨2点半了,我已经很累了,所以我明天再去看看......
普茨
有没有办法改变MT4导出文件的数据格式?
我正在寻找ASCII.csv,但需要数据为以下格式。
1)独立的栏目(只需要:时间、最高点、最低点和收盘点)。
2)只需要过去1000个柱子的数据
3)颠倒顺序(最后一个在上)。
4)将其保存在我桌面上已有的一个文件夹中(也许可以用浏览功能 来选择哪个文件夹?)
感谢任何能够帮助我的人。
添加和删除指标
能否在EA中写一段代码来添加或删除交易平台 上的指标?
戴夫
我在订单管理方面遇到了很大的麻烦....。
我的简单的EA在X:59进入......,但我在同一个十字路口有多次进入。我的问题是。是否可以检查 订单的输入时间并与新订单进行比较?
我想在X:59进入,只有一个十字架的订单....。
谁能帮助我?
我在管理订单方面遇到了很大的麻烦....
我的简单EA在X:59进入......,但我在同一个十字路口有多个入口。我的问题是。是否有可能检查订单的进入时间并与新订单进行比较?
我想在X:59进入,只有一个十字架的订单....。
谁能帮助我?这是我的解决方案,我希望这能帮助别人......
//+------------------------------------------------------------------+
//| 信号开始(进入) |
//+------------------------------------------------------------------+
如果(Buy1_1 58 &&check_buy==0) Order = SIGNAL_BUY;
如果(Sell1_1 > Sell1_2 && Minute()>58 &&check_sell==0)订单=SIGNAL_SELL。
如果(Minute()==00) {check_buy=0;}
如果(Minute()==00) {check_sell=0;}
//+------------------------------------------------------------------+
//| 信号结束 |
//+------------------------------------------------------------------+
//买入
如果(Order == SIGNAL_BUY && ((EachTickMode && !TickCheck) || (!EachTickMode && (Bars != BarCount))))){
//if(!IsTrade) {
//检查自由保证金
如果(AccountFreeMargin() < (1000 * Lots)) {
Print("我们没有钱。Free Margin = ", AccountFreeMargin())。
return(0);
}
if (StopLossMode) StopLossLevel = Ask - StopLoss * Point; else StopLossLevel = 0.0;
if (TakeProfitMode) TakeProfitLevel = Ask + TakeProfit * Point; else TakeProfitLevel = 0.0;
check_buy=1;
Ticket = OrderSend(Symbol(), OP_BUY, Lots, Ask, Slippage, StopLossLevel, TakeProfitLevel, "Buy %W(#" + Magic_Number + ")", Magic_Number, 0, DodgerBlue) 。
如果(Ticket > 0) {
如果(OrderSelect(Ticket, SELECT_BY_TICKET, MODE_TRADES)) {
Print("BUY订单打开:", OrderOpenPrice())。
if (SignalMail) SendMail("[信号提示]", "[" + Symbol() + "] " + DoubleToStr(Ask, Digits) + "Open Buy");
} else {
Print("打开买入订单出错。", GetLastError())。
}
}
if (EachTickMode) TickCheck = True;
如果(!EachTickMode) BarCount = Bars;
return(0);
// }
}
//卖出
如果(Order == SIGNAL_SELL && ((EachTickMode && !TickCheck) || (!EachTickMode && (Bars != BarCount))))){
//if(!IsTrade) {
//检查自由保证金
如果(AccountFreeMargin() < (1000 * Lots)) {
Print("我们没有钱。Free Margin = ", AccountFreeMargin())。
return(0);
}
if (StopLossMode) StopLossLevel = Bid + StopLoss * Point; else StopLossLevel = 0.0;
if (TakeProfitMode) TakeProfitLevel = Bid - TakeProfit * Point; else TakeProfitLevel = 0.0。
check_sell=1;
Ticket = OrderSend(Symbol(), OP_SELL, Lots, Bid, Slippage, StopLossLevel, TakeProfitLevel, "Sell %W(#" + Magic_Number + ")", Magic_Number, 0, DeepPink) 。
如果(Ticket > 0) {
如果(OrderSelect(Ticket, SELECT_BY_TICKET, MODE_TRADES)) {
Print("Sell order opened : " , OrderOpenPrice());
if (SignalMail) SendMail("[Signal Alert]", "[" + Symbol() + "] " + DoubleToStr(Bid, Digits) + " Open Sell");
} else {
Print("错误打开卖出订单。", GetLastError())。
}
}
if (EachTickMode) TickCheck = True;
如果(!EachTickMode) BarCount = Bars;
return(0);
//}
}
如果(!EachTickMode) BarCount = Bars;
return(0);
}
//+------------------------------------------------------------------+
致Metastock
我不知道是什么原因导致check_buy 为True。
为了限制一个订单的开启,你可以在进入前使用。
如果(OrdersTotal()==0)
大的是
编码知识问题
什么时候你想使用STATIC变量--它能解决什么问题?
什么时候你想在INIT()部分放点东西--它能解决什么问题?
大的是
不知道以前是否有人问过这个问题,但是否有办法在EA中的当前时间+1小时之前和之后的某个价格处画一条线?