新人对MQL4和MQL5的任何问题,对算法和代码的帮助和讨论 - 页 316 1...309310311312313314315316317318319320321322323...1953 新评论 Luchezar Shalomaev 2017.09.21 19:10 #3151 Alexey Viktorov:确实不是所有的键盘都有我写的东西......也许你应该改变你的键盘。这里有太多的 "专家 "了 :)所以我想我要取笑你。他们不回答问题,而是开始说教。 Artyom Trishkin 2017.09.21 19:13 #3152 Luchezar Shalomaev: 这里有太多的 "专家 "了 :)所以我决定取笑他们。不回答问题,而是开始讲课。那么就不要指望那些忙于做自己的事情而分心帮助你的人提供正常的答案,如果你把自己放在一个取笑施主的位置上。这不是一个马戏团。 Luchezar Shalomaev 2017.09.21 19:22 #3153 Artyom Trishkin:那么今后就不要指望从那些忙于业务、心不在焉地帮助你的人那里得到正常的回应,如果你把自己放在一个取笑施舍者的位置。这不是一个马戏团。亲爱的主持人,如果这不是一个马戏团,你能不能把回答我问题的小丑们带到后台?谢谢你。 Artyom Trishkin 2017.09.21 19:39 #3154 Luchezar Shalomaev: 亲爱的主持人,如果这不是一个马戏团,你能不能好心地把回答我问题的小丑们带到后台?谢谢你。这就是送你到幕后的方式吗?你。 关于交易、自动交易系统和策略测试的论坛 初学者对MQL4的任何问题,对算法和代码的帮助和讨论 Luchezar Shalomaev, 2017.09.20 22:25 你好。从Ducascopy下载了欧元兑美元的1分钟报价文件,试图导入MT4 Alpari,但没有任何反应。只是一个空白的转换窗口。在Instaforex也一样。会是什么呢?答案是。 关于交易、自动交易系统和策略测试的论坛 初学者对MQL4的任何问题,对算法和代码的帮助和讨论 Vitaly Muzichenko, 2017.09.20 22:32 你要在dukascopy交易吗?不是吗?那么你为什么需要他们的报价呢?你。 关于交易、自动交易系统和测试交易策略的论坛 新手对MQL4的任何问题,对算法和代码的帮助和讨论 Luchezar Shalomaev, 2017.09.20 22:42 我需要Alpari的报价,但我没能从他们那里找到任何报价。答案是。 关于交易、自动交易系统和交易策略测试的论坛 新手对MQL4的任何问题,对算法和代码的帮助和讨论 Vitaly Muzichenko, 2017.09.20 22:45 他们有足够的历史来测试EA你。 关于交易、自动交易系统和交易策略测试的论坛 新手对MQL4的任何问题,对算法和代码的帮助和讨论 Luchezar Shalomaev, 2017.09.20 22:46 我很抱歉,但对于我的任务,我需要的比他们给的更多。响应。 关于交易、自动交易系统和交易策略测试的论坛 对MQL4新手的任何问题,对算法和代码的帮助和讨论 Alexey Viktorov, 2017.09.21 07:47 按F2你。 关于交易、自动交易系统和交易策略测试的论坛 对MQL4新手的任何问题,对算法和代码的帮助和讨论 Luchezar Shalomaev, 2017.09.21 09:06 谢谢你。按F和2。什么都没有发生。你。 关于交易、自动交易系统和交易策略测试的论坛 初学者对MQL4的任何问题,对算法和代码的帮助和讨论 Alekseu Fedotov, 2017.09.21 09:29 F2 关于交易、自动交易系统和交易策略测试的论坛 初学者对MQL4的任何问题,对算法和代码的帮助和讨论 Alexey Viktorov, 2017.09.21 09:34 真的不是所有的键盘都有我写的这些东西...也许应该换一下键盘?你。 关于交易、自动交易系统和交易策略测试的论坛 任何MQL4初学者的问题,协助和讨论的算法和代码 Luchezar Shalomaev, 2017.09.21 21:08 斯特林 关于交易、自动交易系统和交易策略测试的论坛 新手对MQL4的任何问题,对算法和代码的帮助和讨论 Luchezar Shalomaev, 2017.09.21 21:10 这里有太多的 "专家 "了 :)所以决定取笑他们。他们不回答你的问题,而是开始说教。你的问题 已经得到了回答--按F2,会出现报价下载窗口。但你开始戏谑,得到了戏谑的回答。你想要什么?俗话说:"来之能战,战之能胜"......。 Any questions from newcomers Luchezar Shalomaev 2017.09.21 19:42 #3155 Artyom Trishkin:那么我应该让你到后台去吗?你。答案是。你。响应。你。响应。你。你。你。你的问题 已经得到了回答--按F2,会出现报价下载窗口。但你开始戏谑,你得到了一个戏谑的回应。你想要什么?俗话说:"来之能战,战之能胜"......。嗯,你说这不是一个马戏团。 voron_026 2017.09.21 20:20 #3156 Aleksey Vyazmikin: 最简单的方法是把逻辑写得更清楚--我不明白这个逻辑是什么?你能用语言描述一下吗?在逻辑上发现了一个错误。修正了它,它可以工作。int Doji() { //Параметры Дожи double Open1 = NormalizeDouble (iOpen(Symbol(), PERIOD_H4,1),Digits); double Close1 = NormalizeDouble (iClose(Symbol(), PERIOD_H4,1),Digits); double High1 = NormalizeDouble (iHigh(Symbol(), PERIOD_H4,1),Digits); double Low1 = NormalizeDouble (iLow(Symbol(), PERIOD_H4,1),Digits); //Параметры предыдущей свечи double Open2 = NormalizeDouble (iOpen(Symbol(), PERIOD_H4,2),Digits); double Close2 = NormalizeDouble (iClose(Symbol(), PERIOD_H4,2),Digits); double High2 = NormalizeDouble (iHigh(Symbol(), PERIOD_H4,2),Digits); double Low2 = NormalizeDouble (iLow(Symbol(), PERIOD_H4,2),Digits); //Параметры индикатора волотильности ATR для нахожденя относительно большой свечи перед Доджи double ATR = iATR(Symbol(),PERIOD_H4,21,1); //Математическое описание патерна Дожи if(Close1 < High1 -0.3*(High1-Low1) && Open1 < High1 -0.3*(High1-Low1) && Close1 > High1 -0.7*(High1-Low1) && Open1 > High1 -0.7*(High1-Low1) && MathAbs(Close1-Open1) < 0.2*(High1-Low1)&& MathAbs(Close2-Open2) > 0.7*ATR) { if((Close2 - Open2) > 0 && New_Bar == true) { Print ("Down"); return(-1);// Условие для продаж } if((Close2 - Open2) < 0 && New_Bar == true) { Print ("Up"); return(1);// Условие для покупок } } return(0); } 错误在于对十字星形态的数学描述。 voron_026 2017.09.21 20:29 #3157 现在的任务是这样的。我们需要画一个矩形,而不是一个箭头,它将由最大和最小的十字星以及十字星的开盘时间 和十字星之后的新条形的开盘时间来绘制。而这都是在4小时的图表上。同时,我需要在5分钟的图表上。你能提供什么建议?如何实施?我不知道该怎么做,谢谢你。 Aleksey Vyazmikin 2017.09.21 20:42 #3158 voron_026: 在逻辑上发现了一个错误。修理好了,正在工作。 错误在于对十字星形态的数学描述。对你有好处。你以前编过程序吗?你的风格并不典型。voron_026:现在的任务是这样的。我们必须画一个矩形,而不是箭头,它将由最大和最小的十字星以及十字星的开盘时间 和十字星之后的新条形的开盘时间来画。而这一切都发生在4小时图上。同时,我需要在5分钟的图表上。你能提供什么建议?如何实施?谢谢你。对普通(全局)变量进行声明,这些变量将在函数中计算,并从函数中返回 void(){} 。你能不能定义一下时间...总之,我还没有理解这个确切的问题。顺便说一下,我以前不知道全局变量的方法,而是通过字符串变量从函数中返回所有的值。 Vitaly Muzichenko 2017.09.21 21:08 #3159 voron_026:现在的任务是这样的。我们需要画一个矩形,而不是一个箭头,它将由最大和最小的十字星以及十字星的开盘时间 和十字星后的新条形的开盘时间来绘制。而这都是在4小时的图表上。同时,我需要在5分钟的图表上。你能提供什么建议?如何实施?谢谢你。你必须使用OBJ_RECTANGLE。 你知道如何从H4图表中获得价格和时间数据。 Документация по MQL5: Стандартные константы, перечисления и структуры / Константы объектов / Типы объектов / OBJ_RECTANGLE www.mql5.com Стандартные константы, перечисления и структуры / Константы объектов / Типы объектов / OBJ_RECTANGLE - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5 voron_026 2017.09.21 21:08 #3160 Aleksey Vyazmikin: 对你有好处。你以前编过程序吗?你的风格并不典型。做一般(全局)变量的声明,这些变量将在函数中计算并从函数中返回 void(){} .你能不能判断出时间...总之,我不明白这个问题到底是什么。顺便说一下,我以前不知道全局变量的方法,通过字符串变量返回所有函数的值。你好,Aleksey Vyazmikin 我不久前才开始编程。我正在慢慢进入这个主题。我曾这样试过。//+------------------------------------------------------------------+ //| 111.mq4 | //| Copyright 2017,UriyGlushko | //| https://www.mql5.com | //+------------------------------------------------------------------+ #property copyright "Copyright 2017,UriyGlushko" #property link "https://www.mql5.com" #property version "1.00" #property strict extern string Rodot = "Параметры робота"; extern double Lots = 0.2; extern int StopLoss = 20; extern int TakeProfit = 80; extern int Magic = 999999; extern int Slippage = 3; // Проскальзывание extern bool UseDojiCandles = true; // Использование патерна Доджи int DojiCandle = 0; bool New_Bar = false; datetime time0 = iTime(Symbol(),PERIOD_H4,0); datetime time1 = iTime(Symbol(),PERIOD_H4,1); double open0 = iOpen(Symbol(), PERIOD_H4,0); double open1 = iOpen(Symbol(), PERIOD_H4,1); double close1 = iClose(Symbol(), PERIOD_H4,1); double high1 = iHigh(Symbol(), PERIOD_H4,1); double low1 = iLow(Symbol(), PERIOD_H4,1); //+------------------------------------------------------------------+ //| Expert initialization function | //+------------------------------------------------------------------+ int OnInit() { if (Digits == 3 || Digits ==5 ) { TakeProfit *= 10; StopLoss *= 10; Slippage *= 10; } return(INIT_SUCCEEDED); } //+------------------------------------------------------------------+ //| Expert deinitialization function | //+------------------------------------------------------------------+ void OnDeinit(const int reason) { } //+------------------------------------------------------------------+ //| Expert tick function | //+------------------------------------------------------------------+ void OnTick() { Fun_New_Bar(); if(UseDojiCandles = true && Doji() == 1 && New_Bar == true) { if(!ObjectCreate(ChartID(),"Doji_"+IntegerToString(DojiCandle),OBJ_RECTANGLE,0,time1,open1,time0,open0)) { Print("Не удалось создать метку вверх"); } ObjectSetInteger(ChartID(),"Doji_"+IntegerToString(DojiCandle),OBJPROP_COLOR,clrRed);//--- установим цвет прямоугольника ObjectSetInteger(ChartID(),"Doji_"+IntegerToString(DojiCandle),OBJPROP_STYLE,STYLE_SOLID);//--- установим стиль линий прямоугольника ObjectSetInteger(ChartID(),"Doji_"+IntegerToString(DojiCandle),OBJPROP_WIDTH,1);//--- установим толщину линий прямоугольника ObjectSetInteger(ChartID(),"Doji_"+IntegerToString(DojiCandle),OBJPROP_BACK,false);//--- отобразим на переднем (false) или заднем (true) плане DojiCandle ++; } if(UseDojiCandles = true && Doji() == -1 && New_Bar == true) { if(!ObjectCreate(ChartID(),"Doji_"+IntegerToString(DojiCandle),OBJ_RECTANGLE,0,time1,open1,time0,open0)) { Print("Не удалось создать метку вниз"); } ObjectSetInteger(ChartID(),"Doji_"+IntegerToString(DojiCandle),OBJPROP_COLOR,clrRed);//--- установим цвет прямоугольника ObjectSetInteger(ChartID(),"Doji_"+IntegerToString(DojiCandle),OBJPROP_STYLE,STYLE_SOLID);//--- установим стиль линий прямоугольника ObjectSetInteger(ChartID(),"Doji_"+IntegerToString(DojiCandle),OBJPROP_WIDTH,1);//--- установим толщину линий прямоугольника ObjectSetInteger(ChartID(),"Doji_"+IntegerToString(DojiCandle),OBJPROP_BACK,false);//--- отобразим на переднем (false) или заднем (true) плане DojiCandle ++; } } //+------------------------------------------------------------------+ // Поиск всех объектов //+------------------------------------------------------------------+ //+------------------------------------------------------------------+ // Функция паттерна Доджи //+------------------------------------------------------------------+ int Doji() { //Параметры Дожи double Open1 = NormalizeDouble (iOpen(Symbol(), PERIOD_H4,1),Digits); double Close1 = NormalizeDouble (iClose(Symbol(), PERIOD_H4,1),Digits); double High1 = NormalizeDouble (iHigh(Symbol(), PERIOD_H4,1),Digits); double Low1 = NormalizeDouble (iLow(Symbol(), PERIOD_H4,1),Digits); //Параметры предыдущей свечи double Open2 = NormalizeDouble (iOpen(Symbol(), PERIOD_H4,2),Digits); double Close2 = NormalizeDouble (iClose(Symbol(), PERIOD_H4,2),Digits); double High2 = NormalizeDouble (iHigh(Symbol(), PERIOD_H4,2),Digits); double Low2 = NormalizeDouble (iLow(Symbol(), PERIOD_H4,2),Digits); //Параметры индикатора волотильности ATR для нахожденя относительно большой свечи перед Доджи double ATR = iATR(Symbol(),PERIOD_H4,21,1); //Математическое описание патерна Дожи if(Close1 < High1 -0.3*(High1-Low1) && Open1 < High1 -0.3*(High1-Low1) && Close1 > High1 -0.7*(High1-Low1) && Open1 > High1 -0.7*(High1-Low1) && MathAbs(Close1-Open1) < 0.2*(High1-Low1)&& MathAbs(Close2-Open2) > 0.7*ATR) { if((Close2 - Open2) > 0 && New_Bar == true) { Print ("Down"); return(-1);// Условие для продаж } if((Close2 - Open2) < 0 && New_Bar == true) { Print ("Up"); return(1);// Условие для покупок } } return(0); } //+------------------------------------------------------------------+ // Функция определения нового бара //+------------------------------------------------------------------+ void Fun_New_Bar() // Ф-ия обнаружения нового бара { datetime TimeBar0 = iTime(Symbol(),PERIOD_H4,0); static datetime New_Time=0; // Время текущего бара New_Bar=false; // Нового бара нет if(New_Time != TimeBar0) // Сравниваем время { New_Time = TimeBar0; // Теперь время такое New_Bar = true; // Поймался новый бар } } 第一个矩形被画出,其余的没有被画出。我仍在试图弄清楚如何去做。谢谢你的提示,你说的非典型风格是什么意思? 1...309310311312313314315316317318319320321322323...1953 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
确实不是所有的键盘都有我写的东西......也许你应该改变你的键盘。
这里有太多的 "专家 "了 :)所以我想我要取笑你。他们不回答问题,而是开始说教。
这里有太多的 "专家 "了 :)所以我决定取笑他们。不回答问题,而是开始讲课。
那么就不要指望那些忙于做自己的事情而分心帮助你的人提供正常的答案,如果你把自己放在一个取笑施主的位置上。
这不是一个马戏团。
那么今后就不要指望从那些忙于业务、心不在焉地帮助你的人那里得到正常的回应,如果你把自己放在一个取笑施舍者的位置。
这不是一个马戏团。
亲爱的主持人,如果这不是一个马戏团,你能不能把回答我问题的小丑们带到后台?谢谢你。
亲爱的主持人,如果这不是一个马戏团,你能不能好心地把回答我问题的小丑们带到后台?谢谢你。
这就是送你到幕后的方式吗?
你。
关于交易、自动交易系统和策略测试的论坛
初学者对MQL4的任何问题,对算法和代码的帮助和讨论
Luchezar Shalomaev, 2017.09.20 22:25
你好。从Ducascopy下载了欧元兑美元的1分钟报价文件,试图导入MT4 Alpari,但没有任何反应。只是一个空白的转换窗口。在Instaforex也一样。会是什么呢?
答案是。
关于交易、自动交易系统和策略测试的论坛
初学者对MQL4的任何问题,对算法和代码的帮助和讨论
Vitaly Muzichenko, 2017.09.20 22:32
你要在dukascopy交易吗?不是吗?那么你为什么需要他们的报价呢?
你。
关于交易、自动交易系统和测试交易策略的论坛
新手对MQL4的任何问题,对算法和代码的帮助和讨论
Luchezar Shalomaev, 2017.09.20 22:42
我需要Alpari的报价,但我没能从他们那里找到任何报价。
答案是。
关于交易、自动交易系统和交易策略测试的论坛
新手对MQL4的任何问题,对算法和代码的帮助和讨论
Vitaly Muzichenko, 2017.09.20 22:45
他们有足够的历史来测试EA
你。
关于交易、自动交易系统和交易策略测试的论坛
新手对MQL4的任何问题,对算法和代码的帮助和讨论
Luchezar Shalomaev, 2017.09.20 22:46
我很抱歉,但对于我的任务,我需要的比他们给的更多。
响应。
关于交易、自动交易系统和交易策略测试的论坛
对MQL4新手的任何问题,对算法和代码的帮助和讨论
Alexey Viktorov, 2017.09.21 07:47
按F2
你。
关于交易、自动交易系统和交易策略测试的论坛
对MQL4新手的任何问题,对算法和代码的帮助和讨论
Luchezar Shalomaev, 2017.09.21 09:06
谢谢你。按F和2。什么都没有发生。你。
关于交易、自动交易系统和交易策略测试的论坛
初学者对MQL4的任何问题,对算法和代码的帮助和讨论
Alekseu Fedotov, 2017.09.21 09:29
F2关于交易、自动交易系统和交易策略测试的论坛
初学者对MQL4的任何问题,对算法和代码的帮助和讨论
Alexey Viktorov, 2017.09.21 09:34
真的不是所有的键盘都有我写的这些东西...也许应该换一下键盘?
你。
关于交易、自动交易系统和交易策略测试的论坛
任何MQL4初学者的问题,协助和讨论的算法和代码
Luchezar Shalomaev, 2017.09.21 21:08
斯特林
关于交易、自动交易系统和交易策略测试的论坛
新手对MQL4的任何问题,对算法和代码的帮助和讨论
Luchezar Shalomaev, 2017.09.21 21:10
这里有太多的 "专家 "了 :)所以决定取笑他们。他们不回答你的问题,而是开始说教。
你的问题 已经得到了回答--按F2,会出现报价下载窗口。
但你开始戏谑,得到了戏谑的回答。
你想要什么?俗话说:"来之能战,战之能胜"......。
那么我应该让你到后台去吗?
你。
答案是。
你。
响应。
你。
响应。
你。
你。
你。
你的问题 已经得到了回答--按F2,会出现报价下载窗口。
但你开始戏谑,你得到了一个戏谑的回应。
你想要什么?俗话说:"来之能战,战之能胜"......。
嗯,你说这不是一个马戏团。
最简单的方法是把逻辑写得更清楚--我不明白这个逻辑是什么?你能用语言描述一下吗?
在逻辑上发现了一个错误。修正了它,它可以工作。
错误在于对十字星形态的数学描述。现在的任务是这样的。我们需要画一个矩形,而不是一个箭头,它将由最大和最小的十字星以及十字星的开盘时间 和十字星之后的新条形的开盘时间来绘制。而这都是在4小时的图表上。同时,我需要在5分钟的图表上。你能提供什么建议?如何实施?
我不知道该怎么做,谢谢你。
在逻辑上发现了一个错误。修理好了,正在工作。
错误在于对十字星形态的数学描述。对你有好处。你以前编过程序吗?你的风格并不典型。
现在的任务是这样的。我们必须画一个矩形,而不是箭头,它将由最大和最小的十字星以及十字星的开盘时间 和十字星之后的新条形的开盘时间来画。而这一切都发生在4小时图上。同时,我需要在5分钟的图表上。你能提供什么建议?如何实施?
谢谢你。
对普通(全局)变量进行声明,这些变量将在函数中计算,并从函数中返回 void(){} 。你能不能定义一下时间...总之,我还没有理解这个确切的问题。
顺便说一下,我以前不知道全局变量的方法,而是通过字符串变量从函数中返回所有的值。
现在的任务是这样的。我们需要画一个矩形,而不是一个箭头,它将由最大和最小的十字星以及十字星的开盘时间 和十字星后的新条形的开盘时间来绘制。而这都是在4小时的图表上。同时,我需要在5分钟的图表上。你能提供什么建议?如何实施?
谢谢你。
你必须使用OBJ_RECTANGLE。 你知道如何从H4图表中获得价格和时间数据。
对你有好处。你以前编过程序吗?你的风格并不典型。
做一般(全局)变量的声明,这些变量将在函数中计算并从函数中返回 void(){} .你能不能判断出时间...总之,我不明白这个问题到底是什么。
顺便说一下,我以前不知道全局变量的方法,通过字符串变量返回所有函数的值。
你好,Aleksey Vyazmikin 我不久前才开始编程。我正在慢慢进入这个主题。
我曾这样试过。
第一个矩形被画出,其余的没有被画出。我仍在试图弄清楚如何去做。谢谢你的提示,你说的非典型风格是什么意思?