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

 
Urain :

MathRand, kullanılmadan önce MathSrand() ile başlatılmalıdır ,

ve TimeLocal() öğesini MathSrand() öğesine parametre olarak geçirmenizi öneririm.

Başlatma bir kez gereklidir, ardından 32768 MathRand() sorgusu için tekrar bulunmaz,

bundan sonra yeni bir dizi istiyorsanız yeniden başlatabilirsiniz, aksi takdirde aynısı başlayacaktır.

Elbette her adımda başlatabilirsiniz, ancak başlatma parametresinin değiştiğini izlemeniz gerekir,

aksi takdirde aynı sıra olacak


İşte bu yaptığım şey. zamansal nedir?

Aynı hikayede aynı sete sahibim.

 
SÖYLE KİM KİMDİR.. ÜÇ KEZ YAZIYORUM VE KİMSE CEVAP VERMİYOR..AccountEquity() BİR BAR GERİ (GEÇMİŞ BARDA) NASIL YAZILIR?
 
vlad123 :


İşte bu yaptığım şey. zamansal nedir?

Aynı hikayede aynı sete sahibim.


Ders kitabından örnekler:

tarihsaatSaatYerel ()

İşlev, yerel bilgisayar saatini 1 Ocak 1970'de 00:00'dan bu yana geçen saniye sayısı olarak döndürür.
Not: Test sırasında yerel saat simüle edilir ve simüle edilen son bilinen sunucu saati ile eşleşir.

Misal:

 MathSrand ( TimeLocal ());
  // Отображает 10 чисел.
  for ( int i= 0 ;i< 10 ;i++ ) Print ( "произвольная величина " , MathRand ());

 
sllawa3 :
SÖYLE KİM KİMDİR.. ÜÇ KEZ YAZIYORUM VE KİMSE CEVAP VERMİYOR..AccountEquity() BİR BAR GERİ (GEÇMİŞ BARDA) NASIL YAZILIR?

Cevap: hiçbir şekilde.
AccountEquity() öz sermaye miktarını döndürür ve çubuk sayısına bağlı değildir.
Çubukların tarihini geriye alarak basitçe önceki değerlerini bulmak imkansızdır.
Değeri, açık/kapalı, karlı/zararlı işlemlerin sayısına bağlıdır.
Örneğin, "öz sermaye geçmişini" kaydetmek için, statik bir dizi oluşturmanız ve örneğin her çubuğun açılışında AccountEquity() değerini buna yazmanız gerekir.
Ve buna göre, özkaynak değişikliklerinin geçmişini almak için diziyi kaydırmak.

 
sllawa3 :
SÖYLE KİM KİMDİR.. ÜÇ KEZ YAZIYORUM VE KİMSE CEVAP VERMİYOR..AccountEquity() BİR BAR GERİ (GEÇMİŞ BARDA) NASIL YAZILIR?

Bir değişkendeki her yeni çubukta bunu hatırlamanız gerekiyor gibi görünüyor, örneğin şöyle:

1. init() işlevindeki ilk eşitlik değerini bir değişkende saklayın, diyelim ki EquAkk=AccountEquity();

2. yeni bir çubuğun görünümünü kontrol edin ( init içinde değil elbette), öyleyse, o zaman
{
LastEqu=EquAck; // geçmişi (aradığımız) öz sermaye değerini bir değişkene kaydet
EquAkk=HesapEquity(); // yeni öz sermaye değerini yaz (bir sonraki "geçmiş" değer için)
}

Böylece LastEqu değişkeni, mevcut çubuk sırasında son çubukta özkaynak değerini saklayacak ve bir sonraki çubuk açıldığında değerinin üzerine yeni bir şekilde yazılacaktır...

... Dizime yazdım, kontrol etmedim ve zaten uykuya daldım, o yüzden sert tekmeleme ...
Sanırım fikrimi anladım...

 
ToLik_SRGV :

Cevap: hiçbir şekilde.
AccountEquity() öz sermaye miktarını döndürür ve çubuk sayısına bağlı değildir.
Sadece çubukların geçmişini geri alarak önceki değerlerini öğrenemezsiniz.
Değeri, açık/kapalı, karlı/zararlı işlemlerin sayısına bağlıdır.
Örneğin, "öz sermaye geçmişini" kaydetmek için, statik bir dizi oluşturmanız ve örneğin her çubuğun açılışında AccountEquity() değerini buna yazmanız gerekir.
Ve buna göre, özkaynak değişikliklerinin geçmişini almak için diziyi kaydırmak.



PEKİ, HER ŞEY MÜMKÜN OLDUĞU ANLAMINA GELİYOR
 
sllawa3 :
PEKİ, HER ŞEY MÜMKÜN OLDUĞU ANLAMINA GELİYOR


Aynı şeyi yazdım, sadece bir değişken yerine bir dizi kullanmayı önerdim.

Örneğin, "öz sermaye geçmişini" kaydetmek için, statik bir dizi oluşturmanız ve örneğin her çubuğun açılışında AccountEquity() değerini buna yazmanız gerekir.
Ve buna göre, özkaynak değişikliklerinin geçmişini almak için diziyi kaydırmak.

 
Beyler, son 80 gün için grafikte bir oku en yüksek çubukta, diğerini aynı 80 gün için en düşük çubukta nasıl ayarlayacağımı çözemiyorum. Bu kodu yaptım, ancak ok kümeleri saçıyor... ve sonra, yalnızca her çubuğun alt kısımlarında, ancak 80 gün boyunca minimum ve maksimumda bir oka ihtiyacım var, ardından sonraki 80 gün için vb. Tavsiye verebilirmisin?
 //====================================================================================
   int       NBars,MostHiBar, MostLoBar;
   double    MostHiPrice,MostLoPrice;
   datetime TMostHiBar,TMostLoBar;
   
//-----------------------------------------------------------------
   NBars       = 80 ;
   MostHiBar   = iHighest( NULL , PERIOD_D1 ,MODE_HIGH,NBars, 0 );       // Номер "максимального" бара
   MostLoBar   = iLowest ( NULL , PERIOD_D1 ,MODE_LOW, NBars, 0 );       // Номер "минимального" бара
   MostHiPrice = iHigh   ( NULL , PERIOD_D1 ,MostHiBar);               // Цена  "максимального" бара
   MostLoPrice = iLow    ( NULL , PERIOD_D1 ,MostLoBar);               // Цена  "минимального" бара
   
   TMostHiBar  = iTime   ( NULL , PERIOD_D1 ,MostHiBar);               // Время открытия "максимального" бара
   TMostLoBar  = iTime   ( NULL , PERIOD_D1 ,MostLoBar);               // Время открытия "минимального" бара

   Comment (
             "\n" , 
             "Наибольшая цена за " , NBars, " дней = " , MostHiPrice, "\n" ,
             "Наименьшая цена за " , NBars, " дней = " , MostLoPrice, "\n" ,
             "Время наибольш. бара = " , Time[MostHiBar], "\n" ,
             "Время наименьш. бара = " , Time[MostLoBar]   // сюда пробовал и TMostLoBar вставлять - пофигу...           
           );
           
   SetArrow( 241 , MediumSpringGreen , "" , Time[MostHiBar], High[MostHiBar], 0 );
   SetArrow( 242 , OrangeRed , "" , Time[MostLoBar], Low[MostLoBar], 0 );
//====================================================================================
//+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. aka KimIV,  http://www.kimiv.ru                   |
//+----------------------------------------------------------------------------+
//|  Версия   : 12.10.2007                                                     |
//|  Описание : Установка значка на графике, объект OBJ_ARROW.                 |
//+----------------------------------------------------------------------------+
//|  Параметры:                                                                |
//|    cd - код значка                                                         |
//|    cl - цвет значка                                                        |
//|    nm - наименование               ("" - время открытия текущего бара)     |
//|    t1 - время открытия бара        (0  - текущий бар)                      |
//|    p1 - ценовой уровень            (0  - Bid)                              |
//|    sz - размер значка              (0  - по умолчанию)                     |
//+----------------------------------------------------------------------------+
void SetArrow( int cd, color cl, string nm= "" , datetime t1= 0 , double p1= 0 , int sz= 0 ) 
{
   if (nm== "" ) nm=DoubleToStr(Time[ 0 ], 0 );
   if (t1<= 0 ) t1=Time[ 0 ];
   if (p1<= 0 ) p1=Bid;
   if ( ObjectFind (nm)< 0 ) ObjectCreate (nm, OBJ_ARROW , 0 , 0 , 0 );
  ObjectSet(nm, OBJPROP_TIME1    , t1);
  ObjectSet(nm, OBJPROP_PRICE1   , p1);
  ObjectSet(nm, OBJPROP_ARROWCODE , cd);
  ObjectSet(nm, OBJPROP_COLOR     , cl);
  ObjectSet(nm, OBJPROP_WIDTH     , sz);
}
//====================================================================================
 
Söyle bana, MT'de durarak bir pozisyon açabilir misin? Örneğin destek/direnç için stop oluşturuyoruz, eğer kırılırsa stopta pozisyon açılıyor.
 
Craft :
Söyle bana, MT'de durarak bir pozisyon açabilir misin? Örneğin destek/direnç için stop oluşturuyoruz, eğer kırılırsa stopta pozisyon açılıyor.

Kesinlikle. Sadece buna bir durdurma değil, bekleyen bir emir denir. Bir terminal açın. İçinde F1'e basın. Açılan pencerede İçindekiler - İşlem - Emir Tipleri'ni açın.