基于艾略特波浪理论的交易策略 - 页 139 1...132133134135136137138139140141142143144145146...309 新评论 Forex Trader 2006.09.15 22:11 #1381 我已经开始阅读伊瓦赫宁科。到目前为止,人们越来越觉得弗拉迪斯拉夫的方法基本上是MSUA的一个变种 :) solandr,你的坚持不断取得成果,赞一个。 Forex Trader 2006.09.16 13:21 #1382 2个solandr 和candid 事情变得有趣了。无论如何,我意识到我的教育差距需要被填补。 然而,我没有发现伊瓦赫宁科的任何电子形式的书籍。 能否请您分享一下这些链接。 Forex Trader 2006.09.16 15:42 #1383 MGUA网站:http://www.gmdh.net/gmdh.htm 文学:http://www.gmdh.net/articles/index.html。这里的书都是完整的文件。你可以在蜘蛛上得到它们的一部分。 Forex Trader 2006.09.16 17:53 #1384 2候选人 谢谢,非常有趣的网站。 而这两本书似乎根本不存在电子形式。 Ivakhnenko A.G., Yurachkovsky Y.P. 通过实验数据为复杂系统建模。- 莫斯科:广播和通信,1987 Ivakhnenko A.G. 复杂系统的建模:一种信息方法。- K.: Naukova Dumka, 1987, 136页。 Forex Trader 2006.09.20 23:20 #1385 决定与公众分享该指标。指标的描述在代码本身中。 PS:在2006年9月23日编辑了代码 //+------------------------------------------------------------------+ //| AMPLITUDE_STAT_LEVELS.mq4 | //| Copyright © 2006, Solandr | //| solandr99@mail.ru | //+------------------------------------------------------------------+ #property copyright "Copyright © 2006, Solandr" #property link "solandr99@mail.ru" #property indicator_chart_window // ============================================================================================ //"Купи подешевле, продай подороже" - основа, на которой базируется спекуляция на финансовых рынках. //Данный индикатор предлагает своё видение этих уровней "подешевле" и "подороже". Он основан на простом //статистическом расчёте размахов (амплитуд High-Low) баров по имеющейся истории котировок. //Расчёт амплитуд происходит по сериям от 1 до 10 баров. То есть в выбранной серии на истории находитcя разница между //максимальным и минимальным значением цены. Далее окно серии смещается на 1 бар и получаем следующий размах амплитуды //баров для выбранной серии баров. После усреднения значения полученных размахов мы имеем среднее арифметическое диапазона //колебания цены для выбранной серии баров. // //Полученное таким образом значение амплитуды откладывается на графике по следующему принципу. К минимуму текущей серии //баров прибавляется значение среднеарифметического размаха, посчитанного на истории. Так мы получаем возможный //среднестатистический максимум цены для текущей серии баров. То же самое делаем для нахождения среднестатистического //минимума для текущей серии баров. То есть от максимума текущей серии баров отнимаем среднеарифметический размах, //посчитанный для данной серии баров по историческим данным. Индикатор производит описанные выше действия для серий //от 1 до 10 баров. На уровнях присутствуют надписи, поясняющие для какого текущего временного промежутка построен данный //уровень. С параметром TF_needed="AUTO" уровни строятся для серий баров текущего таймфрейма. Если требуется зафиксировать // уровни какого-то таймфрейма на остальных периодах, то необходимо установить это значение в MN, W1, D1, H4, H1, M30, //M15, M5, или в M1. Например для значения TF_needed="D1" на всех периодах будут отображаться уровни для временных //промежутков от 1 до 10 дней, обозначаемых соответственно как D1,...,D10. // //При настройках по умолчанию индикатор производит перерасчёт среднестатистических амплитуд по истории один раз в день //с их внесением в глобальные переменные терминала. Если по какой-то причине (например импортирование дополнительных //котировок) требуется произвести перерасчёт среднеарифметических значений амплитуд для серий баров не дожидаясь //следующего дня, то необходимо установить TF_needed в значения force_recalculation=true и будет произведён перерасчёт //среднеарифметических значений размахов для серий баров при следующей инициализации индикатора. // //Данный индикатор может быть полезен при принятии решений о входе в позицию. Может поспособствовать сохранению депозита //особенно начинающих трейдеров. Продавайте на красных уровнях и покупайте на зелёных и за Вас будет играть математика! ;o))) //Если Вы например купили на зелёных уровнях и курс пошёл резко против Вас, то убыточную позицию есть смысл удерживать лишь //до тех пор пока красные уровни не окажутся ниже Вашей открытой позиции. И когда цена окажется на этих красных уровнях - //закройте убыточную позицию с минимальным убытком, а во многих случаях и с маленьким плюсом. Желаю успехов!:o) // ============================================================================================ extern string TF_needed="AUTO"; extern bool force_recalculation=false;//принудительный перерасчёт bool recalculation_needed=false; double delta[11]; string work_symbol; int TF; //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int init() { int i,k,all_bars; string b_str,global_name; work_symbol=Symbol(); //Выбор требуемого тайфрейма для расчёта; if(TF_needed=="AUTO" || (TF_needed!="MN" && TF_needed!="W1" && TF_needed!="D1" && TF_needed!="H4" && TF_needed!="H1" && TF_needed!="M30" && TF_needed!="M15" && TF_needed!="M5" && TF_needed!="M1")) TF=Period(); if(TF_needed=="MN") TF=43200; if(TF_needed=="W1") TF=10080; if(TF_needed=="D1") TF=1440; if(TF_needed=="H4") TF=240; if(TF_needed=="H1") TF=60; if(TF_needed=="M30") TF=30; if(TF_needed=="M15") TF=15; if(TF_needed=="M5") TF=5; if(TF_needed=="M1") TF=1; //Проверяем наличие посчитанных данных амплитуд для данного TF, а также производим проверку дня, в который был произведен расчёт этих данных global_name=work_symbol+"_"+TF+"_counted_day"; if(GlobalVariableCheck(global_name) && !force_recalculation) { if(MathAbs(GlobalVariableGet(global_name)-DayOfYear())>0) recalculation_needed=true; } else recalculation_needed=true; if(recalculation_needed) {//Производим расчёт средней амплитуды бара (серии баров) по таймфрейму TF на символе work_symbol all_bars=iBars(work_symbol,TF); for(i=1;i<=10;i++) delta[i]=0; for(i=1;i<=10;i++) { for(k=all_bars-i;k>=0;k--) delta[i]=delta[i]+iHigh(work_symbol,TF,Highest(Symbol(),TF,MODE_HIGH,i,k))-iLow(work_symbol,TF,Lowest(Symbol(),TF,MODE_LOW,i,k)); delta[i]=NormalizeDouble(delta[i]/(all_bars-i+1),Digits); global_name=work_symbol+"_"+TF+"_"+i; GlobalVariableSet(global_name,delta[i]); //Print("delta",i,"=",delta[i]); } global_name=work_symbol+"_"+TF+"_counted_day"; GlobalVariableSet(global_name,DayOfYear()); recalculation_needed=false; }//if(recalculation_needed) else {//Если данные имеются в глобальных переменных терминала, то берём имеющиеся расчётные данные амплитуд из глобальных переменных терминала for(i=1;i<=10;i++) { global_name=work_symbol+"_"+TF+"_"+i; delta[i]=GlobalVariableGet(global_name); //Print("Глобал ",i," ",delta[i]); } } } //+------------------------------------------------------------------+ //| Custom indicator deinitialization function | //+------------------------------------------------------------------+ int deinit() { //---- int i; string b_str; for(i=1;i<=10;i++) { b_str="up_line"+i; ObjectDelete(b_str); b_str="down_line"+i; ObjectDelete(b_str); b_str="up_line_txt"+i; ObjectDelete(b_str); b_str="down_line_txt"+i; ObjectDelete(b_str); } } //+------------------------------------------------------------------+ //| Custom indicator iteration function | //+------------------------------------------------------------------+ int start() { int i; string line_name; for(i=1;i<=10;i++) { if(TF==43200) line_name="MN"+i; if(TF==10080) line_name="W"+i; if(TF==1440) line_name="D"+i; if(TF==240) line_name="H"+4*i; if(TF==60) line_name="H"+i; if(TF==30) line_name="M"+30*i; if(TF==15) line_name="M"+15*i; if(TF==5) line_name="M"+5*i; if(TF==1) line_name="M"+i; up_line(i,iLow(NULL,TF,Lowest(work_symbol,TF,MODE_LOW,i,0))+delta[i],line_name); down_line(i,iHigh(NULL,TF,Highest(work_symbol,TF,MODE_HIGH,i,0))-delta[i],line_name); } return(0); } //+------------------------------------------------------------------+ int up_line(int q_days, double level, string ln) { string b_str="up_line"+q_days; if(ObjectFind(b_str) == -1) { ObjectCreate(b_str, OBJ_TREND, 0, Time[1], level, Time[1]+2700000,level); ObjectSet(b_str, OBJPROP_STYLE, STYLE_DOT); ObjectSet(b_str, OBJPROP_COLOR, Brown); ObjectSet(b_str, OBJPROP_RAY, true); ObjectSet(b_str, OBJPROP_WIDTH, 1); ObjectMove(b_str, 0, Time[1], level); } else { if(MathAbs(level-ObjectGet(b_str, OBJPROP_PRICE1))>0.9*Point) ObjectDelete(b_str); } b_str="up_line_txt"+q_days; string b_txt=ln; datetime t_bar; if(ObjectFind(b_str) == -1) { ObjectCreate(b_str, OBJ_TEXT, 0, Time[0], 0); ObjectSetText(b_str, b_txt, 8, "Arial", Brown); ObjectMove(b_str, 0, Time[0]+2*q_days*Period()*60, level); } else { ObjectMove(b_str, 0, Time[0]+2*q_days*Period()*60, level); } return(0); } int down_line(int q_days, double level, string ln) { string b_str="down_line"+q_days; if(ObjectFind(b_str) == -1) { ObjectCreate(b_str, OBJ_TREND, 0, Time[1], level, Time[1]+2700000,level); ObjectSet(b_str, OBJPROP_STYLE, STYLE_DOT); ObjectSet(b_str, OBJPROP_COLOR, DarkGreen); ObjectSet(b_str, OBJPROP_RAY, true); ObjectSet(b_str, OBJPROP_WIDTH, 1); ObjectMove(b_str, 0, Time[1], level); } else { if(MathAbs(level-ObjectGet(b_str, OBJPROP_PRICE1))>0.9*Point) ObjectDelete(b_str); } b_str="down_line_txt"+q_days; string b_txt=ln; if(ObjectFind(b_str) == -1) { ObjectCreate(b_str, OBJ_TEXT, 0, Time[0], 0); ObjectSetText(b_str, b_txt, 8, "Arial", DarkGreen); ObjectMove(b_str, 0, Time[0]+2*q_days*Period()*60, level); } else { ObjectMove(b_str, 0, Time[0]+2*q_days*Period()*60, level); } return(0); } Forex Trader 2006.09.21 10:03 #1386 然后在同一主题上(有一点重叠)。 宣称的优越性 -http://www.investo.ru/forum/viewtopic.php?t=127490 ATRLevels -http://forexsystems.ru/phpBB/viewtopic.php?p=3960&highlight=atr#3960 Forex Trader 2006.09.24 18:31 #1387 关于价差还有一件事。如果我们在足够长的历史上测试系统,正常化的问题就会出现(例如,在0.8的比率下的100分似乎明显不等于1.36的100分)。当然也可以用价格来归一化(除以),但用波动率来归一化似乎更正确。在我们之前的两篇文章中,我们讨论了波动率估计的变体。我不知道在配给问题上是否有任何 "正统 "的观点? Forex Trader 2006.09.24 19:22 #1388 我很抱歉用英语来写,但我的俄语太差了!对不起。 然而,我可以理解(阅读)俄语,所以不需要用英语回答我。 我的问题是:你对组合图模式识别有何看法? 实际上,图表是一种图形,也许分析市场数据的最好方法是使用组合图的算法!这也是我的观点。这是图算法的网站:http://jgaa.info/ Forex Trader 2006.09.24 20:17 #1389 如果我们在足够长的历史上测试系统,就会出现一个归一化的问题(例如,看起来很明显,0.8的100点完全不等同于1.36的100点)。 我认为这是一个非常有价值的观点!!。也许将价差归一化是有意义的,例如通过过去一两个月的平均价格,然后计算一系列条形的价差的归一化值。我将尝试在最近的将来根据这一原则来改进该指标。 Forex Trader 2006.09.25 20:17 #1390 2Dave Mason 我一直在寻找 "组合图 "的定义。在http://www.math.lsa.umich.edu/mmss/coursesONLINE/graph/graph1/graph1.doc,它是这样定义的。 <img src="https://c.mql5.com/mql4/forum/2006/09/Graph1.gif" / translate="no" >。 在这种情况下,graph这个词是函数图的简称。 这种图可以被精确地定义为一组有序的配对 ... 我们要研究的那种图有时被称为组合图,以区别于上述的图。 组合图有时可以用图形表示为由线(称为边)连接的点(称为顶点)的网络。 这个定义难道不意味着对于我们的情况,我们可以这样说。"组合图 "是一种非模式? 1...132133134135136137138139140141142143144145146...309 新评论 原因: 取消 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
solandr,你的坚持不断取得成果,赞一个。
事情变得有趣了。无论如何,我意识到我的教育差距需要被填补。
然而,我没有发现伊瓦赫宁科的任何电子形式的书籍。
能否请您分享一下这些链接。
文学:http://www.gmdh.net/articles/index.html。这里的书都是完整的文件。你可以在蜘蛛上得到它们的一部分。
谢谢,非常有趣的网站。
而这两本书似乎根本不存在电子形式。
Ivakhnenko A.G., Yurachkovsky Y.P. 通过实验数据为复杂系统建模。- 莫斯科:广播和通信,1987
Ivakhnenko A.G. 复杂系统的建模:一种信息方法。- K.: Naukova Dumka, 1987, 136页。
PS:在2006年9月23日编辑了代码
宣称的优越性 -http://www.investo.ru/forum/viewtopic.php?t=127490
ATRLevels -http://forexsystems.ru/phpBB/viewtopic.php?p=3960&highlight=atr#3960
然而,我可以理解(阅读)俄语,所以不需要用英语回答我。
我的问题是:你对组合图模式识别有何看法?
实际上,图表是一种图形,也许分析市场数据的最好方法是使用组合图的算法!这也是我的观点。这是图算法的网站:http://jgaa.info/
我认为这是一个非常有价值的观点!!。也许将价差归一化是有意义的,例如通过过去一两个月的平均价格,然后计算一系列条形的价差的归一化值。我将尝试在最近的将来根据这一原则来改进该指标。
我一直在寻找 "组合图 "的定义。在http://www.math.lsa.umich.edu/mmss/coursesONLINE/graph/graph1/graph1.doc,它是这样定义的。
在这种情况下,graph这个词是函数图的简称。 这种图可以被精确地定义为一组有序的配对
...
我们要研究的那种图有时被称为组合图,以区别于上述的图。 组合图有时可以用图形表示为由线(称为边)连接的点(称为顶点)的网络。
这个定义难道不意味着对于我们的情况,我们可以这样说。"组合图 "是一种非模式?