eine Handelsstrategie auf der Grundlage der Elliott-Wellen-Theorie - Seite 139
Sie verpassen Handelsmöglichkeiten:
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Registrierung
Einloggen
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Wenn Sie kein Benutzerkonto haben, registrieren Sie sich
solandr, Ihre Beharrlichkeit trägt weiterhin Früchte, Hut ab.
Es wurde interessant. Auf jeden Fall habe ich erkannt, dass die Lücken in meiner Ausbildung geschlossen werden müssen.
Ich habe jedoch keines der Bücher von Ivakhnenko in elektronischer Form gefunden.
Könnten Sie bitte die Links weitergeben.
Literatur: http://www.gmdh.net/articles/index.html. Hier sind die Bücher in ganzen Akten. Sie können Teile von ihnen auf der Spinne bekommen.
Danke, sehr interessante Seite.
Und diese beiden Bücher gibt es anscheinend überhaupt nicht in elektronischer Form.
Ivakhnenko A.G., Yurachkovsky Y.P. Modellierung komplexer Systeme anhand experimenteller Daten. - Moskau: Radio und Kommunikation, 1987
Ivakhnenko A. G. Modellierung komplexer Systeme: ein Informationsansatz. - K.: Naukova Dumka, 1987, 136 Seiten.
PS: Der Code wurde am 23.09.2006 geändert.
//+------------------------------------------------------------------+ //| 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); }Ausgesprochene Überlegenheit - http://www.investo.ru/forum/viewtopic.php?t=127490
ATRLevels - http://forexsystems.ru/phpBB/viewtopic.php?p=3960&highlight=atr#3960
Ich kann jedoch Russisch verstehen (lesen), so dass Sie mir nicht auf Englisch antworten müssen.
Meine Frage lautet: Was halten Sie von kombinatorischer Graphenmustererkennung?
Eigentlich ist das Diagramm ein Graph, und vielleicht ist der beste Weg, Marktdaten zu analysieren, die Verwendung eines Algorithmus für einen kombinatorischen Graphen! Dies ist eine Seite für Graphenalgorithmen:http://jgaa.info/
Ich denke, das ist ein sehr wichtiger Punkt!!! Vielleicht ist es sinnvoll, die Preisspanne zu normalisieren, zum Beispiel durch den Durchschnittspreis der letzten ein oder zwei Monate, und dann den normalisierten Wert der Spanne für eine Reihe von Balken zu berechnen. Ich werde versuchen, den Indikator in nächster Zeit nach diesem Prinzip zu verbessern.
Ich habe nach einer Definition für einen "kombinatorischen Graphen" gesucht. Unter http://www.math.lsa.umich.edu/mmss/coursesONLINE/graph/graph1/graph1.doc ist sie wie folgt definiert:
In diesem Fall ist das Wort Graph die Abkürzung für Graph einer Funktion. Ein solcher Graph kann genau definiert werden als eine Menge von geordneten Paaren
...
Die Art von Graphen, die wir untersuchen werden, werden manchmal kombinatorische Graphen genannt, um sie von den oben beschriebenen Graphen zu unterscheiden. Kombinatorische Graphen lassen sich manchmal bildlich als Netze von Punkten (den so genannten Scheitelpunkten) darstellen, die durch Linien (den so genannten Kanten) verbunden sind.
Bedeutet diese Definition nicht, dass wir für unseren Fall sagen können, dass: "Kombinatorischer Graph" ist ein Nicht-Muster?