[UYARI, KONU KAPALI!] Forumu kirletmemek için herhangi bir acemi sorusu. Profesyonel, kaçırmayın. Sensiz hiçbir yerde. - sayfa 236

 

Meslektaşlarım, biraz kafam karıştı.

Göstergeyi kullanarak iki nokta arasında bir segment çizmek gerekir.


   SetIndexShift (0 , DRAW_SECTION ) ; 
   SetIndexBuffer ( 0 , z1 ) ;

   z1 [ 1 ] = 1.5 ;
   z1 [ 2 ] = EMPTY_VALUE ;
   z1 [ 3 ] = EMPTY_VALUE ;
   z1 [ 4 ] = EMPTY_VALUE ;
   z1 [ 5 ] = EMPTY_VALUE ;
   z1 [ 6 ] = 1.4 ;

Yani çalışmıyor, değil mi?
 
neoclassic >> :

Meslektaşlarım, biraz kafam karıştı.

Göstergeyi kullanarak iki nokta arasında bir segment çizmek gerekir.

Ve SetIndexShift'teki yardıma bakıyorsunuz. O işlev değil. Sizinki SetIndexStyle.

Not: ve y=kx+b formülüne göre çizgilerle çizerseniz, gösterge

her iki nokta için tanımlanmış :-).

 
jartmailru >> :

Ve SetIndexShift'teki yardıma bakıyorsunuz. O işlev değil. Sizinki SetIndexStyle.

Not: ve y=kx+b formülüne göre çizgilerle çizerseniz, gösterge

her iki nokta için tanımlanmış :-).

Bu böyle oluyor sonuçta birden fazla indikatör yazdım, üslupla geçişi karıştırdım :-) yanlış yok rahatladım.... teşekkürler :-)

 

Beyler, göstergeyi parabollerle birlikte bir elips çizecek şekilde değiştirmeme yardım edin, EA'nın sonuçlarını karşılaştırmak istiyorum. Bana öyle geliyor ki, bir elips bir parabolden daha fazla durma kaybı için daha uygundur. Ya da belki birinin böyle bir göstergesi vardır. Bir elips temelinde mi? Şimdiden teşekkürler.

Dosyalar:
 
001 писал(а) >>

Beyler, göstergeyi parabollerle birlikte bir elips çizecek şekilde değiştirmeme yardım edin, EA'nın sonuçlarını karşılaştırmak istiyorum. Bana öyle geliyor ki, bir elips bir parabolden daha fazla durma kaybı için daha uygundur. Ya da belki birinin böyle bir göstergesi vardır. Bir elips temelinde mi? Şimdiden teşekkürler.

EA'daki bu göstergeyi harici bir gösterge olarak bağlamaya çalıştım. Çalışmıyor, neyin yanlış olduğunu anlamıyorum.

göstergede ne var

dış çift Adım=0.0513;
dış çift Maksimum=0.46;

Danışmanda:

harici çift kademeli durdurma =0,005;
harici çift maksimumadımstop=0.05;

double sarstop=iCustom(NULL,0,"ParabolicM",stepstop,maksimumstepstop,0,0);

Sonuç olarak:

2009.09.25 17:01:42 2001.09.24 09:00 Zarf EURUSD,M30: sarstop = 0.8625

2009.09.25 17:01:42 2001.09.24 09:00 Zarf EURUSD,M30: sarstop = 0.8625

2009.09.25 17:01:42 2001.09.24 09:00 Zarf EURUSD,M30: sarstop = 0.8625

2009.09.25 17:01:42 2001.09.24 09:00 Zarf EURUSD,M30: sarstop = 0.8625

Yani göstergeler değişmez.

 

Merhaba!


Bir uzmanın mantığıyla ilgili bir soru var ve programlama konusunda herhangi bir tecrübem olmamasından dolayı anlayanlara yöneliyorum.

Teoride, dört zaman diliminde stokastik göstergenin çizgilerinin kesişimini kaydetmesi gereken bir kod var (Batı forumlarından birinde bulundu ve ne yazık ki yazarın adını hatırlamıyorum). Ana hat, tüm zaman dilimlerinde sinyal hattından daha yüksekse, emir açma kodu yürütülür. Fikir kesinlikle harika, ancak uygulama birçok soruna neden oldu çünkü. geçmişi gözden geçirdikten sonra, bir olay yalnızca bir zaman diliminde kaydedildiğinde bazen bir siparişin açıldığını buldum. Özün ne olabileceğini hiç anlayamıyorum, tk. yerindeki temel koşullar gibi.


Yardımın için minnettar olacağım!



double M1, S1, M2, S2, M3, S3, M4, S4;

string Sig;
string St;
double ticket;

int start()
{
M1=iStochastic(NULL,PERIOD_M15,14,3,3,MODE_SMA,0,MODE_MAIN,1);
S1=iStochastic(NULL,PERIOD_M15,14,3,3,MODE_SMA,0,MODE_SIGNAL,1);

M2=iStochastic(NULL,PERIOD_M30,14,3,3,MODE_SMA,0,MODE_MAIN,1);
S2=iStochastic(NULL,PERIOD_M30,14,3,3,MODE_SMA,0,MODE_SIGNAL,1);
M3=iStochastic(NULL,PERIOD_H1,14,3,3,MODE_SMA,0,MODE_MAIN,1);
S3=iStochastic(NULL,PERIOD_H1,14,3,3,MODE_SMA,0,MODE_SIGNAL,1);
M4=iStochastic(NULL,PERIOD_H4,14,3,3,MODE_SMA,0,MODE_MAIN,1);
S4=iStochastic(NULL,PERIOD_H4,14,3,3,MODE_SMA,0,MODE_SIGNAL,1);

St = "READY";

Sig = "NONE";

if(M1>S1, M2>S2 && M3>S3 && M4>S4)
{
Sig="LONG";
}
if(M1<S1, M2<S2 && M3<S3 && M4<S4)
{
Sig="SHORT";
}

if(St=="READY" && Sig=="LONG")
{
ticket=OrderSend(Symbol(),OP_BUY,LotSize,Ask,5,Bid-SL*Point,Bid+TP*Point,LongComment,Magic,0,Blue);
if(ticket>-1)
{
St="LONG ON";
}
}

if(St=="READY" && Sig=="SHORT")
{
ticket=OrderSend(Symbol(),OP_SELL,LotSize,Bid,5,Ask+SL*Point,Ask-TP*Point,ShortComment,Magic,0,Red);
if(ticket>-1)
{
St="SHORT ON";
}
}

}

 
if-t >> :

Merhaba!

Bir kod var (Batı forumlarından birinde bulundu ve ne yazık ki yazarın adını hatırlamıyorum), teoride ......

.....bir olay yalnızca bir zaman diliminde kaydedildiğinde bazen bir siparişin açıldığını tespit etti.

Yardımın için minnettar olacağım!



Belki de sorun bu garip giriştedir:

if(M1>S1, M2>S2 && M3>S3 && M4>S4)
Ne anlama geliyor? -
(M1>S1, M2>S2

Belki virgül yerine "&&" operatörünü koymayı deneyin? (hem alış hem de satış için)

 
rid >> :

Belki de sorun bu garip giriştedir:

Ne anlama geliyor? -

Belki virgül yerine "&&" operatörünü koymayı deneyin? (hem alış hem de satış için)

Rid, cevabınız için çok teşekkür ederim! Değişkenleri yeniden düzenlerken bu hatayı yaptım (kafa zaten şişmiş ve ilkel hatalar yapıyorum). Orijinal sürüm doğru:

if(M1>S1 && M2>S2 && M3>S3 && M4>S4)

Ama çalışmıyor. Herkes belki St değişkeninin her zaman doğru değerleri almadığını düşünüyor? Aslında, koşul karşılanmazsa, kod çalıştırılmamalıdır ... Genel olarak, benden bir programcı bir filden balerin gibidir ve profesyonellerin yardımı olmadan yapamam ...


 

Bu arada çıktı eklemeye çalıştım ama görünen o ki değişkenler değerleri doğru alıyor.

 

İlk göstergemi yazmaya çalıştım: ama iki yerine sadece bir satır çizildi, bana sorunun ne olduğunu söyle

 #property indicator_separate_window
#property indicator_buffers 2
#property indicator_color1 Lime
#property indicator_color2 Red
//---- buffers
double Buf_1 [ ] , Buf_2 [ ] ;


//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init ( )
   {
//---- indicators
   SetIndexStyle ( 0 , DRAW_LINE ) ;
   SetIndexBuffer ( 0 , Buf_1 ) ;
   SetIndexStyle ( 0 , DRAW_LINE ) ;
   SetIndexBuffer ( 0 , Buf_2 ) ;
//----
   return ( 0 ) ;
   }
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit ( )
   {
//----
   
//----
   return ( 0 ) ;
   }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start ( )
   {
   int     i , 
          Counted_bars = IndicatorCounted ( ) ;
//----
i = Bars - Counted_bars - 1 ;            // Индекс первого непосчитанного
   while ( i > = 0 ) 
       {   
       Buf_1 [ i ] = Close [ i ] ; 
       Buf_2 [ i ] = Open [ i ] ;
       i - - ;
       }
 
//----
   return ( 0 ) ;