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

 
artmedia70 :

Orada pratikte mantık yok - birbirini takip eden sırayla satırların en basit çıktısı ...




Algı kolaylığı için işlevleri kullanırdım

 //--------------------------------------------------------------- 1 --
// Функция вывода на экран графических сообщений.
//--------------------------------------------------------------- 2 --
   int Informations()
  {
   int    Win_ind;                     // Номер окна индикатора
   int    x,y;
   
   trH4     =Trend_PSAR( NULL , 240 );   // Четырёхчасовой тренд
   trH1     =Trend_PSAR( NULL , 60 );   // Часовой тренд
   trM30    =Trend_PSAR( NULL , 30 );   // Получасовой тренд
   trM15    =Trend_PSAR( NULL , 15 );   // 15-ти минутный тренд

//--------------------------------------------------------------- 3 --
   Win_ind= WindowFind( "Info" );         // Ищем номер окна индикатора
   if (Win_ind< 0 ) return ;               // Если такого окна нет, уходим
//--------------------------------------------------------------- 4 --
   x = 10 ; y = 17 ;
   MyObject( "Equ" ,         x,    y,   "Свободные средства" ,                   9 , "Tahoma" , Gold );
   MyObject( "EquVal" ,      x* 23 , y,   DoubleToStr(Equ_NEW, 2 ),                 9 , "Tahoma" , Yellow );

//.................................
   WindowRedraw();                       // Перерисовываем все объекты
   return ;
  }


void MyObject( string Name, int X, int Y, string Text, int Size, string Srift, color CL){
   if ( ObjectFind (Name)==- 1 )
       ObjectCreate (Name, OBJ_LABEL , 1 , 0 , 0 , 0 , 0 );
   ObjectSet(Name, OBJPROP_XDISTANCE ,X);
   ObjectSet(Name, OBJPROP_YDISTANCE ,Y);
   ObjectSetText(Name, Text, Size, Srift, CL);
}
 
ToLik_SRGV :

Ben de aynı soruyu sordum ve kayda değer bir şey bulamadım. Optimizasyona gelince, büyük fren iCustom'u zaten biliyorsunuz :), göstergelerde sayılan çubuk sayısında bir sınır vardır ( IndicatorCounted() aracılığıyla veya acımasızca çubuk sayısında.). Kodda if, while ve gibi çeşitli yapıların sayısı ve karmaşıklığı. vs. özel bir anlamı yoktur, fazla kazanmazsınız, zamanla ve deneyimle kodun kendisi “daha güzel” hale gelir. Görselleştirme modunda, her "atlama" modellendiğinde, hemen hemen her durumda yavaş olacaktır (elbette, sistemin karmaşıklığına bağlıdır). Bir yerde okudum, karmaşık hesaplamalar dll'ye konursa, kendim kontrol etmeme rağmen daha hızlı olacaktır. Dll ile de yeterince nüans var.

TimeCurrent() gibi komutların işi çok yavaşlattığını hatırlıyorum (kodda birkaç tane olduğunda)

- bir kez kullanmak çok daha iyidir - onu bir değişkene getirmek ve ancak o zaman değişkene erişmek.

 
Vinin :


Algı kolaylığı için işlevleri kullanırdım

Evet, elbette Victor, çok daha okunaklı. Ama zaten mümkünse "alnına" yazmaya çalışıyorum - her şey çok yavaşlıyor ve mümkünse milisaniye kazanmaya çalışıyorum ...
 
chief2000 :

TimeCurrent() gibi komutların işi çok yavaşlattığını hatırlıyorum (kodda birkaç tane olduğunda)

- bir kez kullanmak çok daha iyidir - onu bir değişkene getirmek ve ancak o zaman değişkene erişmek.

Harika! Koda bakmaya değer, ancak yeniden yapmak ...
 
chief2000 :

TimeCurrent() gibi komutların işi çok yavaşlattığını hatırlıyorum (kodda birkaç tane olduğunda)

- bir kez kullanmak çok daha iyidir - onu bir değişkene getirmek ve ancak o zaman değişkene erişmek.

Daha sonra erişilebilmesi için böyle bir değişken nasıl doğru bir şekilde ayarlanır?

İlk önce global değişkenlerde ilan ediyorum

tarihsaat CurTime;

Ve sonra zaten start()

Bir değer atadım:

CurTime=TimeCurrent();

ve hata alın: 'CurTime' - değişken bekleniyor

Nasıl doğru yapılır?

Ve başka bir soru: eğer bazı değişkenlere değerlerini start() içinde değil de init() içinde atarsanız, bunlar doğru şekilde çalışacak mı?

Yani, bazı fonksiyonlar ve aynı TimeCurrent(), eğer değişkene start() başlangıcında bu fonksiyonun değeri atanmışsa, her tikte çağrılmaya devam edecektir.

 
Dağınıklık! Curr Time bir hata veriyor ama Curr Time vermiyor... Ne anlamı var ki?
 
artmedia70 :
Dağınıklık! Curr Time hata veriyor ama Curr Time vermiyor... Ne anlamı var ki?
Gerçek şu ki CurTime, TimeCurrent işlevinin yorgun bir adıdır, değişken adı işlev adıyla eşleşirse, derleyici her zaman yemin eder..
 
keekkenen :
Gerçek şu ki CurTime, sırasıyla TimeCurrent işlevinin yorgun bir adıdır, değişken adı işlev adıyla eşleşirse, derleyici her zaman yemin eder..
Nasıl! Teşekkürler, gelecek için bilgi patlaması.
 

Arkadaşlar! Kişisel mantık blokum biraz topalladı. Bu durumda ne yapacağımı bulamıyorum.

İki yönde çalışıyoruz, yani. Al ve Sat kendi ayrı kontrol bloklarına sahiptir. Pozisyonlar ters yönde açılabilir, bu tamamen piyasanın her bir TF'de hangi yöne hareket ettiğine bağlıdır.

Hem Satış (TF M5 ve M15'e göre) hem de daha eski zaman dilimlerinde Al açık olduğunda ve sonra aniden piyasa açık yönünün tersine keskin bir şekilde döndüğünde, M5 ve M15'te Sat (peki, ne olduğunu asla bilemezsiniz) bir durum varsayalım. dünyada yaşanan durum...) . Bu durumda, tüm açık Satışlar düşüşü büyük ölçüde artırmaya başlar ve ayrıca açık Alışlarımız olduğundan, kapalı Alışlar nedeniyle kârsız Satışları minimum kayıpla kapatmak için bazı pozisyonları ve Alış ve Satışları kapatmak mümkündür.

Yani verilen durumda hiçbir şekilde mantıkla tanımlanamam. Ne olmalı?

Her ihtimale karşı, örnek bir durum:


 

İyi insanlar, dünkü konuya dönersek:

   double c1b[];
   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 , 1 );
   double c1b_2=iMAOnArray(c1b, 0 ,AvgB, 0 , MODE_SMA , 2 );
   double c1b_3=iMAOnArray(c1b, 0 ,AvgB, 0 , MODE_SMA , 3 );
   
   double c1s[];
   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 , 1 );
   double c1s_2=iMAOnArray(c1s, 0 ,AvgS, 0 , MODE_SMA , 2 );
   double c1s_3=iMAOnArray(c1s, 0 ,AvgS, 0 , MODE_SMA , 3 );

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

bana günlükten gelen mesajın ne anlama geldiğini söyle:

2010.06.24 17:28:26 TestGenerator: eşleşmeyen veri hatası (2010.01.06 08:00'de 5357 ses sınırı aşıldı)