基本问题... - 页 6 1234567891011 新评论 Sanzabri2 2008.06.02 08:11 #51 faifarni 2008.06.03 01:22 #52 MTF RWI触发器? 我如何为这些指标编制一个全绿的买入触发器和全红的卖出触发器? 请帮助... 尼克。 附加的文件: rads_mtfrwi_bar_a.mq4 9 kb rwi.mq4 4 kb Jason 2008.06.07 13:44 #53 每一次打勾都有一次的EA 嘿,伙计们。 我不知道以前是否有人发过这个帖子(我没有耐心去搜索线程,对不起!),但我知道有人经常问这个问题。 这段代码将只在每个tick运行一次。一旦有新的刻度线出现,它就会立即运行,而且只在那时运行,此后不再运行,直到出现另一个刻度线。 请记住,这实际上可能是一个问题,有时。如果你的订单没有通过,无论什么原因,它都不会再次启动。如果你想修改代码来做,请继续。我的建议是这样的。 if order fails, fileseek to front of f, write Open[2] to f 这将使下一个刻度相信它是一个新的刻度。 附加的文件: newtick.mq4 3 kb gcgipson 2008.06.11 10:40 #54 是否有关于编写MQL4的书籍、在线教程或视频? Sergey Golubev 2008.06.11 10:48 #55 https://www.mql5.com/en/forum/178427 https://www.mql5.com/en/forum/178677 https://www.mql5.com/en/forum forexcel 2008.06.11 13:40 #56 大家好。 我需要帮助编码。 以日线图为基础。 a) 假设我的条件在第1天的收盘时得到满足,让我们假设第1天是6月9日。 b) 现在我想在第2天或6月10日收盘时,在高点和低点设置一个买入止损和卖出止损。 c) 最后,我希望交易在第3天被触发。 此外,如果长线交易首先被触发,我希望卖出止损被关闭,反之亦然。 谢谢你的帮助。 问候。 前进中 kawase 2008.06.22 22:38 #57 用于指定一周中的一天和时间的EA 你不知道你选择日期(例如,只有周三 和周四)和指定开放和关闭时间的EA吗? 在许多情况下。 周三和周四的利率上升,因为很多人都要买隔夜利息。 我在这个时候买入并持仓。 而一旦发生隔夜利息,利率就会下降。 我在这个时候卖出并建仓。 我正在寻找用于类似这种交易的EA。 [删除] 2008.06.27 13:51 #58 我需要帮助! 嗨,伙计们。 我需要帮助。我创建了这个EA #define SIGNAL_NONE 0 #define SIGNAL_BUY 1 #define SIGNAL_SELL 2 #define SIGNAL_CLOSEBUY 3 #define SIGNAL_CLOSESELL 4 #property copyright "FxAttack" #property link "http://www.ioinvesto.com" extern int MagicNumber = 0; extern bool SignalMail = False; extern bool EachTickMode = True; extern double Lots = 0.1; extern int Slippage = 3; extern bool UseStopLoss = True; extern int StopLoss = 25; extern bool UseTakeProfit = True; extern int TakeProfit = 25; extern bool UseTrailingStop = False; extern int TrailingStop = 30; extern bool Use.Time.Filter = true; extern string Server.Time.To.Start = "00:00"; extern string Server.Time.To.Stop = "17:00"; extern bool Not.Trade.Fri.Sun = True; int BarCount; int Current; bool TickCheck = False; //+------------------------------------------------------------------+ //| expert initialization function | //+------------------------------------------------------------------+ int init() { BarCount = Bars; if (EachTickMode) Current = 0; else Current = 1; return(0); } //+------------------------------------------------------------------+ //| expert deinitialization function | //+------------------------------------------------------------------+ int deinit() { return(0); } //+------------------------------------------------------------------+ //| expert start function | //+------------------------------------------------------------------+ int start() { int Order = SIGNAL_NONE; int Total, Ticket; double StopLossLevel, TakeProfitLevel; if (EachTickMode && Bars != BarCount) TickCheck = False; Total = OrdersTotal(); Order = SIGNAL_NONE; //+------------------------------------------------------------------+ //| Variable Begin | //+------------------------------------------------------------------+ double OpenPrice = iOpen(NULL, PERIOD_D1, Current + 0); double Buy_Sign = (OpenPrice + (30*Point)); double Sell_Sign = (OpenPrice - (30*Point)); double start_time = StrToTime(TimeToStr(TimeCurrent(), TIME_DATE) + " " + Server.Time.To.Start); double end_time = StrToTime(TimeToStr(TimeCurrent(), TIME_DATE) + " " + Server.Time.To.Stop); Comment("Open Price = ",OpenPrice); //+------------------------------------------------------------------+ //| Variable End | //+------------------------------------------------------------------+ if(Use.Time.Filter && (TimeCurrent() = end_time)) return(0); if(Not.Trade.Fri.Sun && (DayOfWeek()==6 || DayOfWeek()==1 )) return(0); //Check position bool IsTrade = False; for (int i = 0; i < Total; i ++) { OrderSelect(i, SELECT_BY_POS, MODE_TRADES); if(OrderType() <= OP_SELL && OrderSymbol() == Symbol()) { IsTrade = True; if(OrderType() == OP_BUY) { //Close //+------------------------------------------------------------------+ //| Signal Begin(Exit Buy) | //+------------------------------------------------------------------+ //+------------------------------------------------------------------+ //| Signal End(Exit Buy) | //+------------------------------------------------------------------+ if (Order == SIGNAL_CLOSEBUY && ((EachTickMode && !TickCheck) || (!EachTickMode && (Bars != BarCount)))) { OrderClose(OrderTicket(), OrderLots(), Bid, Slippage, MediumSeaGreen); if (SignalMail) SendMail("[Signal Alert]", "[" + Symbol() + "] " + DoubleToStr(Bid, Digits) + " Close Buy"); if (!EachTickMode) BarCount = Bars; IsTrade = False; continue; } //Trailing stop if(UseTrailingStop && TrailingStop > 0) { if(Bid - OrderOpenPrice() > Point * TrailingStop) { if(OrderStopLoss() < Bid - Point * TrailingStop) { OrderModify(OrderTicket(), OrderOpenPrice(), Bid - Point * TrailingStop, OrderTakeProfit(), 0, MediumSeaGreen); if (!EachTickMode) BarCount = Bars; continue; } } } } else { //Close //+------------------------------------------------------------------+ //| Signal Begin(Exit Sell) | //+------------------------------------------------------------------+ //+------------------------------------------------------------------+ //| Signal End(Exit Sell) | //+------------------------------------------------------------------+ if (Order == SIGNAL_CLOSESELL && ((EachTickMode && !TickCheck) || (!EachTickMode && (Bars != BarCount)))) { OrderClose(OrderTicket(), OrderLots(), Ask, Slippage, DarkOrange); if (SignalMail) SendMail("[Signal Alert]", "[" + Symbol() + "] " + DoubleToStr(Ask, Digits) + " Close Sell"); if (!EachTickMode) BarCount = Bars; IsTrade = False; continue; } //Trailing stop if(UseTrailingStop && TrailingStop > 0) { if((OrderOpenPrice() - Ask) > (Point * TrailingStop)) { if((OrderStopLoss() > (Ask + Point * TrailingStop)) || (OrderStopLoss() == 0)) { OrderModify(OrderTicket(), OrderOpenPrice(), Ask + Point * TrailingStop, OrderTakeProfit(), 0, DarkOrange); if (!EachTickMode) BarCount = Bars; continue; } } } } } } //+------------------------------------------------------------------+ //| Signal Begin(Entry) | //+------------------------------------------------------------------+ if (Bid > Buy_Sign) Order = SIGNAL_BUY; if (Ask < Sell_Sign) Order = SIGNAL_SELL; //+------------------------------------------------------------------+ //| Signal End | //+------------------------------------------------------------------+ //Buy if (Order == SIGNAL_BUY && ((EachTickMode && !TickCheck) || (!EachTickMode && (Bars != BarCount)))) { if(!IsTrade) { //Check free margin if (AccountFreeMargin() < (1000 * Lots)) { Print("We have no money. Free Margin = ", AccountFreeMargin()); return(0); } if (UseStopLoss) StopLossLevel = Ask - StopLoss * Point; else StopLossLevel = 0.0; if (UseTakeProfit) TakeProfitLevel = Ask + TakeProfit * Point; else TakeProfitLevel = 0.0; Ticket = OrderSend(Symbol(), OP_BUY, Lots, Ask, Slippage, StopLossLevel, TakeProfitLevel, "MaxPower Buy Order", MagicNumber, 0, DodgerBlue); if(Ticket > 0) { if (OrderSelect(Ticket, SELECT_BY_TICKET, MODE_TRADES)) { Print("BUY order opened : ", OrderOpenPrice()); if (SignalMail) SendMail("[Signal Alert]", "[" + Symbol() + "] " + DoubleToStr(Ask, Digits) + " Open Buy"); } else { Print("Error opening BUY order : ", GetLastError()); } } if (EachTickMode) TickCheck = True; if (!EachTickMode) BarCount = Bars; return(0); } } //Sell if (Order == SIGNAL_SELL && ((EachTickMode && !TickCheck) || (!EachTickMode && (Bars != BarCount)))) { if(!IsTrade) { //Check free margin if (AccountFreeMargin() < (1000 * Lots)) { Print("We have no money. Free Margin = ", AccountFreeMargin()); return(0); } if (UseStopLoss) StopLossLevel = Bid + StopLoss * Point; else StopLossLevel = 0.0; if (UseTakeProfit) TakeProfitLevel = Bid - TakeProfit * Point; else TakeProfitLevel = 0.0; Ticket = OrderSend(Symbol(), OP_SELL, Lots, Bid, Slippage, StopLossLevel, TakeProfitLevel, "MaxPower Sell Order", MagicNumber, 0, DeepPink); if(Ticket > 0) { if (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("Error opening SELL order : ", GetLastError()); } } if (EachTickMode) TickCheck = True; if (!EachTickMode) BarCount = Bars; return(0); } } if (!EachTickMode) BarCount = Bars; return(0); } //+------------------------------------------------------------------+[/PHP] ......but I don't understand how to put the code below inner it. [PHP]... for (int i=0; i<OrdersTotal(); i++) { if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) { if (OrderSymbol()==Symbol() ) return(0); .... 我写的最后一个代码块是:"如果一个SYMBOL上的一个订单已经被打开,不要在该SYMBOL上打开新的订单"。 谁能帮助我整合它? 谢谢。 Mauro 问吧! 如何编码? ICustom函数 scottymoll 2008.07.21 06:38 #59 EA只做一个交易... 嘿,伙计们,我有一个简单的问题要问你们。我最近创建了一个EA。参数 是正确的,当我把它添加到图表中时,它进行了适当的买入,后来又进行了卖出。但是,在下一次出现买入信号时,它从未进行过交易。似乎该EA只做了第一笔交易,此后就没有了。知道为什么会这样吗?我希望得到任何帮助。谢谢!!!"。 repelsteeltje 2008.07.21 07:07 #60 也许展示EA是个好主意?这样我们就可以看一下代码了? 1234567891011 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
MTF RWI触发器?
我如何为这些指标编制一个全绿的买入触发器和全红的卖出触发器? 请帮助...
尼克。
每一次打勾都有一次的EA
嘿,伙计们。
我不知道以前是否有人发过这个帖子(我没有耐心去搜索线程,对不起!),但我知道有人经常问这个问题。
这段代码将只在每个tick运行一次。一旦有新的刻度线出现,它就会立即运行,而且只在那时运行,此后不再运行,直到出现另一个刻度线。
请记住,这实际上可能是一个问题,有时。如果你的订单没有通过,无论什么原因,它都不会再次启动。如果你想修改代码来做,请继续。我的建议是这样的。
if order fails, fileseek to front of f, write Open[2] to f
这将使下一个刻度相信它是一个新的刻度。
是否有关于编写MQL4的书籍、在线教程或视频?
https://www.mql5.com/en/forum/178427
https://www.mql5.com/en/forum/178677
https://www.mql5.com/en/forum
大家好。
我需要帮助编码。
以日线图为基础。
a) 假设我的条件在第1天的收盘时得到满足,让我们假设第1天是6月9日。
b) 现在我想在第2天或6月10日收盘时,在高点和低点设置一个买入止损和卖出止损。
c) 最后,我希望交易在第3天被触发。
此外,如果长线交易首先被触发,我希望卖出止损被关闭,反之亦然。
谢谢你的帮助。
问候。
前进中
用于指定一周中的一天和时间的EA
你不知道你选择日期(例如,只有周三 和周四)和指定开放和关闭时间的EA吗?
在许多情况下。
周三和周四的利率上升,因为很多人都要买隔夜利息。
我在这个时候买入并持仓。
而一旦发生隔夜利息,利率就会下降。
我在这个时候卖出并建仓。
我正在寻找用于类似这种交易的EA。
我需要帮助!
嗨,伙计们。
我需要帮助。我创建了这个EA
#define SIGNAL_BUY 1
#define SIGNAL_SELL 2
#define SIGNAL_CLOSEBUY 3
#define SIGNAL_CLOSESELL 4
#property copyright "FxAttack"
#property link "http://www.ioinvesto.com"
extern int MagicNumber = 0;
extern bool SignalMail = False;
extern bool EachTickMode = True;
extern double Lots = 0.1;
extern int Slippage = 3;
extern bool UseStopLoss = True;
extern int StopLoss = 25;
extern bool UseTakeProfit = True;
extern int TakeProfit = 25;
extern bool UseTrailingStop = False;
extern int TrailingStop = 30;
extern bool Use.Time.Filter = true;
extern string Server.Time.To.Start = "00:00";
extern string Server.Time.To.Stop = "17:00";
extern bool Not.Trade.Fri.Sun = True;
int BarCount;
int Current;
bool TickCheck = False;
//+------------------------------------------------------------------+
//| expert initialization function |
//+------------------------------------------------------------------+
int init() {
BarCount = Bars;
if (EachTickMode) Current = 0; else Current = 1;
return(0);
}
//+------------------------------------------------------------------+
//| expert deinitialization function |
//+------------------------------------------------------------------+
int deinit() {
return(0);
}
//+------------------------------------------------------------------+
//| expert start function |
//+------------------------------------------------------------------+
int start() {
int Order = SIGNAL_NONE;
int Total, Ticket;
double StopLossLevel, TakeProfitLevel;
if (EachTickMode && Bars != BarCount) TickCheck = False;
Total = OrdersTotal();
Order = SIGNAL_NONE;
//+------------------------------------------------------------------+
//| Variable Begin |
//+------------------------------------------------------------------+
double OpenPrice = iOpen(NULL, PERIOD_D1, Current + 0);
double Buy_Sign = (OpenPrice + (30*Point));
double Sell_Sign = (OpenPrice - (30*Point));
double start_time = StrToTime(TimeToStr(TimeCurrent(), TIME_DATE) + " " + Server.Time.To.Start);
double end_time = StrToTime(TimeToStr(TimeCurrent(), TIME_DATE) + " " + Server.Time.To.Stop);
Comment("Open Price = ",OpenPrice);
//+------------------------------------------------------------------+
//| Variable End |
//+------------------------------------------------------------------+
if(Use.Time.Filter && (TimeCurrent() = end_time)) return(0);
if(Not.Trade.Fri.Sun && (DayOfWeek()==6 || DayOfWeek()==1 )) return(0);
//Check position
bool IsTrade = False;
for (int i = 0; i < Total; i ++) {
OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
if(OrderType() <= OP_SELL && OrderSymbol() == Symbol()) {
IsTrade = True;
if(OrderType() == OP_BUY) {
//Close
//+------------------------------------------------------------------+
//| Signal Begin(Exit Buy) |
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
//| Signal End(Exit Buy) |
//+------------------------------------------------------------------+
if (Order == SIGNAL_CLOSEBUY && ((EachTickMode && !TickCheck) || (!EachTickMode && (Bars != BarCount)))) {
OrderClose(OrderTicket(), OrderLots(), Bid, Slippage, MediumSeaGreen);
if (SignalMail) SendMail("[Signal Alert]", "[" + Symbol() + "] " + DoubleToStr(Bid, Digits) + " Close Buy");
if (!EachTickMode) BarCount = Bars;
IsTrade = False;
continue;
}
//Trailing stop
if(UseTrailingStop && TrailingStop > 0) {
if(Bid - OrderOpenPrice() > Point * TrailingStop) {
if(OrderStopLoss() < Bid - Point * TrailingStop) {
OrderModify(OrderTicket(), OrderOpenPrice(), Bid - Point * TrailingStop, OrderTakeProfit(), 0, MediumSeaGreen);
if (!EachTickMode) BarCount = Bars;
continue;
}
}
}
} else {
//Close
//+------------------------------------------------------------------+
//| Signal Begin(Exit Sell) |
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
//| Signal End(Exit Sell) |
//+------------------------------------------------------------------+
if (Order == SIGNAL_CLOSESELL && ((EachTickMode && !TickCheck) || (!EachTickMode && (Bars != BarCount)))) {
OrderClose(OrderTicket(), OrderLots(), Ask, Slippage, DarkOrange);
if (SignalMail) SendMail("[Signal Alert]", "[" + Symbol() + "] " + DoubleToStr(Ask, Digits) + " Close Sell");
if (!EachTickMode) BarCount = Bars;
IsTrade = False;
continue;
}
//Trailing stop
if(UseTrailingStop && TrailingStop > 0) {
if((OrderOpenPrice() - Ask) > (Point * TrailingStop)) {
if((OrderStopLoss() > (Ask + Point * TrailingStop)) || (OrderStopLoss() == 0)) {
OrderModify(OrderTicket(), OrderOpenPrice(), Ask + Point * TrailingStop, OrderTakeProfit(), 0, DarkOrange);
if (!EachTickMode) BarCount = Bars;
continue;
}
}
}
}
}
}
//+------------------------------------------------------------------+
//| Signal Begin(Entry) |
//+------------------------------------------------------------------+
if (Bid > Buy_Sign) Order = SIGNAL_BUY;
if (Ask < Sell_Sign) Order = SIGNAL_SELL;
//+------------------------------------------------------------------+
//| Signal End |
//+------------------------------------------------------------------+
//Buy
if (Order == SIGNAL_BUY && ((EachTickMode && !TickCheck) || (!EachTickMode && (Bars != BarCount)))) {
if(!IsTrade) {
//Check free margin
if (AccountFreeMargin() < (1000 * Lots)) {
Print("We have no money. Free Margin = ", AccountFreeMargin());
return(0);
}
if (UseStopLoss) StopLossLevel = Ask - StopLoss * Point; else StopLossLevel = 0.0;
if (UseTakeProfit) TakeProfitLevel = Ask + TakeProfit * Point; else TakeProfitLevel = 0.0;
Ticket = OrderSend(Symbol(), OP_BUY, Lots, Ask, Slippage, StopLossLevel, TakeProfitLevel, "MaxPower Buy Order", MagicNumber, 0, DodgerBlue);
if(Ticket > 0) {
if (OrderSelect(Ticket, SELECT_BY_TICKET, MODE_TRADES)) {
Print("BUY order opened : ", OrderOpenPrice());
if (SignalMail) SendMail("[Signal Alert]", "[" + Symbol() + "] " + DoubleToStr(Ask, Digits) + " Open Buy");
} else {
Print("Error opening BUY order : ", GetLastError());
}
}
if (EachTickMode) TickCheck = True;
if (!EachTickMode) BarCount = Bars;
return(0);
}
}
//Sell
if (Order == SIGNAL_SELL && ((EachTickMode && !TickCheck) || (!EachTickMode && (Bars != BarCount)))) {
if(!IsTrade) {
//Check free margin
if (AccountFreeMargin() < (1000 * Lots)) {
Print("We have no money. Free Margin = ", AccountFreeMargin());
return(0);
}
if (UseStopLoss) StopLossLevel = Bid + StopLoss * Point; else StopLossLevel = 0.0;
if (UseTakeProfit) TakeProfitLevel = Bid - TakeProfit * Point; else TakeProfitLevel = 0.0;
Ticket = OrderSend(Symbol(), OP_SELL, Lots, Bid, Slippage, StopLossLevel, TakeProfitLevel, "MaxPower Sell Order", MagicNumber, 0, DeepPink);
if(Ticket > 0) {
if (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("Error opening SELL order : ", GetLastError());
}
}
if (EachTickMode) TickCheck = True;
if (!EachTickMode) BarCount = Bars;
return(0);
}
}
if (!EachTickMode) BarCount = Bars;
return(0);
}
//+------------------------------------------------------------------+[/PHP]
......but I don't understand how to put the code below inner it.
[PHP]...
for (int i=0; i<OrdersTotal(); i++) {
if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
if (OrderSymbol()==Symbol() )
return(0);
....我写的最后一个代码块是:"如果一个SYMBOL上的一个订单已经被打开,不要在该SYMBOL上打开新的订单"。
谁能帮助我整合它?
谢谢。
Mauro
EA只做一个交易...
嘿,伙计们,我有一个简单的问题要问你们。我最近创建了一个EA。参数 是正确的,当我把它添加到图表中时,它进行了适当的买入,后来又进行了卖出。但是,在下一次出现买入信号时,它从未进行过交易。似乎该EA只做了第一笔交易,此后就没有了。知道为什么会这样吗?我希望得到任何帮助。谢谢!!!"。
也许展示EA是个好主意?这样我们就可以看一下代码了?