如何编码? - 页 237 1...230231232233234235236237238239240241242243244...347 新评论 Guyver 2010.06.19 14:56 #2361 请记住,你可能还需要持续存储差价......这取决于你所编写的EA的类型。 xx3xxx 2010.06.19 15:21 #2362 它是HIGH [0] -- 当前酒吧,刚刚开始 对于低点,我不知道,也许是低点[1]。 mal99 2010.06.20 14:05 #2363 把OrderSend(),OrderModify()放在正确的顺序上 一天前,我在论坛上看到关于OrderSend()和OrderModify()函数 的话题。 这个话题给了我一个线索,为什么有的EA能工作,有的却不能,我想知道如何检查函数OrderSend()和OrderModify()是否写得正确,有没有例子? DooMGuarD 2010.06.21 12:17 #2364 大家好... 请告诉我如何在MT4中获得所有货币对列表的代码? 谢谢 查尔斯 wolfe 2010.06.22 03:59 #2365 sunshineh: 你好。我知道写Ask[1]是不对的,但我怎样才能从最后一个tick中获得Ask-Price呢? 谢谢你 你必须实时保存这些点数,然后从你的EA或指标中获取它们。 如果你有兴趣,我可以试着为你编写一个例子。 Guyver 2010.06.22 13:16 #2366 DooMGuarD: 大家好...请告诉我如何在MT4中获得所有货币对列表的代码? 谢谢 查尔斯 慢慢来吧,我相信在Mql5中更容易做到,所以只需等待事情的解决。 [删除] 2010.06.23 09:28 #2367 在一个变量中获得神奇的趋势值... 嗨!! 我正在开发一个EA,我想知道如何在一个变量中获得神奇的趋势指标值。显然,没有神奇趋势的本地函数,就像iMA对移动平均线和so....。 目前看来,我必须从头开始编码。但我没有找到任何关于数学的信息!谁能帮帮我? 谁能帮帮我? 非常感谢!!!。 Guyver 2010.06.23 13:14 #2368 atch3000: 你好!! 我正在开发一个EA,我想知道如何在一个变量中获得神奇的趋势指标值。显然,神奇的趋势没有本地函数,就像iMA对移动平均线和so....。 目前看来,我必须从头开始编码。但我没有找到任何关于数学的信息!谁能帮帮我? 谁能帮帮我? 非常感谢!!!。 寻找如何在MQL4中使用ICustom 函数的信息。有了这个函数,您可以在您的EA中调用外部指标。 -guyver kuchara23 2010.06.24 17:11 #2369 机器人 - 关于2个移动平均线MA快速和缓慢的自动化EA #define SIGNAL_NONE 0 #define SIGNAL_BUY 1 #define SIGNAL_SELL 2 #define SIGNAL_CLOSEBUY 3 #define SIGNAL_CLOSESELL 4 外置 int MagicNumber = 0; extern bool SignalMail = False; extern bool EachTickMode = True; 外置双数 Lots = 0.2; extern int Slippage = 3; 外部 bool UseStopLoss = True; 外置 int StopLoss = 15; 外部 bool UseTakeProfit = True; 外置 int TakeProfit = 30; 外部 bool UseTrailingStop = True; 外置 int TrailingStop = 20; int BarCount; int Current; bool TickCheck = False; //+------------------------------------------------------------------+ //| 专家初始化函数 | //+------------------------------------------------------------------+ int init() { BarCount = Bars; 如果(EachTickMode)Current = 0;否则Current = 1。 return(0); } //+------------------------------------------------------------------+ //| 专家去初始化功能| //+------------------------------------------------------------------+ int deinit() { return(0); } //+------------------------------------------------------------------+ //| 专家启动功能| //+------------------------------------------------------------------+ int start() { int Order = SIGNAL_NONE; int Total, Ticket; double StopLossLevel, TakeProfitLevel; 如果(EachTickMode && Bars != BarCount) TickCheck = False; Total = OrdersTotal(); 订单 = SIGNAL_NONE; //+------------------------------------------------------------------+ //| 变量开始 | //+------------------------------------------------------------------+ double Var1 = iMA("EURUSD", PERIOD_M5, 14, 0, MODE_SMA, PRICE_MEDIAN, Current + 1); double Var2 = iMA("EURUSD", PERIOD_M5, 7, 0, MODE_SMA, PRICE_MEDIAN, Current + 1); double Buy1_1 = iMA("EURUSD", PERIOD_M5, 14, 0, MODE_SMA, PRICE_MEDIAN, Current + 1); double Buy1_2 = iMA("EURUSD", PERIOD_M5, 7, 0, MODE_SMA, PRICE_MEDIAN, Current + 1); double Sell1_1 = iMA("EURUSD", PERIOD_M5, 7, 0, MODE_SMA, PRICE_MEDIAN, Current + 1); double Sell1_2 = iMA("EURUSD", PERIOD_M5, 14, 0, MODE_SMA, PRICE_MEDIAN, Current + 1); double CloseBuy1_1 = iMA("EURUSD", PERIOD_M5, 14, 0, MODE_SMA, PRICE_MEDIAN, Current + 1); double CloseBuy1_2 = iMA("EURUSD", PERIOD_M5, 7, 0, MODE_SMA, PRICE_MEDIAN, Current + 1); double CloseSell1_1 = iMA("EURUSD", PERIOD_M5, 7, 0, MODE_SMA, PRICE_MEDIAN, Current + 1); double CloseSell1_2 = iMA("GBPUSD", PERIOD_M5, 14, 0, MODE_SMA, PRICE_MEDIAN, Current + 1); //+------------------------------------------------------------------+ //|变量结束 | //+------------------------------------------------------------------+ //检查位置 bool IsTrade = False; for (int i = 0; i < Total; i ++) { OrderSelect(i, SELECT_BY_POS, MODE_TRADES)。 如果(OrderType() <= OP_SELL && OrderSymbol() == Symbol() ) { IsTrade = True。 如果(OrderType() == OP_BUY){ //关闭 //+------------------------------------------------------------------+ //| 信号开始(退出买入)| //+------------------------------------------------------------------+ if (CloseBuy1_1 > CloseBuy1_2 && False) Order = SIGNAL_CLOSEBUY; //+------------------------------------------------------------------+ //| 信号结束(退出买入) | //+------------------------------------------------------------------+ 如果(Order == SIGNAL_CLOSEBUY && ((EachTickMode && !TickCheck) || (! EachTickMode && (Bars != BarCount))))){ OrderClose(OrderTicket(), OrderLots(), Bid, Slippage, MediumSeaGreen)。 if (SignalMail) SendMail("[信号提示]", "[" + Symbol() + "] " + DoubleToStr(Bid, Digits) + " Close Buy"); if (!EachTickMode) BarCount = Bars; IsTrade = False。 继续。 } //拖曳止损 if(UseTrailingStop && TrailingStop > 0) { if(Bid - OrderOpenPrice() > Point * TrailingStop) { 如果(OrderStopLoss() < Bid - Point * TrailingStop) { OrderModify(OrderTicket(), OrderOpenPrice(), Bid - Point * TrailingStop, OrderTakeProfit(), 0, MediumSeaGreen) 。 if (!EachTickMode) BarCount = Bars; 继续。 } } } } else { //关闭 //+------------------------------------------------------------------+ //| 信号开始(退出卖出)| //+------------------------------------------------------------------+ 如果(CloseSell1_1 > CloseSell1_2False) Order = SIGNAL_CLOSESELL; //+------------------------------------------------------------------+ //| 信号结束(退出卖出) | //+------------------------------------------------------------------+ 如果(Order == SIGNAL_CLOSESELL && ((EachTickMode && !TickCheck) || (! EachTickMode && (Bars != BarCount))))){ OrderClose(OrderTicket(), OrderLots(), Ask, Slippage, DarkOrange)。 如果(SignalMail) SendMail("[信号警报]", "[" + Symbol() + "] " + DoubleToStr(Ask, Digits) + " Close Sell"); if (!EachTickMode) BarCount = Bars; IsTrade = False。 继续。 } //拖曳止损 if(UseTrailingStop && TrailingStop > 0) { if((OrderOpenPrice() - Ask) > (Point * TrailingStop)) { 如果((OrderStopLoss() > (Ask + Point * TrailingStop))|| (OrderStopLoss() == 0)) { OrderModify(OrderTicket(), OrderOpenPrice(), Ask + Point * TrailingStop, OrderTakeProfit(), 0, DarkOrange) 。 if (!EachTickMode) BarCount = Bars; 继续。 } } } } } } //+------------------------------------------------------------------+ //| Signal Begin(Entry) | //+------------------------------------------------------------------+ 如果(Buy1_1 < Buy1_2 && False) Order = SIGNAL_BUY; 如果(Sell1_1 < Sell1_2 && False) 订单 = SIGNAL_SELL; //+------------------------------------------------------------------+ //| 信号结束 | //+------------------------------------------------------------------+ //买入 如果(Order == SIGNAL_BUY && ((EachTickMode && !TickCheck) || (!EachTickMode && (Bars != BarCount))))){ if(!IsTrade) { //检查自由保证金 如果(AccountFreeMargin() < (1000 * Lots)) { Print("我们没有钱。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, "Buy(#" + MagicNumber + ")", MagicNumber, 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 (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, "Sell(#" + MagicNumber + ")", MagicNumber, 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); } //+------------------------------------------------------------------+ //哪里有错误,因为我不知道,请帮助我。 问吧! How to code? ICustom函数 Guyver 2010.06.24 17:27 #2370 你得到什么错误? 1...230231232233234235236237238239240241242243244...347 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
请记住,你可能还需要持续存储差价......这取决于你所编写的EA的类型。
它是HIGH [0] -- 当前酒吧,刚刚开始
对于低点,我不知道,也许是低点[1]。
把OrderSend(),OrderModify()放在正确的顺序上
一天前,我在论坛上看到关于OrderSend()和OrderModify()函数 的话题。
这个话题给了我一个线索,为什么有的EA能工作,有的却不能,我想知道如何检查函数OrderSend()和OrderModify()是否写得正确,有没有例子?
大家好...
请告诉我如何在MT4中获得所有货币对列表的代码?
谢谢
查尔斯
你好。
我知道写Ask[1]是不对的,但我怎样才能从最后一个tick中获得Ask-Price呢?
谢谢你你必须实时保存这些点数,然后从你的EA或指标中获取它们。 如果你有兴趣,我可以试着为你编写一个例子。
大家好...
请告诉我如何在MT4中获得所有货币对列表的代码?
谢谢
查尔斯慢慢来吧,我相信在Mql5中更容易做到,所以只需等待事情的解决。
在一个变量中获得神奇的趋势值...
嗨!!
我正在开发一个EA,我想知道如何在一个变量中获得神奇的趋势指标值。显然,没有神奇趋势的本地函数,就像iMA对移动平均线和so....。
目前看来,我必须从头开始编码。但我没有找到任何关于数学的信息!谁能帮帮我?
谁能帮帮我?
非常感谢!!!。
你好!!
我正在开发一个EA,我想知道如何在一个变量中获得神奇的趋势指标值。显然,神奇的趋势没有本地函数,就像iMA对移动平均线和so....。
目前看来,我必须从头开始编码。但我没有找到任何关于数学的信息!谁能帮帮我?
谁能帮帮我?
非常感谢!!!。寻找如何在MQL4中使用ICustom 函数的信息。有了这个函数,您可以在您的EA中调用外部指标。
-guyver
机器人 - 关于2个移动平均线MA快速和缓慢的自动化EA
#define SIGNAL_NONE 0
#define SIGNAL_BUY 1
#define SIGNAL_SELL 2
#define SIGNAL_CLOSEBUY 3
#define SIGNAL_CLOSESELL 4
外置 int MagicNumber = 0;
extern bool SignalMail = False;
extern bool EachTickMode = True;
外置双数 Lots = 0.2;
extern int Slippage = 3;
外部 bool UseStopLoss = True;
外置 int StopLoss = 15;
外部 bool UseTakeProfit = True;
外置 int TakeProfit = 30;
外部 bool UseTrailingStop = True;
外置 int TrailingStop = 20;
int BarCount;
int Current;
bool TickCheck = False;
//+------------------------------------------------------------------+
//| 专家初始化函数 |
//+------------------------------------------------------------------+
int init() {
BarCount = Bars;
如果(EachTickMode)Current = 0;否则Current = 1。
return(0);
}
//+------------------------------------------------------------------+
//| 专家去初始化功能|
//+------------------------------------------------------------------+
int deinit() {
return(0);
}
//+------------------------------------------------------------------+
//| 专家启动功能|
//+------------------------------------------------------------------+
int start() {
int Order = SIGNAL_NONE;
int Total, Ticket;
double StopLossLevel, TakeProfitLevel;
如果(EachTickMode && Bars != BarCount) TickCheck = False;
Total = OrdersTotal();
订单 = SIGNAL_NONE;
//+------------------------------------------------------------------+
//| 变量开始 |
//+------------------------------------------------------------------+
double Var1 = iMA("EURUSD", PERIOD_M5, 14, 0, MODE_SMA, PRICE_MEDIAN, Current + 1);
double Var2 = iMA("EURUSD", PERIOD_M5, 7, 0, MODE_SMA, PRICE_MEDIAN, Current + 1);
double Buy1_1 = iMA("EURUSD", PERIOD_M5, 14, 0, MODE_SMA, PRICE_MEDIAN, Current + 1);
double Buy1_2 = iMA("EURUSD", PERIOD_M5, 7, 0, MODE_SMA, PRICE_MEDIAN, Current + 1);
double Sell1_1 = iMA("EURUSD", PERIOD_M5, 7, 0, MODE_SMA, PRICE_MEDIAN, Current + 1);
double Sell1_2 = iMA("EURUSD", PERIOD_M5, 14, 0, MODE_SMA, PRICE_MEDIAN, Current + 1);
double CloseBuy1_1 = iMA("EURUSD", PERIOD_M5, 14, 0, MODE_SMA, PRICE_MEDIAN, Current + 1);
double CloseBuy1_2 = iMA("EURUSD", PERIOD_M5, 7, 0, MODE_SMA, PRICE_MEDIAN, Current + 1);
double CloseSell1_1 = iMA("EURUSD", PERIOD_M5, 7, 0, MODE_SMA, PRICE_MEDIAN, Current + 1);
double CloseSell1_2 = iMA("GBPUSD", PERIOD_M5, 14, 0, MODE_SMA, PRICE_MEDIAN, Current + 1);
//+------------------------------------------------------------------+
//|变量结束 |
//+------------------------------------------------------------------+
//检查位置
bool IsTrade = False;
for (int i = 0; i < Total; i ++) {
OrderSelect(i, SELECT_BY_POS, MODE_TRADES)。
如果(OrderType() <= OP_SELL && OrderSymbol() == Symbol() ) {
IsTrade = True。
如果(OrderType() == OP_BUY){
//关闭
//+------------------------------------------------------------------+
//| 信号开始(退出买入)|
//+------------------------------------------------------------------+
if (CloseBuy1_1 > CloseBuy1_2 && False) Order = SIGNAL_CLOSEBUY;
//+------------------------------------------------------------------+
//| 信号结束(退出买入) |
//+------------------------------------------------------------------+
如果(Order == SIGNAL_CLOSEBUY && ((EachTickMode && !TickCheck) || (! EachTickMode && (Bars != BarCount))))){
OrderClose(OrderTicket(), OrderLots(), Bid, Slippage, MediumSeaGreen)。
if (SignalMail) SendMail("[信号提示]", "[" + Symbol() + "] " + DoubleToStr(Bid, Digits) + " Close Buy");
if (!EachTickMode) BarCount = Bars;
IsTrade = False。
继续。
}
//拖曳止损
if(UseTrailingStop && TrailingStop > 0) {
if(Bid - OrderOpenPrice() > Point * TrailingStop) {
如果(OrderStopLoss() < Bid - Point * TrailingStop) {
OrderModify(OrderTicket(), OrderOpenPrice(), Bid - Point * TrailingStop, OrderTakeProfit(), 0, MediumSeaGreen) 。
if (!EachTickMode) BarCount = Bars;
继续。
}
}
}
} else {
//关闭
//+------------------------------------------------------------------+
//| 信号开始(退出卖出)|
//+------------------------------------------------------------------+
如果(CloseSell1_1 > CloseSell1_2False) Order = SIGNAL_CLOSESELL;
//+------------------------------------------------------------------+
//| 信号结束(退出卖出) |
//+------------------------------------------------------------------+
如果(Order == SIGNAL_CLOSESELL && ((EachTickMode && !TickCheck) || (! EachTickMode && (Bars != BarCount))))){
OrderClose(OrderTicket(), OrderLots(), Ask, Slippage, DarkOrange)。
如果(SignalMail) SendMail("[信号警报]", "[" + Symbol() + "] " + DoubleToStr(Ask, Digits) + " Close Sell");
if (!EachTickMode) BarCount = Bars;
IsTrade = False。
继续。
}
//拖曳止损
if(UseTrailingStop && TrailingStop > 0) {
if((OrderOpenPrice() - Ask) > (Point * TrailingStop)) {
如果((OrderStopLoss() > (Ask + Point * TrailingStop))|| (OrderStopLoss() == 0)) {
OrderModify(OrderTicket(), OrderOpenPrice(), Ask + Point * TrailingStop, OrderTakeProfit(), 0, DarkOrange) 。
if (!EachTickMode) BarCount = Bars;
继续。
}
}
}
}
}
}
//+------------------------------------------------------------------+
//| Signal Begin(Entry) |
//+------------------------------------------------------------------+
如果(Buy1_1 < Buy1_2 && False) Order = SIGNAL_BUY;
如果(Sell1_1 < Sell1_2 && False) 订单 = SIGNAL_SELL;
//+------------------------------------------------------------------+
//| 信号结束 |
//+------------------------------------------------------------------+
//买入
如果(Order == SIGNAL_BUY && ((EachTickMode && !TickCheck) || (!EachTickMode && (Bars != BarCount))))){
if(!IsTrade) {
//检查自由保证金
如果(AccountFreeMargin() < (1000 * Lots)) {
Print("我们没有钱。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, "Buy(#" + MagicNumber + ")", MagicNumber, 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 (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, "Sell(#" + MagicNumber + ")", MagicNumber, 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);
}
//+------------------------------------------------------------------+
//哪里有错误,因为我不知道,请帮助我。
你得到什么错误?