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

 

Diğerleri, dizilerle uğraşamam, bana neyin yanlış olduğunu söyle (koşul basit - düzleştirilmiş CCI'nin bir sonraki zirvesinden sonra al / sat):

Hatasız derler ve strateji başlatıldığında ve siparişler verilmediğinde günlüğe hiçbir şey yazmaz.

   double c1b[];
   ArrayResize (c1b,PeriodB);
   for (i= 1 ;i<=PeriodB;i++)
   c1b[i]= iCCI ( NULL , 0 ,PeriodB, PRICE_TYPICAL ,i);
   double c1b_1=iMAOnArray(c1b, 0 ,AvgB, 0 , MODE_SMA ,i);
   double c1b_2=iMAOnArray(c1b, 0 ,AvgB, 0 , MODE_SMA ,i+ 2 );
   double c1b_3=iMAOnArray(c1b, 0 ,AvgB, 0 , MODE_SMA ,i+ 3 );
   
   double c1s[];
   ArrayResize (c1b,PeriodS);
   for (i= 1 ;i<=PeriodS;i++)
   c1s[i]= iCCI ( NULL , 0 ,PeriodS, PRICE_TYPICAL ,i);
   double c1s_1=iMAOnArray(c1s, 0 ,AvgS, 0 , MODE_SMA ,i);
   double c1s_2=iMAOnArray(c1s, 0 ,AvgS, 0 , MODE_SMA ,i+ 2 );
   double c1s_3=iMAOnArray(c1s, 0 ,AvgS, 0 , MODE_SMA ,i+ 3 );


   if (c1s_1>c1s_2&&c1s_2<c1s_3)
     {                                          //
      Opn_B=true;                               // Критерий откр. Buy
      Cls_S=true;                               // Критерий закр. Sell
     }
   if (c1b_1<c1b_2&&c1b_2>c1b_3)
     {                                          //
      Opn_S=true;                               // Критерий откр. Sell
      Cls_B=true;                               // Критерий закр. Buy
     }
 


çift c1s[];
ArrayResize (c1b,PeriodS)

Bir diziyi bildirir ve diğerini değiştirirsiniz.

 
Roger :


çift c1s[];
ArrayResize(c1b,PeriodS)

Bir diziyi bildirir ve diğerini değiştirirsiniz.


Teşekkürler, başka ne var - yardımcı olmadı.
 

Dizi sıfır öğesinde başlar, bu nedenle ifade

for(i=1;i<=PeriodS;i++)

null değerini atlar ve kalıcı olarak hiçbir şey yazmaz.

ayrıca, döngüde yalnızca bu ifade yürütülür

c1b[i]=iCCI(BOŞ,0, DönemB ,PRICE_TYPICAL,i);

gerisi anlamsızdır, i döngüsünden sonra maksimuma eşittir ve bu nedenle tüm değerler sıfır olacaktır.

 
Craft :

başka ne yanlış


normalleştirme olmadan çift karşılaştırma yanlış... şunu deneyin:

   double c1b[];
   ArrayResize (c1b,PeriodB);
   for (i= 1 ;i<=PeriodB;i++)
   c1b[i]= iCCI ( NULL , 0 ,PeriodB, PRICE_TYPICAL ,i);
   double c1b_1=iMAOnArray(c1b, 0 ,AvgB, 0 , MODE_SMA ,i);
   double c1b_2=iMAOnArray(c1b, 0 ,AvgB, 0 , MODE_SMA ,i+ 2 );
   double c1b_3=iMAOnArray(c1b, 0 ,AvgB, 0 , MODE_SMA ,i+ 3 );
   
   double c1s[];
   ArrayResize (c1b,PeriodS);
   for (i= 1 ;i<=PeriodS;i++)
   c1s[i]= iCCI ( NULL , 0 ,PeriodS, PRICE_TYPICAL ,i);
   double c1s_1=iMAOnArray(c1s, 0 ,AvgS, 0 , MODE_SMA ,i);
   double c1s_2=iMAOnArray(c1s, 0 ,AvgS, 0 , MODE_SMA ,i+ 2 );
   double c1s_3=iMAOnArray(c1s, 0 ,AvgS, 0 , MODE_SMA ,i+ 3 );


   if ( NormalizeDouble (c1s_1, 4 )> NormalizeDouble (c1s_2, 4 )&& NormalizeDouble (c1s_2, 4 )< NormalizeDouble (c1s_3, 4 ))
     {                                           //
      Opn_B=true;                               // Критерий откр. Buy
      Cls_S=true;                               // Критерий закр. Sell
     }
   if ( NormalizeDouble (c1b_1, 4 )< NormalizeDouble (c1b_2, 4 )&& NormalizeDouble (c1b_2, 4 )> NormalizeDouble (c1b_3, 4 ))
     {                                           //
      Opn_S=true;                               // Критерий откр. Sell
      Cls_B=true;                               // Критерий закр. Buy
     }

 
DDFedor :


normalleştirme olmadan çift karşılaştırma yanlış... şunu deneyin:


Yardımlarınız için teşekkürler arkadaşlar hala çalışmıyor.
 
Roger :

Dizi sıfır öğesinde başlar, bu nedenle ifade

for(i=1;i<=PeriodS;i++)

null değerini atlar ve kalıcı olarak hiçbir şey yazmaz.

ayrıca, döngüde yalnızca bu ifade yürütülecektir.

c1b[i]=iCCI(NULL,0,PeriodB,PRICE_TYPICAL,i);

gerisi anlamsızdır, i döngüsünden sonra maksimuma eşittir ve bu nedenle tüm değerler sıfır olacaktır.


Peki ya o zaman? for(i=0;i<=PeriodS;i++) denendi - yardımcı olmadı.
 
Craft :

Peki ya o zaman?

Kodun tüm yerlerindeki her değişkene Baskılar koyun ve her adımda neler olup bittiğini günlüklere bakın.
 

tünaydın. bir acemi söyle. demoda, açılış fonksiyonuna symbol() yazdığımda danışman bir emir açıyor ve onu belirli bir çiftle, örneğin "EURUSD" olarak değiştirdiğimde, 133 hatası veriyor ve kontrol ederken - if (MarketInfo) (Symbol(),MODE_TRADEALLOWED)==doğru)
{Alert("!");}else{Alert("?");} - "!" döndürür, ör. ticarete izin verilir .. ve aynı zamanda 133. sorun nedir. Açılış işlevinde def belirtirsem danışmanların hiçbiri bir anlaşma açmaz. sembol .. zaten denemedim kısa sürede.

şimdiden teşekkürler. Forumu kirletmemek için buradayım))

 
artmedia70 :
Ve bunların bir düzeltme değil, tersine çevirme olduğunu kim söyledi?

Üzgünüm, hemen cevap vermedi, nbuk tamamen öldü. Umarım diş artık acımaz, ama korkunç bir şey. İtiraf ediyorum, Babon'da günah işledim, iyi çalışıyor, ancak NMAZZ göstergesi suçlanacak, nereden indirdiğimi hatırlamıyorum, ancak yine de bir çizelgede çalışıyor, ama onu üç çizelgeye soktum (5M, 30M, 4H) ve işte bu, bilgisayar sonunda donuyor, daha doğrusu terminal. Göstergeleri birer birer çizelgelerden çıkarmaya başladım ve bu yarayı böyle keşfettim. Ama şimdi her şeyi ayarladım, bu hindinin nesi var bilmiyorum ama ilk başta güzel çizdim. Ve bir tersine çevirme veya düzeltmeye gelince, evet, haklısınız, bu her zaman benzersiz bir geri dönüş değildir, ancak babun 30M, 1H ve 4H'de renk değiştirirse, o zaman bir geri dönüş değilse, düzeltme kesindir ve kazanabilirsiniz. biraz para.