una strategia di trading basata sulla teoria dell'onda di Elliott - pagina 64
Ti stai perdendo delle opportunità di trading:
- App di trading gratuite
- Oltre 8.000 segnali per il copy trading
- Notizie economiche per esplorare i mercati finanziari
Registrazione
Accedi
Accetti la politica del sito e le condizioni d’uso
Se non hai un account, registrati
E sto gradualmente propendendo per questo punto di vista. Qualcosa resta da chiarire, cioè. Supponiamo, ragionando per analogia, che Close[] sia il livello dell'acqua in un serbatoio. Non abbiamo modo di misurare l'afflusso esatto (piogge, numerosi fiumi, ecc.), ma stimeremo l'afflusso, in base al livello.
Quando il livello dell'acqua aumenta, tutto è chiaro - l'afflusso sarà una differenza positiva. Ma se abbiamo iniziato l'osservazione in un'estate secca e di conseguenza - valori negativi della variazione del livello. Dopotutto, una diminuzione del livello non significa che non ci sia stato un afflusso, ma solo che ne è uscito più di quanto sia affluito. L'afflusso medio dovrebbe essere uguale al volume rilasciato dal bacino ogni anno. Ancora una volta emerge una certa ciclicità.
Voglio chiarire qual è il metodo corretto da prendere come afflusso per il mio caso:
- Solo la differenza
- Solo la differenza modulo
- Solo la differenza positiva
Intuitivamente, capisco che la cosa principale è determinare correttamente l'afflusso.
Dubito anche che ci sia una correlazione tra Close[] e Close[i]-Close[i+1]. Una volta ho cercato di trovarlo usando metodi DSP (come test, stavo debuggando le funzioni per determinare la correlazione e l'autocorrelazione dei segnali al momento), il risultato del calcolo - non correlato in alcun modo. Questo, in generale, può essere visto ad occhio nudo, se si osserva la forma del segnale. Ma questi sono metodi DSP, potrebbe non essere logico usarli in questo caso.
Inoltre, non si può ricostruire la serie originale da Close[i]-Close[i+1] da sola - l'informazione necessaria è semplicemente persa, e il calcolo di Hearst è eseguito, in effetti, da una serie diversa da quella originale.
-Solo la differenza
- differenza modulo
- unica differenza positiva
Intuitivamente, capisco che la cosa principale è determinare correttamente l'afflusso.
Dubito anche che ci sia una correlazione tra Close[] e Close[i]-Close[i+1].
...
Inoltre, non si può ricostruire la serie originale da Close[i]-Close[i+1] da sola - l'informazione necessaria è semplicemente persa, e il calcolo di Hearst è eseguito, in effetti, da una serie diversa da quella originale.
Io prenderei solo la differenza. Inoltre, se hai una buona ragione, non dire che non puoi usarla :)
http://forex.kbpauk.ru/showflat.php/Cat/0/Number/120077/an/0/page/0#Post120077
E non sono un "digitalizzatore" professionista. Tre mesi fa mi sono imbattuto in un articolo che elogiava l'uso del DSP nel trading. L'ho trovato interessante e ho deciso di fare un set di base di filtri digitali. Bene, è stato fatto. Andò in una libreria, scelse due libri più spessi e li comprò. Dopo aver letto le prime 200 pagine del primo libro che ho incontrato, l'ho chiuso e, mormorando parolacce, sono andato a prendere il polveroso libro di matematica in due volumi.
Ero interessato non a comprare un prodotto già pronto (ho abbastanza soldi per quello), ma a farne uno mio, supponendo che studiando questo campo - appariranno nuove idee. E così è successo. In 3 mesi, senza distrazioni, ho ottenuto quello che volevo: indicatori basati su DSP e un sacco di idee.
Ma la perfezione non conosce confini....) :о))) Voglio chiedere a dei professionisti (è più veloce o me lo procurerò da solo, ma più tardi) di definire alcune specifiche dei filtri esistenti e scrivere un filtro veramente adattivo.
Da quello che viene offerto - nessuno li ha, voglio dire nessun filtro adattivo.
PS: E arriverò presto a spectra :o))))
Io prenderei solo la differenza.
...
Sto pensando la stessa cosa. Sono un sacco di dati giusti, beh... quasi giusti.
- Indicatori basati su DSP e un mucchio di idee.
......
Da quello che c'è in offerta - nessuno li ha, voglio dire nessun filtro adattivo.
PS: E arriverò presto a spectra :o))))
Eccomi qui, credo nel DSP e "non sono un "digitalizzatore" professionale"
uso questo:
"Package for technical analysis by digital filtering methods
Sviluppato grazie a Keny (Oleg, Krasnoyarsk, unclekenny@yandex.ru) e
Goodman (Zyabrev Ilya, Mosca, info@goodman.ru)
Aiuto nei test - Tsygankov Andrey gypsy@mail.ru, Elizarov Oleg TOPpoint@yandex.ru
Distribuito gratuitamente secondo i principi "AS-IS".
Si prega di informare l'autore di tutte le osservazioni e gli errori".
e c'è un'idea non realizzata su come ottimizzare i filtri al volo:
Non c'è niente di nuovo. Questo è stato fatto manualmente centinaia di volte, ma come automatizzarlo? -
Sto parlando di FATL SATL (FATL-SATL, FATL SATL CD ...) e regolando i loro parametri
manualmente utilizzando l'analizzatore di spettro (incluso nel pacchetto).
È necessaria una libreria che esegua l'analisi dello spettro, dando in uscita periodi di
massima densità del segnale (serie temporale). Analizzando questi dati
per diversi frammenti di serie temporali si può cercare di indovinare periodi, fasi, coefficienti ponderati (ampiezze) delle componenti armoniche (come? Non lo so ancora)
Più componenti armoniche possono essere determinate, più è probabile prevedere lo sviluppo delle serie. Questo è tutto.
Yeshe. Se la previsione differisce molto dalla realtà, possiamo supporre la reazione
del mercato alle notizie forti. Questo è tutto.
Non è un programmatore e non è un matematico. :)
Questo ramo è chiaramente al di là delle mie capacità. Lo sto masticando da una settimana ormai. :(
Due screenshot fatti con una sola differenza nell'impostazione della versione di calcolo (OldVersion: true e false)
Potete vedere che la vecchia versione mostra i livelli abituali, mentre la nuova mostra un fallimento con gli stessi parametri - livelli "appiccicosi" di Murray. Può commentare questa situazione? I livelli Murray "messi insieme" nella nuova versione dell'indicatore sono solo un fallimento tecnico o hanno un significato più profondo? Per esempio, oggi non possono esistere livelli Murray a causa del movimento più forte e dovremmo solo aspettare che siano calcolati correttamente per esempio lunedì e poi possiamo decidere di entrare nel mercato? E oggi, per esempio, se non siete riusciti a entrare ieri, sarebbe meglio rimanere fuori dal mercato? Mi piacerebbe sentire la vostra opinione su questo argomento.
PS: Ma ora con la nuova barra la nuova versione ha iniziato a visualizzare gli stessi livelli di Murray della vecchia. Probabilmente si tratta di qualche errore tecnico della nuova versione di calcolo dei livelli di Murray.
PPS: Sono arrivate un paio di barre in più e i livelli nella nuova versione sono di nuovo bloccati insieme.
dove posso vederlo?
google è silenzioso
...............................................
PS: Ma ora con l'arrivo della nuova barra e la nuova versione ha cominciato a mostrare gli stessi livelli di Murray della vecchia. Probabilmente si tratta di qualche errore tecnico della nuova versione del calcolo dei livelli di Murray.
PPS: Sono arrivate un paio di barre in più e i livelli nella nuova versione sono di nuovo bloccati insieme.
Strano - lo terrò d'occhio - naturalmente non dovrebbe essere così. Devo controllare l'inizializzazione degli array.
In realtà non ce l'ho, ma non lo uso come indicatore separato - ho solo costruito il codice nell'Expert Advisor.
HH Ho trovato un altro posto dove c'era un errore di battitura. Avevi ragione - l'errore è tecnico. Ecco il codice corretto:
i//+------------------------------------------------------------------+ //| MMLevls_VG.mq4 | //| Copyright © 2006, Vladislav Goshkov (VG). | //| 4vg@mail.ru | //| Many thanks to Tim Kruzel | //+------------------------------------------------------------------+ #property copyright "Vladislav Goshkov (VG)." #property link "4vg@mail.ru" #property indicator_chart_window // ============================================================================================ // * Линии 8/8 и 0/8 (Окончательное сопротивление). // * Эти линии самые сильные и оказывают сильнейшие сопротивления и поддержку. // ============================================================================================ //* Линия 7/8 (Слабая, место для остановки и разворота). Weak, Stall and Reverse //* Эта линия слаба. Если цена зашла слишком далеко и слишком быстро и если она остановилась около этой линии, //* значит она развернется быстро вниз. Если цена не остановилась около этой линии, она продолжит движение вверх к 8/8. // ============================================================================================ //* Линия 1/8 (Слабая, место для остановки и разворота). Weak, Stall and Reverse //* Эта линия слаба. Если цена зашла слишком далеко и слишком быстро и если она остановилась около этой линии, //* значит она развернется быстро вверх. Если цена не остановилась около этой линии, она продолжит движение вниз к 0/8. // ============================================================================================ //* Линии 6/8 и 2/8 (Вращение, разворот). Pivot, Reverse //* Эти две линии уступают в своей силе только 4/8 в своей способности полностью развернуть ценовое движение. // ============================================================================================ //* Линия 5/8 (Верх торгового диапазона). Top of Trading Range //* Цены всех рынков тратят 40% времени, на движение между 5/8 и 3/8 линиями. //* Если цена двигается около линии 5/8 и остается около нее в течении 10-12 дней, рынок сказал что следует //* продавать в этой «премиальной зоне», что и делают некоторые люди, но если цена сохраняет тенденцию оставаться //* выше 5/8, то она и останется выше нее. Если, однако, цена падает ниже 5/8, то она скорее всего продолжит //* падать далее до следующего уровня сопротивления. // ============================================================================================ //* Линия 3/8 (Дно торгового диапазона). Bottom of Trading Range //* Если цены ниже этой лини и двигаются вверх, то цене будет сложно пробить этот уровень. //* Если пробивают вверх эту линию и остаются выше нее в течении 10-12 дней, значит цены останутся выше этой линии //* и потратят 40% времени двигаясь между этой линией и 5/8 линией. // ============================================================================================ //* Линия 4/8 (Главная линия сопротивления/поддержки). Major Support/Resistance //* Эта линия обеспечивает наибольшее сопротивление/поддержку. Этот уровень является лучшим для новой покупки или продажи. //* Если цена находится выше 4/8, то это сильный уровень поддержки. Если цена находится ниже 4/8, то это прекрасный уровень //* сопротивления. // ============================================================================================ extern bool OldVersion = false; extern int P = 90; extern int MMPeriod = 1440; extern int StepBack = 0; extern color mml_clr_m_2_8 = White; // [-2]/8 extern color mml_clr_m_1_8 = White; // [-1]/8 extern color mml_clr_0_8 = Aqua; // [0]/8 extern color mml_clr_1_8 = Yellow; // [1]/8 extern color mml_clr_2_8 = Red; // [2]/8 extern color mml_clr_3_8 = Green; // [3]/8 extern color mml_clr_4_8 = Blue; // [4]/8 extern color mml_clr_5_8 = Green; // [5]/8 extern color mml_clr_6_8 = Red; // [6]/8 extern color mml_clr_7_8 = Yellow; // [7]/8 extern color mml_clr_8_8 = Aqua; // [8]/8 extern color mml_clr_p_1_8 = White; // [+1]/8 extern color mml_clr_p_2_8 = White; // [+2]/8 extern int mml_wdth_m_2_8 = 2; // [-2]/8 extern int mml_wdth_m_1_8 = 1; // [-1]/8 extern int mml_wdth_0_8 = 2; // [0]/8 extern int mml_wdth_1_8 = 1; // [1]/8 extern int mml_wdth_2_8 = 1; // [2]/8 extern int mml_wdth_3_8 = 1; // [3]/8 extern int mml_wdth_4_8 = 2; // [4]/8 extern int mml_wdth_5_8 = 1; // [5]/8 extern int mml_wdth_6_8 = 1; // [6]/8 extern int mml_wdth_7_8 = 1; // [7]/8 extern int mml_wdth_8_8 = 2; // [8]/8 extern int mml_wdth_p_1_8 = 1; // [+1]/8 extern int mml_wdth_p_2_8 = 2; // [+2]/8 extern color MarkColor = Blue; extern int MarkNumber = 217; double dmml = 0, dvtl = 0, sum = 0, v1 = 0, v2 = 0, mn = 0, mx = 0, x1 = 0, x2 = 0, x3 = 0, x4 = 0, x5 = 0, x6 = 0, y1 = 0, y2 = 0, y3 = 0, y4 = 0, y5 = 0, y6 = 0, octave = 0, fractal = 0, range = 0, finalH = 0, finalL = 0, mml[13]; string ln_txt[13], buff_str = ""; int bn_Lo = -1, bn_Hi = -1, extr_bn_Lo = -1, extr_bn_Hi = -1, OctLinesCnt = 13, mml_thk = 8, mml_clr[13], mml_wdth[13], mml_shft = 35, nT = 0, nB = 0, nP = 0, nDigits = 0, i = 0; int NewPeriod=0; int CurPeriod=0; //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int init() { //---- indicators CurPeriod=Period(); if(MMPeriod>CurPeriod) NewPeriod = P*MathCeil(MMPeriod/CurPeriod); else NewPeriod = P; ln_txt[0] = "[-2/8]P";// "extremely overshoot [-2/8]";// [-2/8] ln_txt[1] = "[-1/8]P";// "overshoot [-1/8]";// [-1/8] ln_txt[2] = "[0/8]P";// "Ultimate Support - extremely oversold [0/8]";// [0/8] ln_txt[3] = "[1/8]P";// "Weak, Stall and Reverse - [1/8]";// [1/8] ln_txt[4] = "[2/8]P";// "Pivot, Reverse - major [2/8]";// [2/8] ln_txt[5] = "[3/8]P";// "Bottom of Trading Range - [3/8], if 10-12 bars then 40% Time. BUY Premium Zone";//[3/8] ln_txt[6] = "[4/8]P";// "Major Support/Resistance Pivotal Point [4/8]- Best New BUY or SELL level";// [4/8] ln_txt[7] = "[5/8]P";// "Top of Trading Range - [5/8], if 10-12 bars then 40% Time. SELL Premium Zone";//[5/8] ln_txt[8] = "[6/8]P";// "Pivot, Reverse - major [6/8]";// [6/8] ln_txt[9] = "[7/8]P";// "Weak, Stall and Reverse - [7/8]";// [7/8] ln_txt[10] = "[8/8]P";// "Ultimate Resistance - extremely overbought [8/8]";// [8/8] ln_txt[11] = "[+1/8]P";// "overshoot [+1/8]";// [+1/8] ln_txt[12] = "[+2/8]P";// "extremely overshoot [+2/8]";// [+2/8] //mml_shft = 3; mml_thk = 3; // Начальная установка цветов уровней октав и толщины линий mml_clr[0] = mml_clr_m_2_8; mml_wdth[0] = mml_wdth_m_2_8; // [-2]/8 mml_clr[1] = mml_clr_m_1_8; mml_wdth[1] = mml_wdth_m_1_8; // [-1]/8 mml_clr[2] = mml_clr_0_8; mml_wdth[2] = mml_wdth_0_8; // [0]/8 mml_clr[3] = mml_clr_1_8; mml_wdth[3] = mml_wdth_1_8; // [1]/8 mml_clr[4] = mml_clr_2_8; mml_wdth[4] = mml_wdth_2_8; // [2]/8 mml_clr[5] = mml_clr_3_8; mml_wdth[5] = mml_wdth_3_8; // [3]/8 mml_clr[6] = mml_clr_4_8; mml_wdth[6] = mml_wdth_4_8; // [4]/8 mml_clr[7] = mml_clr_5_8; mml_wdth[7] = mml_wdth_5_8; // [5]/8 mml_clr[8] = mml_clr_6_8; mml_wdth[8] = mml_wdth_6_8; // [6]/8 mml_clr[9] = mml_clr_7_8; mml_wdth[9] = mml_wdth_7_8; // [7]/8 mml_clr[10] = mml_clr_8_8; mml_wdth[10]= mml_wdth_8_8; // [8]/8 mml_clr[11] = mml_clr_p_1_8; mml_wdth[11]= mml_wdth_p_1_8; // [+1]/8 mml_clr[12] = mml_clr_p_2_8; mml_wdth[12]= mml_wdth_p_2_8; // [+2]/8 //---- return(0); } //+------------------------------------------------------------------+ //| Custor indicator deinitialization function | //+------------------------------------------------------------------+ int deinit() { //---- TODO: add your code here Comment(" "); for(i=0;i<OctLinesCnt;i++) { buff_str = "mml"+i; ObjectDelete(buff_str); buff_str = "mml_txt"+i; ObjectDelete(buff_str); } //---- return(0); } //+------------------------------------------------------------------+ //| Custom indicator iteration function | //+------------------------------------------------------------------+ //========================================================================= int FindeExtrHi_bn(int n_bg, int n_nd ){ int ext_bn = -1; double ext_Hi = -10000000000000000000.0; int k = 0; int stop_bn = -1; int start_bn = -1; int cur_bn = n_bg; //Print(" FindeExtrHi_bn : n_bg = ", n_bg," n_nd = ", n_nd); if(n_bg<n_nd){ start_bn = n_bg+1; stop_bn = n_nd; //Print(" FindeExtrHi_bn (n_bg<n_nd): start_bn = ", start_bn," stop_bn = ", stop_bn); for(int j=start_bn;j<stop_bn;j++){ if( (High[j]>High[j+1])&&(High[j]>High[j-1])&&(High[j]>ext_Hi) ){ ext_bn = j; ext_Hi = High[j]; } }//for(int j=start_bn;j<stop_bn;j++){ }//if(n_bg<n_nd){ if(n_bg>n_nd){ start_bn = n_bg; stop_bn = n_nd+1; //Print(" FindeExtrHi_bn (n_bg>n_nd): start_bn = ", start_bn," stop_bn = ", stop_bn); for( j=start_bn;j>stop_bn;j--){ if( (High[j]>High[j+1])&&(High[j]>High[j-1])&&(High[j]>ext_Hi) ){ ext_bn = j; ext_Hi = High[j]; } }//for(int j=start_bn;j>stop_bn;j--){ }//if(n_bg>n_nd){ //Print(" FindeExtrHi_bn:=> ext_bn = ",ext_bn); return(ext_bn); } //========================================================================= int FindeExtrLo_bn(int n_bg, int n_nd ){ int ext_bn = -1; double ext_Lo = 10000000000000000000.0; int stop_bn = -1; int start_bn = -1; int cur_bn = n_bg; //Print(" FindeExtrLo_bn : n_bg = ", n_bg," n_nd = ", n_nd); if(n_bg<n_nd){ start_bn = n_bg+1; stop_bn = n_nd; //Print(" FindeExtrLo_bn (n_bg<n_nd): start_bn = ", start_bn," stop_bn = ", stop_bn); for(int j=start_bn;j<stop_bn;j++){ if( (Low[j]<Low[j+1])&&(Low[j]<Low[j-1])&&(Low[j]<ext_Lo) ){ ext_bn = j; ext_Lo = Low[j]; } }//for(int j=start_bn;j<stop_bn;j++){ }//if(n_bg<n_nd){ if(n_bg>n_nd){ start_bn = n_bg; stop_bn = n_nd+1; //Print(" FindeExtrLo_bn (n_bg>n_nd): start_bn = ", start_bn," stop_bn = ", stop_bn); for( j=start_bn;j>stop_bn;j--){ if( (Low[j]<Low[j+1])&&(Low[j]<Low[j-1])&&(Low[j]<ext_Lo) ){ ext_bn = j; ext_Lo = Low[j]; } }//for(int j=start_bn;j>stop_bn;j--){ }//if(n_bg>n_nd){ //Print(" FindeExtrLo_bn:=> ext_bn = ",ext_bn); return(ext_bn); } int start() { //---- TODO: add your code here if( (nT!=Time[0])||(nP!=Period())||(nB!=Bars) ) { CurPeriod=Period(); if(MMPeriod>CurPeriod) NewPeriod = P*MathCeil(MMPeriod/CurPeriod); else NewPeriod = P; //price //Print("MMLevls : NewPeriod = ",NewPeriod); if(OldVersion){ bn_Lo = Lowest(NULL,0,MODE_LOW,NewPeriod,StepBack); bn_Hi = Highest(NULL,0,MODE_HIGH,NewPeriod,StepBack); } else {// if(OldVersion){ extr_bn_Lo = FindeExtrLo_bn(NewPeriod+StepBack,StepBack); extr_bn_Hi = FindeExtrHi_bn(NewPeriod+StepBack,StepBack); if(extr_bn_Lo>=0){ bn_Lo = extr_bn_Lo; //Print("MMLevls : 1 bn_Lo = ",bn_Lo); for(int k=0;k<1;k++){ if(Low[k]<Low[extr_bn_Lo]) { bn_Lo = k; break; } } //Print("MMLevls : 2 bn_Lo = ",bn_Lo); } else bn_Lo = Lowest(NULL,0,MODE_LOW,NewPeriod,StepBack); if(extr_bn_Hi>=0){ bn_Hi = extr_bn_Hi; for(k=0;k<1;k++){ if(High[k]>High[extr_bn_Hi]) {//ошибка была здесь bn_Hi = k; // И здесь была описка break; } } } else bn_Hi = Highest(NULL,0,MODE_HIGH,NewPeriod,StepBack); // Пусть будет на всякий случай :). if(High[bn_Hi]<Low[bn_Lo]){ //Print("MM ??? HiLo :High[",bn_Hi,"] = ",High[bn_Hi]," Low",bn_Lo,"] = ",Low[bn_Lo]); bn_Lo = Lowest(NULL,0,MODE_LOW,NewPeriod,StepBack); bn_Hi = Highest(NULL,0,MODE_HIGH,NewPeriod,StepBack); } }//} else {// if(OldVersion){ //Print("MMLevls : Low[",bn_Lo,"] = ",Low[bn_Lo]," High[",bn_Hi,"] = ",High[bn_Hi]); v1 = Low[bn_Lo]; v2 = High[bn_Hi]; //determine fractal..... if( v2<=250000 && v2>25000 ) fractal=100000; else if( v2<=25000 && v2>2500 ) fractal=10000; else if( v2<=2500 && v2>250 ) fractal=1000; else if( v2<=250 && v2>25 ) fractal=100; else if( v2<=25 && v2>12.5 ) fractal=12.5; else if( v2<=12.5 && v2>6.25) fractal=12.5; else if( v2<=6.25 && v2>3.125 ) fractal=6.25; else if( v2<=3.125 && v2>1.5625 ) fractal=3.125; else if( v2<=1.5625 && v2>0.390625 ) fractal=1.5625; else if( v2<=0.390625 && v2>0) fractal=0.1953125; range=(v2-v1); //Print(" v2 = ",v2," v1 = ",v1," range = ",range ); sum=MathFloor(MathLog(fractal/range)/MathLog(2)); octave=fractal*(MathPow(0.5,sum)); mn=MathFloor(v1/octave)*octave; if( (mn+octave)>v2 ) mx=mn+octave; else mx=mn+(2*octave); // calculating xx //x2 if( (v1>=(3*(mx-mn)/16+mn)) && (v2<=(9*(mx-mn)/16+mn)) ) x2=mn+(mx-mn)/2; else x2=0; //x1 if( (v1>=(mn-(mx-mn)/8))&& (v2<=(5*(mx-mn)/8+mn)) && (x2==0) ) x1=mn+(mx-mn)/2; else x1=0; //x4 if( (v1>=(mn+7*(mx-mn)/16))&& (v2<=(13*(mx-mn)/16+mn)) ) x4=mn+3*(mx-mn)/4; else x4=0; //x5 if( (v1>=(mn+3*(mx-mn)/8))&& (v2<=(9*(mx-mn)/8+mn))&& (x4==0) ) x5=mx; else x5=0; //x3 if( (v1>=(mn+(mx-mn)/8))&& (v2<=(7*(mx-mn)/8+mn))&& (x1==0) && (x2==0) && (x4==0) && (x5==0) ) x3=mn+3*(mx-mn)/4; else x3=0; //x6 if( (x1+x2+x3+x4+x5) ==0 ) x6=mx; else x6=0; finalH = x1+x2+x3+x4+x5+x6; // calculating yy //y1 if( x1>0 ) y1=mn; else y1=0; //y2 if( x2>0 ) y2=mn+(mx-mn)/4; else y2=0; //y3 if( x3>0 ) y3=mn+(mx-mn)/4; else y3=0; //y4 if( x4>0 ) y4=mn+(mx-mn)/2; else y4=0; //y5 if( x5>0 ) y5=mn+(mx-mn)/2; else y5=0; //y6 if( (finalH>0) && ((y1+y2+y3+y4+y5)==0) ) y6=mn; else y6=0; finalL = y1+y2+y3+y4+y5+y6; for( i=0; i<OctLinesCnt; i++) { mml[i] = 0; } dmml = (finalH-finalL)/8; //Print("MMLevls : NewPeriod = ",NewPeriod," dmml = ",dmml," finalL = ",finalL); mml[0] =(finalL-dmml*2); //-2/8 for( i=1; i<OctLinesCnt; i++) { mml[i] = mml[i-1] + dmml; } for( i=0; i<OctLinesCnt; i++ ){ buff_str = "mml"+i; if(ObjectFind(buff_str) == -1) { ObjectCreate(buff_str, OBJ_HLINE, 0, Time[0], mml[i]); ObjectSet(buff_str, OBJPROP_STYLE, STYLE_SOLID); ObjectSet(buff_str, OBJPROP_COLOR, mml_clr[i]); ObjectSet(buff_str, OBJPROP_WIDTH, mml_wdth[i]); ObjectMove(buff_str, 0, Time[0], mml[i]); } else { ObjectMove(buff_str, 0, Time[0], mml[i]); } buff_str = "mml_txt"+i; if(ObjectFind(buff_str) == -1) { ObjectCreate(buff_str, OBJ_TEXT, 0, Time[mml_shft], mml_shft); ObjectSetText(buff_str, ln_txt[i], 8, "Arial", mml_clr[i]); ObjectMove(buff_str, 0, Time[mml_shft], mml[i]); } else { ObjectMove(buff_str, 0, Time[mml_shft], mml[i]); } } // for( i=1; i<=OctLinesCnt; i++ ){ string buff_str = "LR_LatestCulcBar"; if(ObjectFind(buff_str) == -1) { ObjectCreate(buff_str, OBJ_ARROW,0, Time[StepBack], Low[StepBack]-2*Point ); ObjectSet(buff_str, OBJPROP_ARROWCODE, MarkNumber); ObjectSet(buff_str, OBJPROP_COLOR, MarkColor); } else { ObjectMove(buff_str, 0, Time[StepBack], Low[StepBack]-2*Point ); } nT = Time[0]; nB = Bars; nP = Period(); }//if( (nT!=Time[0])||(nP!=Period())||(nB!=Bars) ) { //---- End Of Program return(0); } //+------------------------------------------------------------------+Buona fortuna e buone tendenze.
Davvero la correzione di un altro errore ha eliminato il problema, poiché solo la versione originale di aggiungere codice all'inizio di start() non ha risolto il problema e stavo per inviarti citazioni e screenshot per riprodurre il problema sul tuo computer. Ma ora non è necessario perché avete risolto completamente il problema a giudicare dalla mia osservazione dell'ultimo codice corretto. Sposterò il nuovo codice corretto nel mio Expert Advisor.
Grazie mille per la rapida soluzione del problema!!!
Ce n'è anche uno a pagamento di Finware. non l'ho provato