Ticaret fırsatlarını kaçırıyorsunuz:
- Ücretsiz ticaret uygulamaları
- İşlem kopyalama için 8.000'den fazla sinyal
- Finansal piyasaları keşfetmek için ekonomik haberler
Kayıt
Giriş yap
Gizlilik ve Veri Koruma Politikasını ve MQL5.com Kullanım Şartlarını kabul edersiniz
Hesabınız yoksa, lütfen kaydolun
Tekil spektrum analizi (SSA), bir uç nokta versiyonu olmadığı sürece yeniden hesaplar. Bu gösterge "normal" SSA kullandığından, aynı zamanda yeniden hesaplar
Korkarım ki koddan niyetinizin ne olduğunu göremiyorum
Seviyeli ortalamalar elde etmeye çalışıyorsanız, şablon olarak gönderdiğimi kullanın.
Merhaba,
evet ileri seviyeli ma'nızı kullanacağım,(daha fazla fiyatı var vs. renkli ma vs..)
ama özel göstergelerin nasıl oluşturulacağını anlamak için kendi başıma bir tane oluşturmaya çalıştım,
benim fikrim aynı bileşeni oluşturmaktır (temelde 2 seviyeli bir MA ..)
Seviyelerle aynı etkiyi vermek için merkezi bir MA ve nokta çizgileri kullanılarak çizilen 2 MA daha kullanıyorum ...
her seviye için arabelleği hesaplama olayını kullanarak dolduruyorum... bana söylediğin gibi, ama bir şeyler yanlış ;-(
seviyeyi simüle eden 2 MA dikey olarak kaydırılacak... ama çalışmıyor
Merhaba,
evet ileri seviyeli ma'nızı kullanacağım,(daha fazla fiyatı var vs. renkli ma vs..)
ama özel göstergelerin nasıl oluşturulacağını anlamak için kendi başıma bir tane oluşturmaya çalıştım,
benim fikrim aynı bileşeni oluşturmaktır (temelde 2 seviyeli bir MA ..)
Seviyelerle aynı etkiyi vermek için merkezi bir MA ve nokta çizgileri kullanılarak çizilen 2 MA daha kullanıyorum ...
her seviye için arabelleği hesaplama olayını kullanarak dolduruyorum... bana söylediğin gibi, ama bir şeyler yanlış ;-(
seviyeyi simüle eden 2 MA dikey olarak kaydırılacak... ama çalışmıyor
Evet, demek istediğim buydu
Olay olabildiğince basit:
Ortalama hesaplamasında veya başka bir şeyde herhangi bir şeyi değiştirmeye gerek yoktur: sadece merkezi (ma) tampondan basit bir toplama veya çıkarma
double pipLevel1 = - 10 ;
double pipLevel2 = 10 ;
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
void OnInit ()
{
//--- indicator buffers mapping
SetIndexBuffer ( 0 ,ExtLineBuffer, INDICATOR_DATA ); //MA Buffer
SetIndexBuffer ( 1 ,ExtLv1Buffer, INDICATOR_DATA ); //MA lv1 Buffer
SetIndexBuffer ( 2 ,ExtLv2Buffer, INDICATOR_DATA ); //MA lv2 Buffer
//--- set accuracy
IndicatorSetInteger ( INDICATOR_DIGITS , _Digits + 1 );
//--- sets first bar from what index will be drawn
PlotIndexSetInteger ( 0 , PLOT_LINE_STYLE , STYLE_SOLID ); //MA Style
PlotIndexSetInteger ( 1 , PLOT_LINE_STYLE , STYLE_DOT ); //MA lvl1 Style
PlotIndexSetInteger ( 2 , PLOT_LINE_STYLE , STYLE_DOT ); //MA lvl2 Style
//IndicatorSetInteger(INDICATOR_LEVELS,1,InpLevel1); //MA lvl1 Value
//IndicatorSetInteger(INDICATOR_COLOR2,1,Cyan);
//IndicatorSetInteger(INDICATOR_STYLE2,1,STYLE_DOT);
//IndicatorSetInteger(INDICATOR_IDTH,1,1);
//IndicatorSetInteger(INDICATOR_LEVELS,2,InpLevel2); //MA lvl2 Value
//IndicatorSetInteger(INDICATOR_LEVELCOLOR,2,Cyan);
//IndicatorSetInteger(INDICATOR_LEVELSTYLE,2,STYLE_DOT);
//IndicatorSetInteger(INDICATOR_LEVELWIDTH,2,1);
PlotIndexSetInteger ( 0 , PLOT_DRAW_BEGIN ,InpMAPeriod); //MA
PlotIndexSetInteger ( 1 , PLOT_DRAW_BEGIN ,InpMAPeriod); //MA lvl1
PlotIndexSetInteger ( 2 , PLOT_DRAW_BEGIN ,InpMAPeriod); //MA lvl2
//---- line shifts when drawing
PlotIndexSetInteger ( 0 , PLOT_SHIFT ,InpMAShift); //MA
PlotIndexSetInteger ( 1 , PLOT_SHIFT ,InpMAShift); //MA lvl1
PlotIndexSetInteger ( 2 , PLOT_SHIFT ,InpMAShift); //MA lvl2
//--- name for DataWindow
string short_name= "unknown ma" ;
switch (InpMAMethod)
{
case MODE_EMA : short_name= "EMA" ; break ;
case MODE_LWMA : short_name= "LWMA" ; break ;
case MODE_SMA : short_name= "SMA" ; break ;
case MODE_SMMA : short_name= "SMMA" ; break ;
}
IndicatorSetString ( INDICATOR_SHORTNAME ,short_name+ "(" + string (InpMAPeriod)+ ")" );
//---- sets drawing line empty value--
PlotIndexSetDouble ( 0 , PLOT_EMPTY_VALUE , 0.0 ); //MA
PlotIndexSetDouble ( 1 , PLOT_EMPTY_VALUE , 0.0 ); //MA lvl1
PlotIndexSetDouble ( 2 , PLOT_EMPTY_VALUE , 0.0 ); //MA lvl2
//---- initialization done
}
//+------------------------------------------------------------------+
//| Moving Average |
//+------------------------------------------------------------------+
int OnCalculate ( const int rates_total,
const int prev_calculated,
const int begin,
const double &price[])
{
double pipMultiplier= _Point * MathPow ( 10 , MathMod ( _Digits , 2 ));
pipLevel1 = InpLevel1 * pipMultiplier;
pipLevel2 = InpLevel2 * pipMultiplier;
//Print("point:"+_Point+" Digits:"+_Digits+ "pipMul:"+pipMultiplier);
//pipLevel1 = InpLevel1 / 10;
//pipLevel2 = InpLevel2 / 10;
//--- check for bars count
if (rates_total<InpMAPeriod- 1 +begin)
return ( 0 ); // not enough bars for calculation
//--- first calculation or number of bars was changed
if (prev_calculated== 0 )
{
ArrayInitialize (ExtLineBuffer, 0 ); //MA
ArrayInitialize (ExtLv1Buffer, 1 ); //MA level1
ArrayInitialize (ExtLv2Buffer, 2 ); //MA level2
}
//--- sets first bar from what index will be draw
PlotIndexSetInteger ( 0 , PLOT_DRAW_BEGIN ,InpMAPeriod- 1 +begin); //MA
PlotIndexSetInteger ( 1 , PLOT_DRAW_BEGIN ,InpMAPeriod- 1 +begin); //MA lvl1
PlotIndexSetInteger ( 2 , PLOT_DRAW_BEGIN ,InpMAPeriod- 1 +begin); //MA lvl2
//--- calculation
switch (InpMAMethod)
{
case MODE_EMA :
CalculateEMA(rates_total,prev_calculated,begin,price);
ExtLv1Buffer[rates_total- 1 ]=price[rates_total- 1 ]+pipLevel1;
ExtLv2Buffer[rates_total- 1 ]=price[rates_total- 1 ]+pipLevel2;
//Print ("rates_total:"+rates_total+" prev:"+prev_calculated+" begin:"+begin+" price:"+price[rates_total-1]);
break ;
case MODE_LWMA :
CalculateLWMA(rates_total,prev_calculated,begin,price);
ExtLv1Buffer[rates_total- 1 ]=price[rates_total- 1 ]+pipLevel1;
ExtLv2Buffer[rates_total- 1 ]=price[rates_total- 1 ]+pipLevel2;
break ;
case MODE_SMMA :
CalculateSmoothedMA(rates_total,prev_calculated,begin,price);
ExtLv1Buffer[rates_total- 1 ]=price[rates_total- 1 ]+pipLevel1;
ExtLv2Buffer[rates_total- 1 ]=price[rates_total- 1 ]+pipLevel2;
break ;
case MODE_SMA :
CalculateSimpleMA(rates_total,prev_calculated,begin,price);
ExtLv1Buffer[rates_total- 1 ]=price[rates_total- 1 ]+pipLevel1;
ExtLv2Buffer[rates_total- 1 ]=price[rates_total- 1 ]+pipLevel2;
break ;
}
//--- return value of prev_calculated for next call
return (rates_total);
}
//+------------------------------------------------------------------+
Evet, demek istediğim buydu
Olay olabildiğince basit:
Ortalama hesaplamasında veya başka bir şeyde herhangi bir şeyi değiştirmeye gerek yoktur: sadece merkezi (ma) tampondan basit bir toplama veya çıkarma
ma eklemek/çıkarmak için (dikey olarak) bir örnek kod gösterebilir misiniz? Denedim ama kodum başarısız..
ma eklemek/çıkarmak için (dikey olarak) bir örnek kod gösterebilir misiniz? Denedim ama kodum başarısız..
Bu gösterge, ortalanmış TMA'yı kullanır - yeniden hesaplar. Uyarılar anlamsız olurdu
tamam renk değiştiğinde ok ne olacak
tamam renk değiştiğinde ok ne olacak
Yeniden hesaplama/yeniden boyama özelliği nedeniyle sinyaller (oklar) anlamsız olacaktır.
Sevgili @mladen,
Ecn desteği olmayan bir uzman, Ecn tipi bir broker ile sorunsuz bir şekilde kullanılabilir mi?
Bazı uzmanlarda Ecn tipi brokerler için seçenekler vardır.
Bu, Ecn tipi brokerler için bazı kodları optimize etmenin veya eklemenin daha iyi olabileceğini düşünmeme neden oldu.
Sevgili @mladen,
Ecn desteği olmayan bir uzman, Ecn tipi bir broker ile sorunsuz bir şekilde kullanılabilir mi?
Bazı uzmanlarda Ecn tipi brokerler için seçenekler vardır.
Bu, Ecn tipi brokerler için bazı kodları optimize etmenin veya eklemenin daha iyi olabileceğini düşünmeme neden oldu.
Evet, emir açarken zarar durdur ve kar al kullanmazsanız
Diğer tarafta ecn/stp için yapılmışsa, herhangi bir komisyoncuda sorunsuz çalışacaktır. Tek fark, siparişlerin açıldığı andır - başka hiçbir değişikliğe (veya optimizasyona) gerek yoktur.
Cevabınız için teşekkür ederim.
Bildiğim kadarıyla ekli dosyada Ecn tipi broker desteği yok.
Bu ea'yı SL ve TP kullanarak Ecn tipi brokerde kullanmak istiyorum.
Ecn tipi broker desteği verirseniz çok sevinirim.
Herkesin anlaması için bu parçanın yeniden yazılması gerekecek.
Ancak kullanılan dili bilmediğim için yardımcı olamam. Afedersiniz