新人对MQL4和MQL5的任何问题,对算法和代码的帮助和讨论 - 页 349 1...342343344345346347348349350351352353354355356...1953 新评论 Nauris Zukas 2017.10.25 08:37 #3481 是否可以通过iCustom向指标传递动态输入参数?当我试图这样做时,每一个新的动态输入参数都会打开一个新的指标窗口。 if(NewBarCur())BulsPeriod++; double sep_window=iCustom(Symbol(),PERIOD_CURRENT,"Bulls",BulsPeriod,0,0); Nauris Zukas 2017.10.25 09:33 #3482 还有这个问题,有没有办法知道,比如说,测试图上还剩下1个柱子或3分钟? vkravtzov 2017.10.26 13:24 #3483 Artyom Trishkin:在这个主题中,我想开始帮助那些真正想了解和学习新的MQL4的编程,并想轻松切换到MQL5的人--这些语言非常相似。这将是一个讨论任务、解决任务的算法以及与MT编程相关的任何其他问题的好地方,不管是哪种方式。我希望我们论坛的其他有经验的成员会加入我们,这个主题会让大家感兴趣。阿尔乔姆-特里什金。在这个分支中,我想开始帮助那些真正想了解和学习新的MQL4的编程,并想轻松切换到MQL5的人--这些语言非常相似。这将是一个讨论问题、算法和有关MT编程的任何其他问题的好地方。我希望我们论坛的其他有经验的成员能和我们一起解决这些问题,这个话题会引起大家的兴趣。阿尔乔姆-特里什金。在这个分支中,我想开始帮助那些真正想了解和学习新的MQL4的编程,并想轻松切换到MQL5的人--这些语言非常相似。这将是一个讨论问题、算法和有关MT编程的任何其他问题的好地方。我希望我们论坛的其他有经验的成员能加入我们,这个话题会让大家感兴趣。阿尔乔姆-特里什金。在这个分支中,我想开始帮助那些真正想了解和学习新的MQL4的编程,并想轻松切换到MQL5的人--这些语言非常相似。这将是一个讨论问题、算法和有关MT编程的任何其他问题的好地方。我希望我们论坛的其他有经验的成员能加入我们,这个话题会让大家感兴趣。阿尔乔姆-特里什金。在这个分支中,我想开始帮助那些真正想了解和学习新的MQL4的编程,并想轻松切换到MQL5的人--这些语言非常相似。这将是一个讨论任务、其解决方案的算法和任何其他与MT编程有关的问题的好地方,不管是哪种方式。我希望我们论坛的其他有经验的成员能加入我们,这个话题会让大家感兴趣。荩忱阿尔乔姆-特里什金。我想从这一章开始,帮助那些真正想了解和学习新的MQL4的编程,并想轻松切换到MQL5的人--这些语言非常相似。这是一个讨论任务、解决任务的算法以及任何其他与MT编程有关的问题的地方。我希望我们论坛的其他有经验的成员能和我们一起解决这些问题,这个话题会引起大家的兴趣。 帮助我,我在我的EA中添加了追踪止损功能,我测试了一下,它给了我两个错误。- 我不知道如何修复它们。然而交易在价格分别触及通道的上限和下限后,根据旧的策略被关闭。我想这里也必须要改变一些东西。- 回电给dnr军队的人。#property copyright "Copyright 2017, MetaQuotes Software Corp.#属性链接 "https://www.mql5.com"#财产版本 "1.00"#属性严格//---------------------------------------------------------外来的双倍Lots = 0.01。外置 int TakeProfit = 600;外来的int StopLoss = 25;外来的int Magic = 0001;外置 int Slippage = 3;extern int TralType = 0; // 0-SAR, 1-ATR, 2-HMA.外部双SAR_Step = 0.02。外置双SAR_Max = 0.2。外置 int ATR_Period = 14;外置双倍ATR_K = 2.0。外来的HMA_Period = 16。外部实习生HMA_Method = 3;外部inttern HMA_Shift = 0;datetime LBT;//---------------------------------------------------------extern string TMA = "TMA指标参数"。外部字符串 TimeFrame = "当前时间框架"。外置 int HalfLength = 56;外部int Price = "PRICE_CLOSE;外置双倍ATRMultiplier = 2.0。外部的ATRPeriod = 100。外部 bool Interpolate = true。//---------------------------------------------------------双重PriceHigh, PriceLow, SL, TP。int票。//+------------------------------------------------------------------+//|专家初始化功能|//+------------------------------------------------------------------+int OnInit(){如果(Digits == 3 || Digits == 5){TakeProfit *= 10。StopLoss *= 10;滑移*=10。}return(INIT_SUCCEEDED)。}//+------------------------------------------------------------------+//|专家去初始化函数|//+------------------------------------------------------------------+空白的OnDeinit(const int reason)。{}//+------------------------------------------------------------------+//|专家勾选功能|//+------------------------------------------------------------------+空白的OnTick(){PriceHigh = iCustom(NULL, 0, "TMA_Fair", TimeFrame, HalfLength, Price, ATRMultiplier, ATRPeriod, Interpolate, 1, 0);PriceLow = iCustom(NULL, 0, "TMA_Fair", TimeFrame, HalfLength, Price, ATRMultiplier, ATRPeriod, Interpolate, 2, 0);如果(CountSell() == 0 && Bid >= PriceHigh){ticket = OrderSend(Symbol(), OP_SELL, Lots, Bid, Slippage, 0, 0, "TMA robot", Magic, 0, Red);如果 (ticket > 0){SL = NormalizeDouble(Bid + StopLoss*Point, Digits)。TP = NormalizeDouble(Bid - TakeProfit*Point, Digits)。如果(OrderSelect(ticket, SELECT_BY_TICKET))如果(!OrderModify(ticket, OrderOpenPrice(), SL, TP, 0))Print(" 订单修改错误!")}}如果(CountBuy() == 0 && Ask <= PriceLow){ticket = OrderSend(Symbol(), OP_BUY, Lots, Ask, Slippage, 0, 0, "TMA robot", Magic, 0, Blue);如果 (ticket > 0){TP = NormalizeDouble(Ask + TakeProfit*Point, Digits)。SL = NormalizeDouble(Ask - StopLoss*Point, Digits);如果(OrderSelect(ticket, SELECT_BY_TICKET))if(!OrderModify(ticket, OrderOpenPrice(), SL, TP, 0))Print("修改买入订单错误!")} else Print("打开买入订单出错")。}//+------------------------------------------------------------------+//|专家初始化功能|//+------------------------------------------------------------------+int init(){//--------//--------返回(0)。}//+------------------------------------------------------------------+//|专家勾选功能|//+------------------------------------------------------------------+空白的OnTick(){PriceHigh = iCustom(NULL, 0, "TMA_Fair", TimeFrame, HalfLength, Price, ATRMultiplier, ATRPeriod, Interpolate, 1, 0);PriceLow = iCustom(NULL, 0, "TMA_Fair", TimeFrame, HalfLength, Price, ATRMultiplier, ATRPeriod, Interpolate, 2, 0);如果(CountSell() == 0 && Bid >= PriceHigh){ticket = OrderSend(Symbol(), OP_SELL, Lots, Bid, Slippage, 0, 0, "TMA robot", Magic, 0, Red);如果 (ticket > 0){SL = NormalizeDouble(Bid + StopLoss*Point, Digits)。TP = NormalizeDouble(Bid - TakeProfit*Point, Digits)。如果(OrderSelect(ticket, SELECT_BY_TICKET))如果(!OrderModify(ticket, OrderOpenPrice(), SL, TP, 0))Print("修改卖出订单错误!")} else Print("打开卖出订单出错!")}如果(CountBuy() == 0 && Ask <= PriceLow){ticket = OrderSend(Symbol(), OP_BUY, Lots, Ask, Slippage, 0, 0, "TMA robot", Magic, 0, Blue);如果 (ticket > 0){TP = NormalizeDouble(Ask + TakeProfit*Point, Digits)。SL = NormalizeDouble(Ask - StopLoss*Point, Digits);如果(OrderSelect(ticket, SELECT_BY_TICKET))if(!OrderModify(ticket, OrderOpenPrice(), SL, TP, 0))Print("修改买入订单错误!")} else Print("打开买入订单出错")。}如果(Ask <= PriceLow && CountSell() > 0){for (int i = OrdersTotal() -1; i>0; i--){如果(OrderSelect(i, SELECT_BY_POS, MODE_TRADES)){如果(OrderMagicNumber() == Magic && OrderType() == OP_SELL)如果(!OrderClose(OrderTicket(), OrderLots(), Ask, Slippage, Black))Print("OrderClose卖单错误!")}}}如果(Bid >= PriceHigh && CountBuy() > 0){for (int i = OrdersTotal() -1; i>0; i--){如果(OrderSelect(i, SELECT_BY_POS, MODE_TRADES)){如果(OrderMagicNumber() == Magic && OrderType() == OP_BUY)if(!OrderClose(OrderTicket(), OrderLots(), Bid, Slippage, Black))Print("OrderClose Buy error!)}}}}//+------------------------------------------------------------------+int CountSell(){int count = 0。for (int trade = OrdersTotal()-1; trade>=0; trade--){如果(OrderSelect(trade, SELECT_BY_POS, MODE_TRADES)){如果(OrderSymbol() == Symbol() && OrderMagicNumber() == Magic && OrderType() == OP_SELL)count++。}}return(count)。}//+------------------------------------------------------------------+int CountBuy(){int count = 0。for (int trade = OrdersTotal()-1; trade>=0; trade--){如果(OrderSelect(trade, SELECT_BY_POS, MODE_TRADES)){如果(OrderSymbol() == Symbol() && OrderMagicNumber() == Magic && OrderType() == OP_BUY)count++。}}return(count)。}//+------------------------------------------------------------------+//|专家去初始化函数|//+------------------------------------------------------------------+int deinit(){//+-------//+-------返回 (0)}//+------------------------------------------------------------------+//|专家启动功能|//+------------------------------------------------------------------+int Start(){//-----bool error = fals;如果(LBT!=Time[0]) {如果(OrdersTotal()!=0) {for (int i=0; i<OrdersTotal(); i++){如果(OrderSelect(i,SELECT_BY_POS)&&OrderSymbol()==Symbol()&&OrderType()<2){double SL = OrderStopLoss();如果OrderType()==0) {switch (TralType) {case 0: SL = iSAR(NULL,0,SAR_Step,SAR_Max,0);突破。case 1: SL = High[1] - iATR(NULL,0,ATR,Period,1)*ATR_K;突破。case 2: SL = iCustom(NULL,0, "VininI_HMAsound&",HMA_Period,HMA_Method,3,HMA_Shift,fals,fals," ,1,0,0)。突破。}如果(SL<OrderStopLoss())SL = OrderStopLoss()。}如果(OrderType()==1) {switch (TralType) {case 0: SL = iSAR(NULL,0,SAR_Step,SAR_Max,0);突破。case 1: SL = Low[1] + iATR(NULL,0,ATR,Period,1)*ATR_K;突破。case 2: SL = iCustom(NULL,0, "VininI_HMAsound&",HMA_Period,HMA_Method,3,HMA_Shift,fals,fals," ,1,0,0)。突破。}如果(SL>OrderStopLoss())SL = OrderStopLoss()。}如果(SL!=OrderStopLoss()){if(!OrderModify(OrderTicket(),OrderOpenPrice(),SL,OrderTakeProfit(),0))error = true。}}}}if (!error)LBT = Time[0]。}返回(0)。}//+------------------------------------------------------------------+ 我将写一个免费的mql4顾问 任何菜鸟问题,为了不给论坛添乱。专业人士,不要路过。没有你就无处可去 - 6. I will write a Alexey Viktorov 2017.10.26 15:13 #3484 vkravtzov:学习如何插入代码!!!学习插入代码!!!学习如何插入代码!!!学习如何插入代码!!!学习如何插入代码!!!学习如何插入代码!!!学习如何插入代码!!!学习如何插入代码!!!学习如何插入代码!!!学习插入代码!!! Konstantin Erin 2017.10.26 17:36 #3485 vkravtzov: 请帮助我理解,我在专家顾问中添加了追踪止损功能,我测试了一下,它给了我两个错误。- 我已经破解了我的大脑,我无法想出如何修复它们。然而交易在价格分别触及通道的上限和下限后,根据旧的策略被关闭。我想这里也必须要改变一些东西。- 回电给dnr军队中的人。决定提供帮助。但我有问题要问作者--你有这两个初始化函数--它们是做什么的?//+------------------------------------------------------------------+ //| Expert initialization function | //+------------------------------------------------------------------+ int OnInit() { if (Digits == 3 || Digits == 5) { TakeProfit *= 10; StopLoss *= 10; Slippage *= 10; } return(INIT_SUCCEEDED); } //+------------------------------------------------------------------+ //| Expert initialization function | //+------------------------------------------------------------------+ int init() { //-------- //-------- return (0); }有两个OnTick()函数.... 和第三个函数int Start() - 所有这些都是随着tick的到来而执行。终端将以何种顺序启动它们?错误:OnTick()函数 的结尾处缺少一个大括号。//+------------------------------------------------------------------+ //| Expert tick function | //+------------------------------------------------------------------+ void OnTick() { PriceHigh = iCustom(NULL, 0, "TMA_Fair", TimeFrame, HalfLength, Price, ATRMultiplier, ATRPeriod, Interpolate, 1, 0); PriceLow = iCustom(NULL, 0, "TMA_Fair", TimeFrame, HalfLength, Price, ATRMultiplier, ATRPeriod, Interpolate, 2, 0); if(CountSell() == 0 && Bid >= PriceHigh) { ticket = OrderSend(Symbol(), OP_SELL, Lots, Bid, Slippage, 0, 0, "TMA robot", Magic, 0, Red); if (ticket > 0) { SL = NormalizeDouble(Bid + StopLoss*Point, Digits); TP = NormalizeDouble(Bid - TakeProfit*Point, Digits); if (OrderSelect(ticket, SELECT_BY_TICKET)) if (!OrderModify(ticket, OrderOpenPrice(), SL, TP, 0)) Print("Ошибка модификации ордера на продажу!"); } } if (CountBuy() == 0 && Ask <= PriceLow) { ticket = OrderSend(Symbol(), OP_BUY, Lots, Ask, Slippage, 0, 0, "TMA robot", Magic, 0, Blue); if (ticket > 0) { TP = NormalizeDouble(Ask + TakeProfit*Point, Digits); SL = NormalizeDouble(Ask - StopLoss*Point, Digits); if (OrderSelect(ticket, SELECT_BY_TICKET)) if(!OrderModify(ticket, OrderOpenPrice(), SL, TP, 0)) Print("Ошибка модификации ордера на покупку!"); } else Print("Ошибка открытия ордера на покупку"); } } // Эту скобку добавил !!!!!!!!!!!!!!!!!!!!!!!!!现在,编译器已经检测到8个错误。我删除了.//+------------------------------------------------------------------+ //| Expert initialization function | //+------------------------------------------------------------------+ int init() { //-------- //-------- return (0); } //+------------------------------------------------------------------+ //| Expert deinitialization function | //+------------------------------------------------------------------+ int deinit() { //+------- //+------- return (0); } 现在有7个错误。我在if(OrderType()==0)后面用括号代替了if(OrderType()==0)--出现了8个错误iATR(NULL,0,ATR,Period,1) - 我们需要iATR(NULL,0,ATR_Period,1) - 发生2个错误。bool error = fals; 我们需要 bool error = false; - 错误变成了 3我们在哪里可以得到VininI_HMAsound&指标? 有哪些参数? =错误仍然会是1而你为什么要在三个地方问一个问题呢? vovik36 Степанов 2017.10.26 19:22 #3486 帮助下载和安装mt4上的免费EA和信号,而不是像neemogu那样找到下载的视频,只有如何安装,但没有下载。告诉我去哪里找 Vitaly Muzichenko 2017.10.26 20:04 #3487 vovik36 Степанов:帮助下载和安装mt4上的免费EA和信号,而不是像neemogu那样找到下载的视频,只有如何安装,但没有下载。请告诉我去哪里找。先毕业,再来。 Rustam Bikbulatov 2017.10.26 21:51 #3488 Artyom Trishkin:那又如何呢? for(i=pos; i<rates_total && !IsStopped(); i++) { double dmin=1000000.0; double dmax=-1000000.0; for(k=i-InpKPeriod+1; k<=i; k++) {double ima=iMA(Symbol(),1,60,0,1,0,k); if(dmin>ima) dmin=ima; if(dmax<ima) dmax=ima; Comment(ima); } ExtLowesBuffer[i]=dmin; ExtHighesBuffer[i]=dmax; } 你好。你能告诉我为什么它看不到ima=iMA(Symbol(),1,60,0,1,0,k)。评论中显示的报价比这一行本身高得多。这是最小和最大值不能正确计算的原因。 Maxim Kuznetsov 2017.10.26 21:58 #3489 Rustam Bikbulatov: 你好。你能告诉我为什么它没有看到ima=iMA(NULL,60,24,0,1,0,k)。评论中显示的报价比这一行本身高得多。这就是最小值和最大值不能正确计算的原因。 iMA的编号与时间序列一样,0是最相关的数字。在你的案例中,情况可能正好相反 Rustam Bikbulatov 2017.10.26 22:00 #3490 Maxim Kuznetsov: iMA的编号与时间序列一样,0是最相关的数字。而你的情况可能恰恰相反。这是个无意的赌注。这并没有改变什么。非常重要的一点是,它显示的是不正确的k! 1...342343344345346347348349350351352353354355356...1953 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
是否可以通过iCustom向指标传递动态输入参数?当我试图这样做时,每一个新的动态输入参数都会打开一个新的指标窗口。
在这个主题中,我想开始帮助那些真正想了解和学习新的MQL4的编程,并想轻松切换到MQL5的人--这些语言非常相似。
这将是一个讨论任务、解决任务的算法以及与MT编程相关的任何其他问题的好地方,不管是哪种方式。
我希望我们论坛的其他有经验的成员会加入我们,这个主题会让大家感兴趣。
在这个分支中,我想开始帮助那些真正想了解和学习新的MQL4的编程,并想轻松切换到MQL5的人--这些语言非常相似。
这将是一个讨论问题、算法和有关MT编程的任何其他问题的好地方。
我希望我们论坛的其他有经验的成员能和我们一起解决这些问题,这个话题会引起大家的兴趣。
在这个分支中,我想开始帮助那些真正想了解和学习新的MQL4的编程,并想轻松切换到MQL5的人--这些语言非常相似。
这将是一个讨论问题、算法和有关MT编程的任何其他问题的好地方。
我希望我们论坛的其他有经验的成员能加入我们,这个话题会让大家感兴趣。
在这个分支中,我想开始帮助那些真正想了解和学习新的MQL4的编程,并想轻松切换到MQL5的人--这些语言非常相似。
这将是一个讨论问题、算法和有关MT编程的任何其他问题的好地方。
我希望我们论坛的其他有经验的成员能加入我们,这个话题会让大家感兴趣。
在这个分支中,我想开始帮助那些真正想了解和学习新的MQL4的编程,并想轻松切换到MQL5的人--这些语言非常相似。
这将是一个讨论任务、其解决方案的算法和任何其他与MT编程有关的问题的好地方,不管是哪种方式。
我希望我们论坛的其他有经验的成员能加入我们,这个话题会让大家感兴趣。
荩忱
我想从这一章开始,帮助那些真正想了解和学习新的MQL4的编程,并想轻松切换到MQL5的人--这些语言非常相似。
这是一个讨论任务、解决任务的算法以及任何其他与MT编程有关的问题的地方。
我希望我们论坛的其他有经验的成员能和我们一起解决这些问题,这个话题会引起大家的兴趣。
帮助我,我在我的EA中添加了追踪止损功能,我测试了一下,它给了我两个错误。- 我不知道如何修复它们。然而交易在价格分别触及通道的上限和下限后,根据旧的策略被关闭。我想这里也必须要改变一些东西。- 回电给dnr军队的人。
#property copyright "Copyright 2017, MetaQuotes Software Corp.
#属性链接 "https://www.mql5.com"
#财产版本 "1.00"
#属性严格
//---------------------------------------------------------
外来的双倍Lots = 0.01。
外置 int TakeProfit = 600;
外来的int StopLoss = 25;
外来的int Magic = 0001;
外置 int Slippage = 3;
extern int TralType = 0; // 0-SAR, 1-ATR, 2-HMA.
外部双SAR_Step = 0.02。
外置双SAR_Max = 0.2。
外置 int ATR_Period = 14;
外置双倍ATR_K = 2.0。
外来的HMA_Period = 16。
外部实习生HMA_Method = 3;
外部inttern HMA_Shift = 0;
datetime LBT;
//---------------------------------------------------------
extern string TMA = "TMA指标参数"。
外部字符串 TimeFrame = "当前时间框架"。
外置 int HalfLength = 56;
外部int Price = "PRICE_CLOSE;
外置双倍ATRMultiplier = 2.0。
外部的ATRPeriod = 100。
外部 bool Interpolate = true。
//---------------------------------------------------------
双重PriceHigh, PriceLow, SL, TP。
int票。
//+------------------------------------------------------------------+
//|专家初始化功能|
//+------------------------------------------------------------------+
int OnInit()
{
如果(Digits == 3 || Digits == 5)
{
TakeProfit *= 10。
StopLoss *= 10;
滑移*=10。
}
return(INIT_SUCCEEDED)。
}
//+------------------------------------------------------------------+
//|专家去初始化函数|
//+------------------------------------------------------------------+
空白的OnDeinit(const int reason)。
{
}
//+------------------------------------------------------------------+
//|专家勾选功能|
//+------------------------------------------------------------------+
空白的OnTick()
{
PriceHigh = iCustom(NULL, 0, "TMA_Fair", TimeFrame, HalfLength, Price, ATRMultiplier, ATRPeriod, Interpolate, 1, 0);
PriceLow = iCustom(NULL, 0, "TMA_Fair", TimeFrame, HalfLength, Price, ATRMultiplier, ATRPeriod, Interpolate, 2, 0);
如果(CountSell() == 0 && Bid >= PriceHigh)
{
ticket = OrderSend(Symbol(), OP_SELL, Lots, Bid, Slippage, 0, 0, "TMA robot", Magic, 0, Red);
如果 (ticket > 0)
{
SL = NormalizeDouble(Bid + StopLoss*Point, Digits)。
TP = NormalizeDouble(Bid - TakeProfit*Point, Digits)。
如果(OrderSelect(ticket, SELECT_BY_TICKET))
如果(!OrderModify(ticket, OrderOpenPrice(), SL, TP, 0))
Print(" 订单修改错误!")
}
}
如果(CountBuy() == 0 && Ask <= PriceLow)
{
ticket = OrderSend(Symbol(), OP_BUY, Lots, Ask, Slippage, 0, 0, "TMA robot", Magic, 0, Blue);
如果 (ticket > 0)
{
TP = NormalizeDouble(Ask + TakeProfit*Point, Digits)。
SL = NormalizeDouble(Ask - StopLoss*Point, Digits);
如果(OrderSelect(ticket, SELECT_BY_TICKET))
if(!OrderModify(ticket, OrderOpenPrice(), SL, TP, 0))
Print("修改买入订单错误!")
} else Print("打开买入订单出错")。
}
//+------------------------------------------------------------------+
//|专家初始化功能|
//+------------------------------------------------------------------+
int init()
{
//--------
//--------
返回(0)。
}
//+------------------------------------------------------------------+
//|专家勾选功能|
//+------------------------------------------------------------------+
空白的OnTick()
{
PriceHigh = iCustom(NULL, 0, "TMA_Fair", TimeFrame, HalfLength, Price, ATRMultiplier, ATRPeriod, Interpolate, 1, 0);
PriceLow = iCustom(NULL, 0, "TMA_Fair", TimeFrame, HalfLength, Price, ATRMultiplier, ATRPeriod, Interpolate, 2, 0);
如果(CountSell() == 0 && Bid >= PriceHigh)
{
ticket = OrderSend(Symbol(), OP_SELL, Lots, Bid, Slippage, 0, 0, "TMA robot", Magic, 0, Red);
如果 (ticket > 0)
{
SL = NormalizeDouble(Bid + StopLoss*Point, Digits)。
TP = NormalizeDouble(Bid - TakeProfit*Point, Digits)。
如果(OrderSelect(ticket, SELECT_BY_TICKET))
如果(!OrderModify(ticket, OrderOpenPrice(), SL, TP, 0))
Print("修改卖出订单错误!")
} else Print("打开卖出订单出错!")
}
如果(CountBuy() == 0 && Ask <= PriceLow)
{
ticket = OrderSend(Symbol(), OP_BUY, Lots, Ask, Slippage, 0, 0, "TMA robot", Magic, 0, Blue);
如果 (ticket > 0)
{
TP = NormalizeDouble(Ask + TakeProfit*Point, Digits)。
SL = NormalizeDouble(Ask - StopLoss*Point, Digits);
如果(OrderSelect(ticket, SELECT_BY_TICKET))
if(!OrderModify(ticket, OrderOpenPrice(), SL, TP, 0))
Print("修改买入订单错误!")
} else Print("打开买入订单出错")。
}
如果(Ask <= PriceLow && CountSell() > 0)
{
for (int i = OrdersTotal() -1; i>0; i--)
{
如果(OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
{
如果(OrderMagicNumber() == Magic && OrderType() == OP_SELL)
如果(!OrderClose(OrderTicket(), OrderLots(), Ask, Slippage, Black))
Print("OrderClose卖单错误!")
}
}
}
如果(Bid >= PriceHigh && CountBuy() > 0)
{
for (int i = OrdersTotal() -1; i>0; i--)
{
如果(OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
{
如果(OrderMagicNumber() == Magic && OrderType() == OP_BUY)
if(!OrderClose(OrderTicket(), OrderLots(), Bid, Slippage, Black))
Print("OrderClose Buy error!)
}
}
}
}
//+------------------------------------------------------------------+
int CountSell()
{
int count = 0。
for (int trade = OrdersTotal()-1; trade>=0; trade--)
{
如果(OrderSelect(trade, SELECT_BY_POS, MODE_TRADES))
{
如果(OrderSymbol() == Symbol() && OrderMagicNumber() == Magic && OrderType() == OP_SELL)
count++。
}
}
return(count)。
}//+------------------------------------------------------------------+
int CountBuy()
{
int count = 0。
for (int trade = OrdersTotal()-1; trade>=0; trade--)
{
如果(OrderSelect(trade, SELECT_BY_POS, MODE_TRADES))
{
如果(OrderSymbol() == Symbol() && OrderMagicNumber() == Magic && OrderType() == OP_BUY)
count++。
}
}
return(count)。
}
//+------------------------------------------------------------------+
//|专家去初始化函数|
//+------------------------------------------------------------------+
int deinit()
{
//+-------
//+-------
返回 (0)
}
//+------------------------------------------------------------------+
//|专家启动功能|
//+------------------------------------------------------------------+
int Start()
{
//-----
bool error = fals;
如果(LBT!=Time[0]) {
如果(OrdersTotal()!=0) {
for (int i=0; i<OrdersTotal(); i++){
如果(OrderSelect(i,SELECT_BY_POS)&&OrderSymbol()==Symbol()&&OrderType()<2){
double SL = OrderStopLoss();
如果OrderType()==0) {
switch (TralType) {
case 0: SL = iSAR(NULL,0,SAR_Step,SAR_Max,0);
突破。
case 1: SL = High[1] - iATR(NULL,0,ATR,Period,1)*ATR_K;
突破。
case 2: SL = iCustom(NULL,0, "VininI_HMAsound&",HMA_Period,HMA_Method,3,HMA_Shift,fals,fals," ,1,0,0)。
突破。
}
如果(SL<OrderStopLoss())
SL = OrderStopLoss()。
}
如果(OrderType()==1) {
switch (TralType) {
case 0: SL = iSAR(NULL,0,SAR_Step,SAR_Max,0);
突破。
case 1: SL = Low[1] + iATR(NULL,0,ATR,Period,1)*ATR_K;
突破。
case 2: SL = iCustom(NULL,0, "VininI_HMAsound&",HMA_Period,HMA_Method,3,HMA_Shift,fals,fals," ,1,0,0)。
突破。
}
如果(SL>OrderStopLoss())
SL = OrderStopLoss()。
}
如果(SL!=OrderStopLoss()){
if(!OrderModify(OrderTicket(),OrderOpenPrice(),SL,OrderTakeProfit(),0))
error = true。
}
}
}
}
if (!error)
LBT = Time[0]。
}
返回(0)。
}
//+------------------------------------------------------------------+
学习如何插入代码!!!
学习插入代码!!!
学习如何插入代码!!!
学习如何插入代码!!!
学习如何插入代码!!!
学习如何插入代码!!!
学习如何插入代码!!!
学习如何插入代码!!!
学习如何插入代码!!!
学习插入代码!!!
决定提供帮助。但我有问题要问作者--你有这两个初始化函数--它们是做什么的?
有两个OnTick()函数.... 和第三个函数int Start() - 所有这些都是随着tick的到来而执行。终端将以何种顺序启动它们?
错误:OnTick()函数 的结尾处缺少一个大括号。
现在,编译器已经检测到8个错误。我删除了.
现在有7个错误。
我在if(OrderType()==0)后面用括号代替了if(OrderType()==0)--出现了8个错误
iATR(NULL,0,ATR,Period,1) - 我们需要iATR(NULL,0,ATR_Period,1) - 发生2个错误。
bool error = fals; 我们需要 bool error = false; - 错误变成了 3
我们在哪里可以得到VininI_HMAsound&指标? 有哪些参数? =错误仍然会是1
而你为什么要在三个地方问一个问题呢?
帮助下载和安装mt4上的免费EA和信号,而不是像neemogu那样找到下载的视频,只有如何安装,但没有下载。告诉我去哪里找
帮助下载和安装mt4上的免费EA和信号,而不是像neemogu那样找到下载的视频,只有如何安装,但没有下载。请告诉我去哪里找。
先毕业,再来。
那又如何呢?
你好。你能告诉我为什么它看不到ima=iMA(Symbol(),1,60,0,1,0,k)。评论中显示的报价比这一行本身高得多。这是最小和最大值不能正确计算的原因。
你好。你能告诉我为什么它没有看到ima=iMA(NULL,60,24,0,1,0,k)。评论中显示的报价比这一行本身高得多。这就是最小值和最大值不能正确计算的原因。
iMA的编号与时间序列一样,0是最相关的数字。而你的情况可能恰恰相反。
这是个无意的赌注。这并没有改变什么。非常重要的一点是,它显示的是不正确的k!