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

 
Mathers :

Sağ.
 
İyi günler, forum üyeleri.Bir trend çizgisi oluşturmak için ilginç bir kod buldum.Ve onunla biraz oynamaya karar verdim - böylece trendi puan olarak değil, yüzde olarak çizerdim, ama bir nedenden dolayı - revizyonumdan sonra hindi tarih çizmeyi bırakıyor - sadece son üç çubuk (daha doğrusu hindiyi başlatırsanız, normal başladığı andan itibaren bir trend çizgisi çiziyor, ancak hindi güncellemesine tıkladığınız anda - özellikler>Tamam, geçmiş sıfırlandı). Neyi yanlış yaptım Kimyaya bir hafta harcıyorum, kafamı kırıyorum ve hiçbir şey
Aşağıda kod var, biri bana sümükünün ne olduğunu söyleyebilir mi - eklediğim parça kalın harflerle vurgulanmış mı?
Türkiye'nin görevi, tarihi hemen çok geriye çekmek ve parametreleri değiştirdikten sonra sıfırlamamaktır.
#özellik göstergesi_separate_window
#özellik göstergesi_tamponları 1
#özellik göstergesi_color1 KireçYeşil

çift AUD;

harici int PerAvr=5,Delta=1;
çift Idx[];
//+------------------------------------------- --------------------+
//| özel gösterge başlatma işlevi |
//+------------------------------------------- --------------------+
int init()
{
//---- göstergeler

SetIndexStyle(0,DRAW_LINE,STYLE_SOLID,2);
SetIndexBuffer(0,idx);

//----
dönüş(0);
}
//+------------------------------------------- --------------------+
//| Müşteri göstergesi sıfırlama işlevi |
//+------------------------------------------- --------------------+
int tanım()
{
//----

//----
dönüş(0);
}
//+------------------------------------------- --------------------+
//| özel gösterge yineleme işlevi |
//+------------------------------------------- --------------------+
int başlangıç()
{
int counted_bars=IndicatorCounted();
if(counted_bars<0) return(-1);
if(counted_bars>0) counted_bars--;
int limit=barlar-sayılan_barlar;
for(int i=limit; i>=0; i--)
{
AUD=(iMA("AUDUSD",0,PerAvr,0,MODE_LWMA,PRICE_CLOSE, i)-iMA("AUDUSD",0,PerAvr,0,MODE_LWMA,PRICE_CLOSE,i+De lta) *100/iMA("AUDUSD ",0,PerAvr,0,MODE_LWMA,PRICE_CLOSE,i+Delta));

//if (Para Birimi == "AUDUSD")
Idx[i] = AUD;



}

//----

//----
dönüş(0);
}
//+------------------------------------------- --------------------+
 
Lonely_man :
İyi günler, forum kullanıcıları. Bir trend çizgisi oluşturmak için ilginç bir kod buldum ve onunla biraz oynamaya karar verdim.

Hemen, nedense bir şakayı hatırladım - bir programcının ailesinde, oğul babaya gelir ve güneşin neden doğudan doğup batıdan battığını sorar?

Baba bilgisayardan bakmadan doğuda gerçekten yükseliyor mu? -Evet. -Batıdan mı giriyor? - Evet - Ve ne, her gün mü? - Evet. - Her şey çalıştığı için hiçbir şeye dokunmanıza gerek yok.

 
Roger :

Hemen, nedense bir şakayı hatırladım - bir programcının ailesinde, oğul babaya gelir ve güneşin neden doğudan doğup batıdan battığını sorar?

Baba bilgisayardan bakmadan doğuda gerçekten yükseliyor mu? -Evet. -Batıdan mı giriyor? - Evet - Ve ne, her gün mü? - Evet. - Her şey çalıştığı için hiçbir şeye dokunmanıza gerek yok.

:))
 
Lonely_man :
İyi günler, forum kullanıcıları. Bir trend çizgisi oluşturmak için ilginç bir kod buldum ve onunla biraz oynamaya karar verdim.

şakanın ne olduğunu anlıyorsunuz - çalışma kodunu ilkelerinize göre değiştirdiniz ve bilgili insanlardan oluşan bir tugayın sövelerin tanımlanmasına atılmasını istiyorsunuz

Almak istediğiniz bilgiyi yorumda göstermeyi denediniz mi? her şeyin çalışıyor olması mümkündür, mevcut fiyatta değil, grafiğin en üstünde bir yerde görüntülenen verileri alırsınız - bence ayrı rüzgar

PS başarısı

 
IgorM :

şakanın ne olduğunu anlıyorsunuz - çalışma kodunu ilkelerinize göre değiştirdiniz ve bilgili insanlardan oluşan bir tugayın sövelerin tanımlanmasına atılmasını istiyorsunuz

Almak istediğiniz bilgiyi yorumda göstermeyi denediniz mi? her şeyin çalışıyor olması mümkündür, mevcut fiyatta değil, grafiğin en üstünde bir yerde görüntülenen verileri alırsınız - bence ayrı rüzgar

PS başarısı

Ayrı gelince - farkındayım, bu ayrı bir pencerede ve çizildi, bununla ilgili değil.Bu kodla ne olduğunu görebilirsiniz - görünüşe göre yüzdeler için bu hesaplama yöntemi işe yaramayacak ((.

Hemen, nedense bir şakayı hatırladım - bir programcının ailesinde, oğul babaya gelir ve güneşin neden doğudan doğup batıdan battığını sorar?

Baba bilgisayardan bakmadan doğuda gerçekten yükseliyor mu? -Evet. -Batıdan mı giriyor? - Evet - Ve ne, her gün mü? - Evet. - Her şey çalıştığı için hiçbir şeye dokunmanıza gerek yok.

))) Ne yapmak istediğimi tam olarak bilmiyorsunuz.İpucu: Buna döviz kurları ticareti yapmak için ihtiyacım var - İngiliz doları veya yen karşısında puanlardaki bir değişiklik, hangisinin düştüğü konusunda tam bilgi vermiyor. Diğeri, ancak yüzde değişimi her şeyi açıkça gösteriyor - dolar karşısında - fazladan bir hindi çok faydalı bir şey.
 
Mathers :
Teşekkür ederim. Anladığım kadarıyla, tek fark, danışman her yeni bir onay işareti geldiğinde başlatılıyor ve betiğin her zaman çalışması için sonsuz bir döngüde çalıştırılması gerekiyor mu?


Gerekli değil. Her şey senaryonun amacına bağlıdır. Komut dosyası bir kerelik yürütme için tasarlandıysa (ve bunların büyük çoğunluğu), sonsuz döngüler icat etmeye gerek yoktur. Böyle bir kerelik senaryoya bir örnek, önceden belirlenmiş bir lot ile bir anlaşma açarken piyasaya dahil olacak para miktarını hesaplama ihtiyacıdır. Minimum lotlu bir puanın fiyatı farklı enstrümanlar için farklı olduğundan, her yeni işlem için marjın her seferinde hesaplanmaması için istenen enstrümanı açmak, üzerine bir script atmak, planlanan lotu girmek daha kolaydır. parametreler penceresi ve sonuç olarak anlaşma açıksa ne kadar fonun bloke edileceğini görün.

Bu sadece bir örnek. Komut dosyalarının amacı farklı olabilir.

 
Lonely_man :

Ayrı gelince - farkındayım, bu ayrı bir pencerede ve çizildi, bununla ilgili değil.Bu kodla ne olduğunu görebilirsiniz - görünüşe göre yüzdeler için bu hesaplama yöntemi işe yaramayacak ((.

Hemen, nedense bir şakayı hatırladım - bir programcının ailesinde, oğul babaya gelir ve güneşin neden doğudan doğup batıdan battığını sorar?

Baba bilgisayardan bakmadan doğuda gerçekten yükseliyor mu? -Evet. -Batıdan mı giriyor? - Evet - Ve ne, her gün mü? - Evet. - Her şey çalıştığı için hiçbir şeye dokunmanıza gerek yok.

))) Ne yapmak istediğimi tam olarak bilmiyorsunuz.İpucu: Buna döviz kurları ticareti için ihtiyacım var - İngiliz doları veya yen karşısında puanlardaki bir değişiklik, hangisinin düştüğü hakkında tam bilgi vermiyor. Diğeri, ancak yüzde değişimi her şeyi açıkça gösteriyor - dolar karşısında - fazladan bir hindi çok faydalı bir şey.

Çok basit bir gösterge, yüzdelerin puanlardan daha net olduğu gerçeğini anlamadım, ama neyse.

çok hata yapmışsın :)

1.

AUD=( iMA ( "AUDUSD" , 0 ,PerAvr, 0 , MODE_LWMA , PRICE_CLOSE , i)- iMA ( "AUDUSD" , 0 ,PerAvr, 0 , MODE_LWMA , PRICE_CLOSE ,i+Delta)* 100 / iMA ( "AUDUSD" , 0 ,PerAvr, 0 , MODE_LWMA , PRICE_CLOSE ,i+Delta));

Yüzdeleri doğru hesaplamak için parantezler eklenmelidir.

AUD=( ( iMA ( "AUDUSD" , 0 ,PerAvr, 0 , MODE_LWMA , PRICE_CLOSE , i)- iMA ( "AUDUSD" , 0 ,PerAvr, 0 , MODE_LWMA , PRICE_CLOSE ,i+Delta) ) * 100 / iMA ( "AUDUSD" , 0 ,PerAvr, 0 , MODE_LWMA , PRICE_CLOSE ,i+Delta));

2.


Türkiye'nin görevi, tarihi hemen çok geriye çekmek ve parametreleri değiştirdikten sonra sıfırlamamaktır.

En ilginç yanı, spor ilgisini uyandırması ve göstergenizin üzerinde yarım saat oturması.

Tarih neden dikkate alınmadı?
Cevap: bölme işlemini eklediniz

 100 / iMA ( "AUDUSD" , 0 ,PerAvr, 0 , MODE_LWMA , PRICE_CLOSE ,i+Delta)

Ve geçmişin en başında iMA ( "AUDUSD" , 0 ,PerAvr, 0 , MODE_LWMA , PRICE_CLOSE ,i+Delta) işlevinin 0 döndürmesi gerçeği dikkate alınmadı. Ve 0'a bölmeye çalıştığınızda, 4013 (ERR_ZERO_DIVIDE) hatasıyla "devre dışı kalırsınız", günlüğe bakın.

Bu nedenle, FOR döngüsüne bir kontrol daha eklemeniz gerekir.

 if ( iMA ( "AUDUSD" , 0 ,PerAvr, 0 , MODE_LWMA , PRICE_CLOSE ,i+Delta) == 0 ) continue ;

Ve her şey yoluna girecek. Aşağıda benim versiyonum var.

 #property copyright "Copyright © 2010, Анатолий Сергеев"
#property link      "mql.sergeev@yandex.ru"
#property indicator_separate_window
#property indicator_buffers 1
#property indicator_color1 LimeGreen

double AUD;

extern int PerAvr= 5 ,Delta= 1 ;
double Idx[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         | 
//+------------------------------------------------------------------+
int init(){
//---- indicators
   SetIndexStyle( 0 , DRAW_LINE , STYLE_SOLID , 2 );
   SetIndexBuffer ( 0 ,Idx);
//----
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start(){ 
   int counted_bars=IndicatorCounted();
   if (counted_bars< 0 ) return (- 1 );
   if (counted_bars> 0 ) counted_bars--;
   int limit= Bars -counted_bars;   
   for ( int i=limit; i>= 0 ; i--){
      double a = iMA ( "AUDUSD" , 0 ,PerAvr, 0 , MODE_LWMA , PRICE_CLOSE , i);
      double b = iMA ( "AUDUSD" , 0 ,PerAvr, 0 , MODE_LWMA , PRICE_CLOSE ,i+Delta);      
      if (b == 0 ) continue ;      
      AUD=((a-b)* 100 /b);
      Idx[i] = AUD;
   }
}
//+------------------------------------------------------------------+


 

#özellik göstergesi_renk1 Beyaz

Bu parametreyi start() modülünde programlı olarak değiştirmek mümkün müdür,

onlar. program sırasında arabellek için renk setini değiştirmek mümkün mü

 
valenok2003 :

#özellik göstergesi_renk1 Beyaz

Bu parametreyi start() modülünde programlı olarak değiştirmek mümkün müdür,

onlar. program sırasında arabellek için renk setini değiştirmek mümkün mü




Bu imkansız gibi görünüyor. Ve neden?