엘리엇 파동 이론에 기반한 거래 전략 - 페이지 142

 
아마도 그것을 명확히해야 할 필요가 있습니다. 비록 diam0nd 가 완전히 무료가 아니었지만, 나는 여전히 그를 새로운 얼굴로 여기에서 보게 되어 기쁩니다. :)

Dlia angloyazi4nih uzverey esty angloyazi4niy 포럼. Vot ya sobsno i predlogil emu tam i pisaty, tk zdesy on tolko sprasivaet, emu osobo ne otve4aiut a on vse prodolgaet raspaliatsia. 영어 포럼 Taki ya i predlogil poyti:
 
그냥 언로드:
... 우리의 눈은 패턴이 우리를 감지하기 전에 패턴(음식, 사자)을 감지하도록 설계된 수천 년의 진화 압력의 정점입니다. (통계적 패턴 인식을 위한 Marchette DJ Random 그래프(Wiley 2004))
:)
 
2 알렉스 니로바
처음에 이 스레드를 열 때 비슷한 생각을 가진 사람들을 찾으려고 노력했습니다.
엘리엇 파동 이론에 익숙한 사람들.
아이디어는 다음과 같았습니다. ZigZaga를 기반으로 효과적인 지표를 작성하십시오.
파도를 인식하고 차트에 미래 가격 행동을 그립니다.

Alex, 처음부터 이 말을 했다면 발표한 주제에 대한 흥미로운 토론이 열릴 수 있었을 것입니다. 그러나 당신이 질문의 공식화를 지정하고 싶지 않았기 때문에 사람들은 계속해서 블라디슬라프의 전략에 대해 논의했고 그는 구체적으로 그 이상을 공식화했습니다.

그러나 (원하는 경우) 지금 수행하는 것을 방해하는 것은 없습니다. Rosh의 의견 외에 다른 사람들이 이에 대해 어떻게 생각하는지 알고 싶어할 것입니다.

한때 ZigZaga도 시작했습니다. 표준이 나에게 맞지 않았기 때문에 나는 심지어 내 자신을 썼습니다. 그 결과 ZigZage 뿐만 아니라 Elliott의 이론에 대해서도 어느 정도 이해하게 되었습니다. 그래서 나는 그녀의 팬이 아니다.

나는 나 자신을 "엘리엇 파동 이론"에 대해 잘 알고 있다고 생각하지 않습니다. 그러나 작업 과정에서 발생하는 일부 이해로 인해 더 깊은 솔루션을 찾습니다. 아마도 나의 주된 동기는 Eliott의 접근 방식이 질적 솔루션만을 제공할 수 있다는 것입니다. 그리고 이것은 거래(수동 및 자동 모두)에 충분하지 않습니다. 그렇기 때문에 엘리엇은 제3파동이 있는 곳과 제5파동이 있는 곳을 구분하는 문제를 넘어설 수 없다.

그러나 그 주제에 대한 토론에서 만약 그것이 생긴다면 나는 관심을 가지고 참여하겠습니다.
행운을 빕니다.
 
2 데이브 메이슨
해결책은 없지만 시작은 있습니다.
나는 물었다 그녀가 의미하는 바를 설명하기 위해 6번" 이 주제에 대한 작업이 완료되었다고 생각합니다." 그래서 그녀가 "무료"로 친절하게 설명한다면 나는 정보를 공유할 것입니다.


이것이 당신에게 관심이 있다면 다음을 보고할 수 있습니다.
한번은 지그재그를 다룰 때 하나의 패턴만 인식하고 이를 기반으로 거래하는 아주 간단한 Expert Advisor를 작성했습니다. ZigZag의 동작에 대한 내 자신의 시각적 분석을 기반으로 패턴 구성을 직접 설정했습니다.

이 Expert Advisor가 이력(6개월)에 대해 테스트한 결과 해당 기간 동안 26%의 소득이 나타났습니다. 내장된 MT4가 아닌 자체 스크립트 테스터에서 테스트했습니다. 이 결과는 여러 상황에 대한 이해뿐만 아니라 저에게 적합하지 않았습니다. 그래서 이 접근 방식을 포기했습니다.

여기에서 귀하와 관련된 상황 중 하나를 인용합니다.
패턴 추출 알고리즘이 잘못 정의되어 있습니다. 이 선택의 기준은 전혀 정의되어 있지 않습니다.
그 결과 패턴을 먼저 생각해내고 어떻게 사용할 수 있는지 테스트하여 확인하는 방법밖에 없었습니다. 나는 이 접근 방식, 너무 많은 임의성을 좋아하지 않습니다.

그래프 이론을 적용하여 패턴을 추출한다면 이것은 문제에 대한 근본적인 해결책이 될 것입니다. 그러나 IMHO, 이것은 고문과 별도로 수행해야합니다. 그리고 고문은 이미 특정 매개변수화된 패턴으로 작업해야 합니다. 이것이 성공하면 엘리엇의 이론이 전혀 필요하지 않을 것입니다.
 
2 유리크스
저에게 (이것은 제 의견입니다) Elliott Wave Theory(EWT)는 그래프 이론에 관한 것입니다. 또는 외환의 추가 가격 움직임은 엄격하게 수학적인 그래프 이론을 통해 설명될 수 있습니다. 불행히도 저에게 EWT는 (저는 수학자가 아닙니다) 그리고 제 생각에 어떤 수학자에게도 진정한 수학 이론은 아닙니다. 그렇기 때문에 어느 파동이 그 이후인지 어느 순간에 확신할 수 있는 사람은 아무도 없습니다.
단순히 추측하는 것은 실제로 수학 이론이 아닙니다.
그래프 이론은 내 가능성을 뛰어 넘는 것입니다.
그러나 나는 부인으로부터 답을 받았다. 육:
"헤이 데이브,

아니요, 이것은 환상이 아닙니다.

나는 연구원이나 기업이
귀하가 찾을 수 있는 출판된 연구 논문 또는 백서
흥미로운. 구글에서 처음 검색해도 안나오면
계속 시도하십시오.

그것을 위해 가십시오!


문안 인사,
자넷 식스, Ph.D.


데이브 메이슨은 다음과 같이 썼습니다.

> 신속한 요청에 감사드립니다.
> 무슨 말인지 말씀해 주시겠습니까?” 이 주제에 대한 작업은
> 완료되었습니다"? Forex 포럼의 동료들이 생각하기에 지정하십시오.
> 이것은 "환상"입니다.
> 안부,
>데이브
"
그녀는 이것이 "환상"이 아니라고 말합니다.
그러나 누군가가 Google에서 무언가를 찾거나 ...이 문제를 해결하지 못합니다.
이것은 수학 전문가를 위한 진지한 작업입니다.
내가 한 것은 교수인 그래프 이론의 최고의 전문가 중 한 사람에게 어떤 식으로든 도움을 요청한 것입니다. 그는 그것이 몇 주 안에 나에게 대답할 것이라고 말했다.
 
내가 한 것은 교수인 그래프 이론의 최고의 전문가 중 한 사람에게 어떤 식으로든 도움을 요청한 것입니다. 그는 그것이 몇 주 안에 나에게 대답할 것이라고 말했다.

나는 그가 Janet Six, Ph.D.보다 훨씬 더 많은 것을 말할 것이라고 의심합니다. :-)
하지만 그건 제 생각일 뿐입니다. 우리는 볼 것이다.

저에게 (이것은 제 의견입니다) Elliott Wave Theory(EWT)는 그래프 이론에 관한 것입니다. 또는 외환의 추가 가격 움직임은 엄격하게 수학적인 그래프 이론을 통해 설명될 수 있습니다.

나는 그렇게 생각하지 않는다. 이것이 사실이라면 Forex의 가격 움직임은 오래 전에 "엄격하게 수학적으로" 예측되었을 것입니다. 그러나 일반적으로 받아들여지는 의견은 정반대의 관점입니다. 어떤 수학도 가격 움직임을 정확하게 예측할 수 없습니다.

불행히도 저에게 EWT는 (저는 수학자가 아닙니다) 그리고 제 생각에 어떤 수학자에게도 진정한 수학 이론은 아닙니다. 그렇기 때문에 어느 파동이 그 이후인지 어느 순간에 확신할 수 있는 사람은 아무도 없습니다.
단순히 추측하는 것은 실제로 수학 이론이 아닙니다.

이에 전적으로 동의합니다. 그리고 그것이 Mandelbrot(순수 수학자)가 그의 기사에서 Eliott를 언급하는 것이 적절하지 않다고 생각한 이유라고 생각합니다. 그건 그렇고,이 기사에 대해 : 고등학교 수준에서 작성되었으므로 실용적이지 않습니다. 왜 그것을 전혀 쓰는가?

Eliott의 이론에 대한 IMHO. 5-3 웨이브 패턴은 시각적으로 고정될 수 있을 정도로 시장에서 자주 발생합니다. 이것은 분명히 엘리엇이 이에 대한 설명을 찾기에 충분했습니다. 불행히도 그가 제안한 것은 순전히 질적이며 또한 "심리학적" 설명입니다. 따라서 시장에서 무슨 일이 일어나고 있는지 알고 있는 듯한 인상을 주지만 거의 쓸모가 없습니다. 아아, 이것은 인상일 뿐입니다.

동일한 성공으로 비슷한 설명을 많이 할 수 있습니다. 예를 들어, 나는 단순하고 원시적이며 완전히 명백한 나만의 것을 제공합니다.
Min과 Max를 연결하는 깨진 지그재그(또는 그 반대)는 항상 ODD 수의 세그먼트를 갖습니다.
즉, Min-Max는 1개의 세그먼트(그러나 2개의 정점)이며,
최소-최대-최소-최대 - 3개의 세그먼트(단 4개의 정점),
Min-Max-Min-Max-Min-Max - 5개의 세그먼트(단, 6개의 정점) 등
상승 추세에서는 지그재그의 상승 횟수가 하락하는 단계의 수를 분명히 초과합니다.
가장 간단한 경우 중 하나에서 비율 5-3을 얻습니다. 하락추세일 때 - 3-5.
그리고 3-3 또는 5-5의 비율은 짐작할 수 있듯이 평평합니다.

가격 차트를 눈으로 본 사람들은 시장에 다양한 패턴이 있다는 것을 알고 있습니다. 5-3은 그 중 하나 일뿐입니다. 더욱이 어떤 패턴도 원칙적으로 불가능하다고 감히 말할 수 있는 사람은 아무도 없습니다. 그러나 옵션 3-1은 상승 추세에 대해 최소한이며 옵션 21-1 또는 예를 들어 21-19는 매우 가능성이 낮습니다. 따라서 5-3은 가능성이 가장 낮은 패턴입니다. 그리고 그 확률적이고 혼란스러운 성격을 이해하지 못하는 사람들만이 5-3과 3-5로 시장을 "확장"하려고 할 수 있습니다.

따라서 3번째 파동이 어디에 있고 5번째 파동이 어디에 있는지 인식하기 전에 다양한 패턴의 출현 빈도 분포를 계산해야 합니다. 그러나 이것은 어렵기 때문에 수행되지 않았습니다. 분포가 2차원으로 판명될 것이고, 지그재그 가격을 별도의 위아래 섹션으로 분할하는 알고리즘이 모호합니다. 또한 ZigZag조차도 서로 크게 다른 여러 가지 방식으로 구축 될 수 있습니다.

그러한 상황에서 어떤 "이론"에 대해 이야기할 수 있습니까? 엘리엇 파동이 있습니다. 나는 논쟁하지 않습니다. 그러나 이론은, 슬프게도, 아닙니다.

누군가가 나와 합리적으로 논쟁하도록 하십시오.
 
더 정확하게 정의하십시오.
나는 설명이 예측되지 않았다고 말했다.
 
더 정확하게 정의하십시오.
나는 설명이 예측되지 않았다고 말했다.


그렇지. 유일한 문제는 "더 정확한" 방법입니다. 이 정확도를 측정할 수 있다면 이야기할 것이 있습니다. 그렇지 않다면 우리는 다시 "질적" 토론의 수준을 유지합니다.

그리고 제 생각에 작업은 정확하게 예측하는 것입니다. 또한, 사전에 결정할 수 있는 알려진 정도의 확실성을 갖는 것이 바람직합니다. 그리고 무엇이든 설명할 수 있습니다. EWT는 시장을 아주 친절하게 설명합니다. 그러나 이러한 설명은 아직 엘리엇에게 우선권을 주지 않습니다.
 
지표를 약간 수정했습니다.

버전 3에서는 일본 엔이 포함된 통화 쌍의 하위 시간대에 행이 잘못 표시되는 오류가 수정되었습니다.
노란색으로 표시된 중앙선이 도입되었습니다. 빨강 및 녹색 수준의 산술 평균입니다. 사용과 관련하여 이 라인을 통과할 때 이미 수익성이 있는 빨간색 또는 녹색 수준에서 열린 위치에 추가할 수 있다는 가정이 있습니다. 시간이 지남에 따라 사용에 대한 다른 해석도 가능합니다.

//+------------------------------------------------------------------+
//|                                     AMPLITUDE_STAT_LEVELS_v3.mq4 |
//|                                        Copyright © 2006, Solandr |
//|                                                solandr99@mail.ru |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2006, Solandr"
#property link      "solandr99@mail.ru"
#property indicator_chart_window

//В версии 3 поправлена ошибка неверного отображения линий на младших таймфреймах валютных пар, с участием японской йены.
//Введена центральная линия, обозначаемая жёлтым цветом. Она является средним арифметическим значением красных и зелёных 
//уровней. По поводу её использования имеется предположение, что при прохождении этой линии можно добавляться к уже 
//прибыльной позиции, открытой на красных или зелёных уровнях. Хотя с течением времени возможно появление также и других 
//трактовок её использования.
//
//В версии 2 происходит относительный расчёт размахов в соответствии со средней ценой за 25 баров.
//В принципе при достаточном количестве баров истории это эквивалентно отношению среднеарифметического значения размаха
//к среднему значению цены на истории, умноженное затем на текущее среднее значение цены (например по последним 25 барам).
//Но решено оставить всё-таки более сложный алгоритм расчёта (нормировка каждого из значений амплитуд по текущей средней 
//цене), поскольку он наверное будет вполне уместен и в случаях когда баров истории совсем немного. 
//
//Версия 1. Первоначальный вариант индикатора.
//
// ============================================================================================
//"Купи подешевле, продай подороже" - основа, на которой базируется спекуляция на финансовых рынках. 
//Данный индикатор предлагает своё видение этих уровней "подешевле" и "подороже". Он основан на простом 
//статистическом расчёте размахов (амплитуд High-Low) баров по имеющейся истории котировок.
//Расчёт амплитуд происходит по сериям от 1 до 10 баров. То есть в выбранной серии на истории находитcя разница между 
//максимальным и минимальным значением цены. Далее окно серии смещается на 1 бар и получаем следующий размах амплитуды 
//баров для выбранной серии баров. После усреднения значения полученных размахов с учётом нормировки по среднему значению 
//цены на 25 барах мы имеем среднее арифметическое диапазона колебания цены для выбранной серии баров (а точнее его 
//нормированное значение). Это значение помещается в глобальные переменные терминала.
//
//Далее при расчёте текущих уровней из глобальных переменных терминала извлекается требуемое нормированное значение 
//диапазона колебаний и умножается на среднюю цену, вычисленную по последним 25 барам. Полученное таким образом значение 
//амплитуды откладывается на графике по следующему принципу. К минимуму текущей серии 
//баров прибавляется это вычисленное значение. Так мы получаем возможный среднестатистический максимум цены для текущей 
//серии баров. То же самое делаем для нахождения среднестатистического минимума для текущей серии баров. То есть от 
//максимума текущей серии баров отнимаем полученное значение амплитуды, посчитанное для данной серии баров по историческим 
//данным. Индикатор производит описанные выше действия для серий от 1 до 10 баров. На уровнях присутствуют надписи, 
//поясняющие для какого текущего временного промежутка построен данный уровень. С параметром TF_needed="AUTO" уровни 
//строятся для серий баров текущего таймфрейма. Если требуется зафиксировать уровни какого-то таймфрейма на остальных 
//периодах, то необходимо установить это значение в MN, W1, D1, H4, H1, M30, M15, M5, или в M1. Например для значения 
//TF_needed="D1" на всех периодах будут отображаться уровни для временных промежутков от 1 до 10 дней, обозначаемых 
//соответственно как D1,...,D10.
//
//При настройках по умолчанию индикатор производит перерасчёт среднестатистических амплитуд по истории один раз в день 
//с их внесением в глобальные переменные терминала. Если по какой-то причине (например импортирование дополнительных 
//котировок) требуется произвести перерасчёт среднеарифметических значений амплитуд для серий баров не дожидаясь 
//следующего дня, то необходимо установить force_recalculation=true и будет произведён перерасчёт среднеарифметических 
//значений размахов для серий баров при следующей инициализации индикатора. После проведения принудительного пересчёта 
//значение force_recalculation нужно вернуть в значение false для исключения постоянного пересчёта данных!
//
//Данный индикатор может быть полезен при принятии решений о входе в позицию. Может поспособствовать сохранению депозита
//особенно начинающих трейдеров. Продавайте на красных уровнях и покупайте на зелёных и за Вас будет играть математика! ;o))) 
//Если Вы например купили на зелёных уровнях и курс пошёл резко против Вас, то убыточную позицию есть смысл удерживать лишь 
//до тех пор пока красные уровни не окажутся ниже Вашей открытой позиции. И когда цена окажется на этих красных уровнях - 
//закройте убыточную позицию с минимальным убытком, а во многих случаях и с маленьким плюсом. Желаю успехов!:o)
// ============================================================================================

extern string TF_needed="AUTO";
extern bool force_recalculation=false;//принудительный перерасчёт

double average_price;
bool recalculation_needed=false;
bool aver_pr_recalc_needed=true;
int last_aver_pr_recalc_bars;
double delta[11];
string work_symbol;
int TF;

//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
{
   int i,k,all_bars,counter_counted_bars;
   string b_str,global_name;
   double average_price_array[10];
 
   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);
      ArrayResize(average_price_array,all_bars);
   
      //Рассчитываем массив средних цен для каждого расчётного момента времени на основе 25 баров
      for(k=all_bars-1;k>=0;k--) 
      {      
            average_price_array[k]=0;
            counter_counted_bars=0;
            for(i=k;i<=k+24;i++)//вычисляем среднюю цену на 25 барах
            {
               if(i<all_bars) 
               {
                  average_price_array[k]=average_price_array[k]+(iOpen(work_symbol,TF,i)+iHigh(work_symbol,TF,i)+iLow(work_symbol,TF,i)+iClose(work_symbol,TF,i))/4;
                  counter_counted_bars++;
               }
            }
            if(counter_counted_bars>0) average_price_array[k]=average_price_array[k]/counter_counted_bars;
      }
   
      for(i=1;i<=10;i++) delta[i]=0;
   
      for(i=1;i<=10;i++)
      {      
         for(k=all_bars-i;k>=0;k--) 
         {  
            if(average_price_array[k]>0) 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)))/average_price_array[k];
            else Print("average_price_array[",k,"]<=0 при i=",i," и k=",k);
         }
         delta[i]=delta[i]/(all_bars-i+1);   
         global_name=work_symbol+"_"+TF+"_"+i;
         GlobalVariableSet(global_name,delta[i]); 
         //Print("delta",i,"=",DoubleToStr(delta[i],8));
      } 
      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);       
   }
   
   b_str="centr_line";
   ObjectDelete(b_str); 
   
}   

//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
  {
   int i;
   string line_name;
   double buffer,c_line=0;
  
   /*
   for(i=iBars(work_symbol,TF)-1;i>=0;i--) average_price=average_price+(iOpen(work_symbol,TF,i)+iHigh(work_symbol,TF,i)+iLow(work_symbol,TF,i)+iClose(work_symbol,TF,i))/4;
   average_price=average_price/iBars(work_symbol,TF);
   Print("Средняя цена по всей выборке=",NormalizeDouble(average_price,Digits));
   average_price=0;
   */
   
   if(iBars(work_symbol,TF)!=last_aver_pr_recalc_bars) aver_pr_recalc_needed=true;
   
   if(aver_pr_recalc_needed)
   {  
      average_price=0;
      for(i=0;i<=24;i++) average_price=average_price+(iOpen(work_symbol,TF,i)+iHigh(work_symbol,TF,i)+iLow(work_symbol,TF,i)+iClose(work_symbol,TF,i))/4;
      average_price=average_price/25;
      aver_pr_recalc_needed=false;
      last_aver_pr_recalc_bars=iBars(work_symbol,TF);
   }
   //Print("average_price=",NormalizeDouble(average_price,Digits));
   
   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;
      
      buffer=iLow(NULL,TF,Lowest(work_symbol,TF,MODE_LOW,i,0))+delta[i]*average_price;      
      up_line(i,buffer,line_name);
      c_line=c_line+buffer;
      buffer=iHigh(NULL,TF,Highest(work_symbol,TF,MODE_HIGH,i,0))-delta[i]*average_price;
      down_line(i,buffer,line_name);
      c_line=c_line+buffer;      
   }
   
   c_line=c_line/20.0;
   centr_line(c_line);
   
   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);
}

int centr_line(double level)
{
   string b_str="centr_line";
   
   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, Yellow);
     ObjectSet(b_str, OBJPROP_RAY, true);
     ObjectSet(b_str, OBJPROP_WIDTH, 1);
     ObjectSet(b_str, OBJPROP_BACK, false);
     ObjectMove(b_str, 0, Time[1],  level);
   }
   else 
   {
      if(MathAbs(level-ObjectGet(b_str, OBJPROP_PRICE1))>0.9*Point) ObjectDelete(b_str);
   }
   
   return(0);
}
 


엘리엇 파동이 있습니다. 나는 논쟁하지 않습니다. 그러나 이론은, 슬프게도, 아닙니다.

누군가가 나와 합리적으로 논쟁하도록 하십시오.



왜요? 지그재그를 이용하여 어떻게 이론을 찾았는지 알 수 있습니다. 그리고 그들은 모든 것을 설명했습니다 :-)
지그재그 만 반대 방향으로 가격의 백분율 편차를 보여주는 지표 일뿐입니다. 동일한 성공으로 동일한 작업을 수행하는 tic-tac-toe를 사용할 수 있습니다. 이는 백분율이 아니라 절대값 입니다.
이미지를 비교하려면 최소한 identikit를 인식해야 하지만 지그재그에서는 이것이 문제가 됩니다.
Elliott는 12과에서 시작했고 Neely는 5-9장에서 시작했으며 6-1장에서는 훨씬 더 나은 결과를 얻었으며 Multipoints(모르는 동안)는 파도를 결정하는 방법을 보여주었습니다. 그리고 그것은 작동합니다. 나는 온라인으로 분 차트를 표시하려고 시도했고 아침부터 저녁까지 모든 것이 수렴했습니다. 무언가를 바꿔야 하는 경우는 드뭅니다. 듀스가 조금 내려가서 스트레치된 써드의 여러 터치를 수정한 후 채널(추세선)이 있습니다.
사유: