[ARŞİV!] Forumu kirletmemek için herhangi bir acemi sorusu. Profesyonel, kaçırmayın. Sensiz hiçbir yerde - 4. - sayfa 528

 

Merhaba!

İlk Uzman Danışmanımı yazmaya çalıştım :-), ama bazı zorluklar oldu.

Danışmanın mantığı şu şekildedir, son n barlar için maksimum ve minimumu gösteren bir gösterge vardır, maksimum veya minimum kırıldığında bir emir açılmalıdır.

Grafiğe bir danışman eklediğimde hemen bir SATIŞ pozisyonu açılıyor. Bunun neden olduğunu anlayamıyorum.

Bana öyle geliyor ki hata, gösterge parametrelerini geçen iCustom() işlevinde.

EA ve gösterge ekli.

Dosyalar:
xox.mq4  10 kb
 
Ve işte gösterge.
Dosyalar:
go_go_1.mq4  2 kb
 
Pacman :

Merhaba!

İlk Uzman Danışmanımı yazmaya çalıştım :-), ama bazı zorluklar oldu.

Danışmanın mantığı şu şekildedir, son n barlar için maksimum ve minimumu gösteren bir gösterge vardır, maksimum veya minimum kırıldığında bir emir açılmalıdır.

Grafiğe bir danışman eklediğimde hemen bir SATIŞ pozisyonu açılıyor. Bunun neden olduğunu anlayamıyorum.

Bana öyle geliyor ki hata, gösterge parametrelerini geçen iCustom() işlevinde.

EA ve gösterge ekli.

Gösterge dizilerinin 0. dizinini doldurmazsınız,

   for ( k= 1 ; k<=Quant_Bars; k++)
      {
       Line_1[k]= Minimum;
       Line_2[k]= Maximum;
      }

ve buna bakın:

   double L_1= iCustom ( NULL , 0 , "Go_go" ,K, 0 , 0 );   //Линия минимума
   double L_2= iCustom ( NULL , 0 , "Go_go" ,K, 1 , 0 );   //Линия максимума 

Biraz (yapısal olarak) çarpık, AMA ilk kez yapacak. Benim tavsiyem: "Doğru kodlama yaklaşımlarına hemen alışın. Örneğin, bu koşulu kodunuzda kullanmak:

       if ( Total== 0 && Opn_B==true)               //Открытых ордеров нет + 
okuma yazma bilmiyorsunuz, çünkü er ya da geç test cihazından çevrimiçi ticarete geçeceksiniz ve bazen birkaç danışman paralel olarak çalışıyor ve böyle bir kod çalışmayacak.
 
Pacman :
Ve işte gösterge.

iHighest( ) ve iLowest() işlevlerini neden sevmiyorsunuz?
 
 
0x sadece onaltılık anlamına gelir.
 
Günaydın! Koşul çalışmıyor
 bool CCInapravlenie=false;
if ( CCI_50S> 100 &&CCI_50< 100 ||CCI_50S> 0 &&CCI_50< 0 || CCI_50S>- 100 &&CCI_50<- 100 )CCInapravlenie=true;

if (CCInapravlenie){ imja = DoubleToStr (Time[ 0 ], 0 ); 
ObjectCreate (imja, 22 , 0 , iTime ( NULL , 0 , 0 ), iLow ( NULL , 0 , 0 )- 0.0001 ); ObjectSet (imja, OBJPROP_ARROWCODE , 241 );
ObjectSet (imja, OBJPROP_COLOR , Yellow ); // стрелка жолтая 
} //&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&

Ben zaten eğer satırına baktım, baktım, baktım, baktım... Bir nedeni var, gözümü kırpabiliyorum ve basit ve basit bir şey görmüyorum, sonuçta oluyor.

Sabah izlendi. Dışarı çıktı. Geldim, tekrar baktım Çok daha kolay görünüyor, eğer daha fazla, daha az .. Hiç anlamıyorum.



Ve bu benim başlangıcımın altında
 double EMA_10 = iMA ( NULL , 0 , 10 , 0 , MODE_EMA , PRICE_CLOSE , 0 );
double EMA_20 = iMA ( NULL , 0 , 20 , 0 , MODE_EMA , PRICE_CLOSE , 0 );
double LMA_100 = iMA ( NULL , 0 , 100 , 0 , MODE_LWMA , PRICE_CLOSE , 0 );
double МА_30 = iMA ( NULL , 0 , 30 , 0 , MODE_SMA , PRICE_CLOSE , 0 );
double CCI_50 = iCCI ( NULL , 0 , 50 , PRICE_CLOSE , 0 );

double EMA_10S = iMA ( NULL , 0 , 10 , 0 , MODE_EMA , PRICE_CLOSE , 1 );
double EMA_20S = iMA ( NULL , 0 , 20 , 0 , MODE_EMA , PRICE_CLOSE , 1 );
double LMA_100S = iMA ( NULL , 0 , 100 , 0 , MODE_LWMA , PRICE_CLOSE , 1 );
double МА_30S = iMA ( NULL , 0 , 30 , 0 , MODE_SMA , PRICE_CLOSE , 1 );
double CCI_50S = iCCI ( NULL , 0 , 50 , PRICE_CLOSE , 1 );


ps Bunların hepsi stratejinin böyle bir koşulunun parçasıdır.

EMA - periyot 10 yukarıdan aşağıya kesişir EMA - periyot 200, CCI yukarıdan aşağıya 0.100 veya -100 seviyesini geçer; Mum kapanıyor veya LMA'nın altında – dönem 100
 
TheXpert :
0x sadece onaltılık anlamına gelir.

Teşekkür ederim.
 

Hiç sarı ok yok. Şeytan biliyor. Ayrıca ayna durumu çalışıyor!!!!

ayna durumu

 bool napravlenieCCI=false;
 if ( CCI_50S< 100 &&CCI_50> 100 ||CCI_50S< 0 &&CCI_50> 0 || CCI_50S<- 100 &&CCI_50>- 100   )napravlenieCCI=true;
   if (napravlenieCCI){   string imja = DoubleToStr (Time[ 0 ], 0 );
   ObjectCreate (imja, 22 , 0 , iTime ( NULL , 0 , 0 ), iHigh ( NULL , 0 , 0 )+ 0.0004 ); 
   ObjectSet (imja, OBJPROP_ARROWCODE , 242 );
   Print ( " ObjectSet242  " , GetLastError ());
   ObjectSet (imja, OBJPROP_COLOR , Red ); Print ( " сOBJPROP_COLO  " , GetLastError ());}

Ekran

 
TarasBY :

Gösterge dizilerinin 0. dizinini doldurmazsınız,

ve buna bakın:

Biraz (yapısal olarak) çarpık, AMA ilk kez yapacak. Benim tavsiyem: "Doğru kodlama yaklaşımlarına hemen alışın. Örneğin, bu koşulu kodunuzda kullanmak:

okuma yazma bilmiyorsunuz, çünkü er ya da geç test cihazından çevrimiçi ticarete geçeceksiniz ve bazen birkaç danışman paralel olarak çalışıyor ve böyle bir kod çalışmayacak.


Cevap için teşekkürler!

Bileceğim. Dizilerin daha fazla keşfedilmesi gerekiyor.

Ve fikrimi pratikte hızlı bir şekilde test etmek için "Toplam==0" koşulunu yazdım. Şimdi Kod Tabanını karıştıracağım, bu durumu düzeltmek için benzer bir şey bulmaya çalışacağım.

Kesinlikle sana katılıyorum, doğru kod yazmayı öğrenmen lazım. Düzelteceğim.

Yardımın için çok teşekkürler.



Neden: