2 칸디다 감사합니다. 매우 흥미로운 사이트입니다. 그리고 이 두 권의 책은 전자 형태로 전혀 존재하지 않는 것 같습니다. Ivakhnenko A.G., Yurachkovsky Yu.P. 실험 데이터를 기반으로 하는 복잡한 시스템 모델링. - M.: 라디오 및 통신, 1987 Ivakhnenko AG 복잡한 시스템 모델링: 정보 접근 방식. - K .: "Naukova Dumka", 1987, 136 페이지.
범위에 대해 자세히 알아보십시오. 충분히 긴 히스토리에서 시스템을 테스트하면 정규화 문제가 발생합니다(예: 비율 0.8의 100포인트는 비율 1.36의 100포인트와 전혀 같지 않음이 분명해 보입니다). 물론 단순히 가격 값으로 정규화(나누기)할 수도 있지만 정규화를 위해 변동성을 사용하는 것이 더 정확해 보입니다. 이전 두 게시물에서는 사실 변동성을 평가하기 위한 옵션에 관한 것이었습니다. 정규화 문제에 대한 "정규적인" 관점이 있는지 궁금합니다.
영어로 글을 써서 미안하지만 내 러시아어가 너무 서툴다! 죄송합니다. 그러나 나는 러시아어를 이해할 수 있으므로 영어로 대답할 필요가 없습니다. 제 질문은: 조합 그래프 패턴 인식에 대해 어떻게 생각하십니까? 사실 차트는 그래프이고 시장 데이터를 분석하는 가장 좋은 방법은 조합 그래프 알고리즘을 사용하는 것입니다!? 이것은 그래프 알고리즘을 위한 사이트입니다: http://jgaa.info/
이 상황에서 그래프라는 단어는 함수 그래프의 줄임말입니다. 이러한 종류의 그래프는 순서쌍의 집합으로 정확하게 정의할 수 있습니다. ... 우리가 연구할 그래프의 종류를 위에서 설명한 그래프와 구별하기 위해 조합 그래프라고 하는 경우가 있습니다. 조합 그래프는 때때로 선(가장자리라고 함)으로 연결된 점의 네트워크(꼭짓점이라고 함)로 그림으로 나타낼 수 있습니다.
solandr , 당신의 인내는 계속해서 결실을 맺습니다. 존경합니다.
흥미로워졌다. 어쨌든 교육의 공백을 메워야 한다는 것을 깨달았습니다.
그러나 Ivakhnenko는 전자 형식의 책을 찾지 못했습니다.
링크를 공유할 수 있습니다.
참조: http://www.gmdh.net/articles/index.html . 다음은 전체 파일로 된 책입니다. 부분적으로 거미를 잡을 수 있습니다.
감사합니다. 매우 흥미로운 사이트입니다.
그리고 이 두 권의 책은 전자 형태로 전혀 존재하지 않는 것 같습니다.
Ivakhnenko A.G., Yurachkovsky Yu.P. 실험 데이터를 기반으로 하는 복잡한 시스템 모델링. - M.: 라디오 및 통신, 1987
Ivakhnenko AG 복잡한 시스템 모델링: 정보 접근 방식. - K .: "Naukova Dumka", 1987, 136 페이지.
추신: 코드는 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); }ProbabilityChannel: 미리 결정된 우월성 - http://www.investo.ru/forum/viewtopic.php?t=127490
ATR레벨 - http://forexsystems.ru/phpBB/viewtopic.php?p=3960&highlight=atr#3960
그러나 나는 러시아어를 이해할 수 있으므로 영어로 대답할 필요가 없습니다.
제 질문은: 조합 그래프 패턴 인식에 대해 어떻게 생각하십니까?
사실 차트는 그래프이고 시장 데이터를 분석하는 가장 좋은 방법은 조합 그래프 알고리즘을 사용하는 것입니다!? 이것은 그래프 알고리즘을 위한 사이트입니다: http://jgaa.info/
정말 소중한 댓글인 것 같아요! 예를 들어 지난 1~2개월 동안의 평균 가격으로 가격 범위를 정규화한 다음 일련의 막대에 대한 범위의 정규화된 값을 계산하는 것이 합리적일 수 있습니다. 이 원칙에 따라 가까운 시일 내에 지표를 개선하려고 노력할 것입니다.
"조합 그래프"의 정의를 검색했습니다. http://www.math.lsa.umich.edu/mmss/coursesONLINE/graph/graph1/graph1.doc 에서 이 개념은 다음과 같이 정의됩니다.
이 상황에서 그래프라는 단어는 함수 그래프의 줄임말입니다. 이러한 종류의 그래프는 순서쌍의 집합으로 정확하게 정의할 수 있습니다.
...
우리가 연구할 그래프의 종류를 위에서 설명한 그래프와 구별하기 위해 조합 그래프라고 하는 경우가 있습니다. 조합 그래프는 때때로 선(가장자리라고 함)으로 연결된 점의 네트워크(꼭짓점이라고 함)로 그림으로 나타낼 수 있습니다.
이 정의는 우리의 경우 "조합 그래프"가 패턴이 아니라는 것을 의미하지 않습니까?