新人对MQL4和MQL5的任何问题,对算法和代码的帮助和讨论 - 页 1668 1...166116621663166416651666166716681669167016711672167316741675...1953 新评论 SanAlex 2021.10.10 20:59 #16671 artem artem #:SanAlex,是的,看了一下今年目前的测试器,一切正常)结果是好的,在不久的将来,我将尝试在一个真实的账户上运行它。 专家顾问的名称是什么?你是从kodobase下载的吗?我需要看看作者是如何在函数中实现它的 //+------------------------------------------------------------------+ // Permission to trade in this day | //+------------------------------------------------------------------+ bool TradingDay(int hmin, int hmax) // Определение времени и дня разрешения торговли { bool dtrade = false; switch(DayOfWeek()) { case 1: // Monday if(Monday == 1) dtrade = true; break; case 2: // Tuesday if(Tuesday == 1) dtrade = true; break; case 3: // Wednesday if(Wednesday == 1) dtrade = true; break; case 4: // Thursday if(Thursday == 1) dtrade = true; break; case 5: // Friday if(Friday == 1) dtrade = true; break; default: // dtrade = false; break; } if(dtrade && !(Hour() >= hmin && Hour() <= hmax)) dtrade = true; return dtrade; } //+------------------------------------------------------------------+ 我们缺少一些东西--为ontik增加条件 Tretyakov Rostyslav 2021.10.10 21:04 #16672 SanAlex #:专家的名字是什么?你是从kodobase下载的吗?我需要看看作者是如何在函数中实现它的还缺少一些东西--给ontik增加一个条件 萨沙,计时工作还没有包括在内。只是在开发过程中增加了一些功能插件) SanAlex 2021.10.10 21:07 #16673 MakarFX #: 萨沙,计时工作还没有包括在内。只是在开发过程中增加了一些功能插件) 我要用我自己的方式重做它。 SanAlex 2021.10.10 21:57 #16674 artem artem #:SanAlex,是的,看了一下今年目前的测试器,一切正常)结果是好的,在不久的将来,我将尝试在一个真实的账户上运行它。 这个和时间会起作用 - 我改变了功能 //--- input string s0 = "Баланс"; // 1 input string Template = "ADX"; // Имя шаблона(without '.tpl') input double TargetProfit = 1000000; // Баланс + Прибыль(прибавить к балансу) input double TargetLoss = 0; // Баланс - Убыток(отнять от баланса) input string s2 = "Trading options"; // 2 input double Lots = 0.1; // Lots input double MaximumRisk = 0.02; // MaximumRisk input double DecreaseFactor = 3; // DecreaseFactor input double InpSLoss = 4000; // стоплосс input double InpTProfit = 2000; // тейкпрофит input string s3 = "TP SL"; // 3 input double InpTakeProfit = 2000; // Exchange TP input double InpStopLoss = 4000; // Exchange SL input string s4 = "Индикатор MA"; // 4 input int MovingPeriodLw = 13; // MovingPeriodLw input int MovingPeriodS1 = 55; // MovingPeriodS1 input int MovingPeriodS2 = 89; // MovingPeriodS2 input string s5 = "Индикатор MACD"; // 5 input int InpFastEMA = 12; // Fast EMA Period input int InpSlowEMA = 26; // Slow EMA Period input int InpSignalSMA = 9; // Signal SMA Period input string s6 = "Start Stop"; // 6 input datetime HoursFrom = D'1970.01.02'; // 1 Время: старт input datetime HoursTo = D'1970.01.01'; // Время: стоп input datetime HoursFrom2 = D'1970.01.01'; // 2 Время: старт input string s7 = "Time:Start Stop"; // 7 input int HoursFrom1 = 0; // Время: старт input int HoursTo1 = 24; // Время: стоп //+------------------------------------------------------------------+ //+------------------------------------------------------------------+ //| Expert tick function | //+------------------------------------------------------------------+ void OnTick() { //--- Закрыть Общий профит или профит на паре if(ProfitTarget()) { return; } //--- Закрыть профит BUY или SELL на паре ProfitOnTick(); //--- if((HoursFrom<HoursTo && TimeLocal()>=HoursFrom && TimeLocal()<HoursTo) || (HoursFrom>HoursTo && (TimeLocal()<HoursTo || TimeLocal()>=HoursFrom)) || (HoursFrom2<HoursTo2 && TimeLocal()>=HoursFrom2 && TimeLocal()<HoursTo2) || (HoursFrom2>HoursTo2 && (TimeLocal()<HoursTo2 || TimeLocal()>=HoursFrom2))) { MqlDateTime currTime; TimeLocal(currTime); int hour0 = currTime.hour; if((HoursFrom1 < HoursTo1 && hour0 >= HoursFrom1 && hour0 < HoursTo1) || (HoursFrom1 > HoursTo1 && (hour0 < HoursTo1 || hour0 >= HoursFrom1))) { // Определение направления пересечения мувингов if(Init) InitMetod(); // Ожидание нового бара на графике if(timeprev == Time[0]) return; timeprev = Time[0]; // Открытие ордера по методу Пуриа CheckForOpen(); } } } //+------------------------------------------------------------------+ \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ mt4和mt5中的时间函数可以工作 附加的文件: artem_artem_3.mq4 28 kb Nerd Trader 2021.10.10 23:23 #16675 MakarFX #: 你难道不想摆脱阶级吗? 我最近才发现他们。我不知道,这是一个巨大的方便的东西。你有什么建议?把所有的东西都放进函数里?如果这能解决这个问题。 我有两个全局对象(bar, db_last),属于一个Bar类,第一个对象用每个新的bar(图表上的通常bar)的参数初始化,第二个对象保存与所有条件对应的bar。事实上,在另一个订单类的本地对象中,所有的计算都是由参数db_last来开启一个订单。参数db_last和bar在很多地方被使用,但只用于读取,初始化和赋值发生在一个地方,即OnTick()中,所以对象的意外变化不应该被。 void OnTick() { last_time = iTime(NULL, 0, 0); BreakevenActivate(); if(last_time > bar.time_open){ bar.Initialize(); TrawlOnFractals(); if(BarRelativeMA() == "bear"){ n_arrow_down++; db_last = bar; if(db_last.IsBearishDB() == true) OpenOrder("bear"); ArrowCreate(OBJ_ARROW_DOWN,0,"ArrowDown"+IntegerToString(n_arrow_down,4,'0'), 0, iTime(NULL,0,1),AnchorPrise("bear"),ANCHOR_BOTTOM); } if(BarRelativeMA() == "bull"){ n_arrow_up++; db_last = bar; if(db_last.IsBullishDB() == true) OpenOrder("bull"); ArrowCreate(OBJ_ARROW_UP,0,"ArrowUp"+IntegerToString(n_arrow_down++,4,'0'), 0, iTime(NULL,0,1),AnchorPrise("bull"),ANCHOR_TOP); } bar.time_open = last_time; } } Tretyakov Rostyslav 2021.10.11 05:50 #16676 Nerd Trader #:我最近才发现他们。我不知道,这是一个巨大的方便的东西。你有什么建议?把所有的东西都放进函数里?如 果这能解决这个问题。 我有两个全局对象(bar, db_last),属于一个Bar类,第一个对象用每个新的bar(图表上的通常bar)的参数初始化,第二个对象保存与所有条件对应的bar。事实上,在另一个订单类的本地对象中,所有的计算都是由参数db_last来开启一个订单。参数db_last和bar在很多地方被使用,但只用于读取,初始化和赋值发生在一个地方,即OnTick()中,所以对象的意外变化不应该发生。我想试试- 它不需要花钱)。但也有错误,特别是简单归一化的错误 你能在私信中把文件发给我吗?我会看一看的。 Artis98 2021.10.11 06:50 #16677 SanAlex #:专家的名字是什么?你是从kodobase下载的吗?我需要看看作者是如何在函数中实现它的我遗漏了一些东西--在ontik上添加条件 SanAlex,我在这条信息中附上了下载的版本--它有Puria+追踪止损+Breakeven水平+看门狗交易。我会按时间测试交易,只是我还没来得及做) 附加的文件: Metod_Puria_ver_00041_by_Igor_Knyazev.zip 22 kb Artis98 2021.10.11 06:51 #16678 MakarFX #:缺乏历史记录会影响测试开始时的指标读数 MakarFX,我也想到了这一点,所以它应该可以正常工作。 SanAlex 2021.10.11 08:20 #16679 artem artem #:SanAlex,在这个帖子中附上了我下载的版本--它是Puria+追踪止损+盈亏平衡点+时钟交易。我想通过时钟来测试交易,只是我还没来得及做)。 在kodobase中发现了这个https://www.mql5.com/ru/code/12654 - 我错过了你的目标,你想在其中改变什么? Советник по методу Пуриа www.mql5.com Советник открывает позиции по алгоритму метода Пуриа. Artis98 2021.10.11 10:36 #16680 SanAlex #:在kodobase中发现了这个https://www.mql5.com/ru/code/12654- 我错过了你的目标,你想在其中改变什么? 我想做什么补充。 1.为了做到这一点,交易 的开盘和 所有指标条件的检查(跨越一个快速(5)两个慢速(75)(85)和MACD条在同一方向的快速(5)开盘)只在新蜡烛的开盘价 (每个30分钟蜡烛的第一个刻度) 执行。 为指标的 "归零 "创造条件。比如说。 用于快速移动的 (5) 如果它高于慢速--那么它就是一个购买的信号。如果它往下走并触及其中一个,或者在慢速移动的(75)和(85) 之间--那么来自快速移动指标的信号就像它一样" 归零",并且只要它触及或保持在慢速1之间 就会保持在这个" 零 "的位置。如果在那之后, 快线向一边 越过两个慢线(包括如果它回到触及慢线之前的那一边)-- 那么它将是这个指标的一个信号。 使用MACD,情况类似- 只有 MACD=0才会被认为是 "归零"(例如,如果在第一根蜡烛上,MACD以0.0043开盘,而在第二根蜡烛上以-0.0010 开盘,这意味着第二根蜡烛上的 MACD已经" 归零" 并发出了新信号)。然而,有一段时间, 快线(5)和MACD应该有点 "平起平坐" - 如果(5)没有改变它相对于慢线的位置,并且MACD在前一根蜡烛上开在错误的区域(没有进场),而在下一根蜡烛上 - 在与快线相同的区域,那么所有的条件已经趋同,应该对订单进行进场。请注意,所有这些应该只在蜡烛的开盘价上进行--只在这一个刻度上进行。 而最后,要让专家顾问等待4个连续的蜡烛开盘: 1. 第1个开盘价--(5)高于(75)和(85)+MACD柱子开在0以上-- 4个确认中的一个; 2.第2根蜡烛的开盘价--(5)超过(75)和(85)+MACD柱子开在0以上-- 4次确认中的2次是; 3.第3根蜡烛的开盘价--(5)超过(75)和(85)+MACD柱子开在0以上-- 4次确认中的3次是; 4.第4根蜡烛的开盘价--(5)超过(75)和(85)+MACD柱在0以上开盘-- 4个确认中 的4个是-- 在同一根蜡烛(第4根)上开立买入交易。 卖出 订单的 情况也一样,只是在另一个方向的指标应该打开。有一点很重要-- 如果在第1根蜡烛到第4根蜡烛的任何阶段, 指标改变了它们的位置(例如,在第3根开盘的蜡烛上,MACD柱打开时低于0,或者=0)-- 那么一切都会重置,因为在连续第4根蜡烛的开盘时没有检查信号。 1...166116621663166416651666166716681669167016711672167316741675...1953 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
SanAlex,是的,看了一下今年目前的测试器,一切正常)结果是好的,在不久的将来,我将尝试在一个真实的账户上运行它。
专家顾问的名称是什么?你是从kodobase下载的吗?我需要看看作者是如何在函数中实现它的
我们缺少一些东西--为ontik增加条件
专家的名字是什么?你是从kodobase下载的吗?我需要看看作者是如何在函数中实现它的
还缺少一些东西--给ontik增加一个条件
萨沙,计时工作还没有包括在内。只是在开发过程中增加了一些功能插件)
我要用我自己的方式重做它。
SanAlex,是的,看了一下今年目前的测试器,一切正常)结果是好的,在不久的将来,我将尝试在一个真实的账户上运行它。
这个和时间会起作用 - 我改变了功能
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
mt4和mt5中的时间函数可以工作
你难道不想摆脱阶级吗?
我最近才发现他们。我不知道,这是一个巨大的方便的东西。你有什么建议?把所有的东西都放进函数里?如果这能解决这个问题。
我有两个全局对象(bar, db_last),属于一个Bar类,第一个对象用每个新的bar(图表上的通常bar)的参数初始化,第二个对象保存与所有条件对应的bar。事实上,在另一个订单类的本地对象中,所有的计算都是由参数db_last来开启一个订单。参数db_last和bar在很多地方被使用,但只用于读取,初始化和赋值发生在一个地方,即OnTick()中,所以对象的意外变化不应该被。
我最近才发现他们。我不知道,这是一个巨大的方便的东西。你有什么建议?把所有的东西都放进函数里?如 果这能解决这个问题。
我有两个全局对象(bar, db_last),属于一个Bar类,第一个对象用每个新的bar(图表上的通常bar)的参数初始化,第二个对象保存与所有条件对应的bar。事实上,在另一个订单类的本地对象中,所有的计算都是由参数db_last来开启一个订单。参数db_last和bar在很多地方被使用,但只用于读取,初始化和赋值发生在一个地方,即OnTick()中,所以对象的意外变化不应该发生。
我想试试- 它不需要花钱)。
但也有错误,特别是简单归一化的错误
你能在私信中把文件发给我吗?我会看一看的。专家的名字是什么?你是从kodobase下载的吗?我需要看看作者是如何在函数中实现它的
我遗漏了一些东西--在ontik上添加条件
SanAlex,我在这条信息中附上了下载的版本--它有Puria+追踪止损+Breakeven水平+看门狗交易。我会按时间测试交易,只是我还没来得及做)
缺乏历史记录会影响测试开始时的指标读数
MakarFX,我也想到了这一点,所以它应该可以正常工作。
SanAlex,在这个帖子中附上了我下载的版本--它是Puria+追踪止损+盈亏平衡点+时钟交易。我想通过时钟来测试交易,只是我还没来得及做)。
在kodobase中发现了这个https://www.mql5.com/ru/code/12654
- 我错过了你的目标,你想在其中改变什么?
在kodobase中发现了这个https://www.mql5.com/ru/code/12654
- 我错过了你的目标,你想在其中改变什么?
我想做什么补充。
1. 第1个开盘价--(5)高于(75)和(85)+MACD柱子开在0以上-- 4个确认中的一个;
2.第2根蜡烛的开盘价--(5)超过(75)和(85)+MACD柱子开在0以上-- 4次确认中的2次是;
3.第3根蜡烛的开盘价--(5)超过(75)和(85)+MACD柱子开在0以上-- 4次确认中的3次是;
4.第4根蜡烛的开盘价--(5)超过(75)和(85)+MACD柱在0以上开盘-- 4个确认中 的4个是-- 在同一根蜡烛(第4根)上开立买入交易。