MQL4 ve MQL5 ile ilgili herhangi bir acemi sorusu, algoritmalar ve kodlar hakkında yardım ve tartışma - sayfa 650

 

Ticaret, otomatik ticaret sistemleri ve ticaret stratejilerinin test edilmesi hakkında forum

MQL4, yardım ve algoritmalar ve kodlar hakkında herhangi bir acemi sorusu

Taras Slobodyanik , 2018.10.07 09:47

Örnek olarak yazıyorum)

sembolü hatırlamak gereksizse, evet, onu hatırlayamazsınız

ad yalnızca bir grafik kimliği ise, gereksiz değişkenler nasıl silinir?
(sık kullanımda bir sürü değişken yazılacaktır)

önek yoksa - aynı, gereksiz değişkenler nasıl kaldırılır?


= Örnek olarak yazıyorum)

Peki, bulutsuz bilincin genişlemesi için, o zaman evet, iyi bir örnek öğrenmek için :-)

= ad yalnızca bir grafik kimliğiyse, gereksiz değişkenler nasıl silinir?

Neden onları silelim? Örneğin, yalnızca noktanın kaydedilmesi gerekiyorsa, ad = önek + sembolü yeterlidir. Bir GP'den tamamen vazgeçilebileceğine dair bir varsayımım var - grafikte yalnızca bir çerçeve değiştirme işlemi yaparsam, bir sonraki tabloya geçmeden önce biter ve orada nokta tekrar yoklanır ve GP'nin üzerine yazılır. Bu durumda herhangi bir tuzak var mı?

 
Taras Slobodyanik :

kodum benim için çalışıyor, kodunuzu göremiyorum.
lütfen)

Bu yüzden senaryonuzu grafiğe ve 0 global değişkenler listesine attım.
 
inter78 :
Bu yüzden senaryonuzu grafiğe ve 0 global değişkenler listesine attım.

dama mı yoksa gidiyor musun?)
listeye görsel olarak bakmak, uzun vuruşlara bakmaktır, çift vuruşlar gibi - abrakadabra veya NaN var

 
psyman :

Neden onları silelim? Örneğin, yalnızca noktanın kaydedilmesi gerekiyorsa, ad = önek + sembolü yeterlidir. Bir GP'den tamamen vazgeçilebileceğine dair bir varsayımım var - grafikte yalnızca bir çerçeve değiştirme işlemi yaparsam, bir sonraki tabloya geçmeden önce biter ve orada nokta tekrar yoklanır ve GP'nin üzerine yazılır. Bu durumda herhangi bir tuzak var mı?

her şey hedefe bağlı

gösterge (veya her neyse) bir kopyada, bir sembolde çalışacaksa ve başka hiç kimse aynı değişkenleri yapmayacaksa, o zaman elbette rahatsız edemezsiniz

 
Taras Slobodyanik :

dama mı yoksa gidiyor musun?)
listeye görsel olarak bakmak, uzun vuruşlara bakmaktır, çift vuruşlar gibi - abrakadabra veya NaN var

Şimdi, az önce bana yazdıklarını anlasaydım, seni rahatsız etmezdim. Sadece programlama bilgim sıfıra iniyor. Ancak ChartID'yi bozulma olmadan global değişkenlere aktarabilirsem mutlu olurum. Teşekkür ederim.
 

Ticaret, otomatik ticaret sistemleri ve ticaret stratejilerinin test edilmesi hakkında forum

MQL4, yardım ve algoritmalar ve kodlar hakkında herhangi bir acemi sorusu

Taras Slobodyanik , 2018.10.06 21:47

       string name=prefix_gv+ "Price_" + IntegerToString (num, 4 , '0' );
       if ( GlobalVariableCheck (name) || GlobalVariableTemp (name))
         GlobalVariableSet (name, Line_ALL[i].price);
      

name değişkenine bir metin dizesinin değeri atanmasının ve ardından Line_ALL[i].price'ın buraya yazılmasının, ancak zaten bir GPU olarak nasıl bu kadar akıllıca ortaya çıktığını açıklayın.

Teoride, adın üzerine basitçe yazılmalıdır.

UPD

Anlaşılmış görünüyor - GPU'nun adını saklamak için olağan değişkene ihtiyaç var. Değişken isimleri aynı olabilir. Böyle?

 
psyman :

name değişkenine bir metin dizesinin değeri atanmasının ve ardından Line_ALL[i].price'ın buraya yazılmasının, ancak zaten bir GPU olarak nasıl bu kadar akıllıca ortaya çıktığını açıklayın.

Teoride, adın üzerine basitçe yazılmalıdır.

UPD

Anlaşılmış görünüyor - GPU'nun adını saklamak için olağan değişkene ihtiyaç var. Değişken isimleri aynı olabilir. Böyle?

name değişkeninde bir ad (metinsel) oluşturulur, ardından bu adla bir Global Değişken oluşturulur ve bu GP'ye bir değer yazılır.
yani, bir GPU listesi oluşturulur ve dizinin bir kısmı bunlarda depolanır.

1

 
inter78 :
Şimdi, az önce bana yazdıklarını anlasaydım, seni rahatsız etmezdim. Sadece programlama bilgim sıfıra iniyor. Ancak ChartID'yi bozulma olmadan global değişkenlere aktarabilirsem mutlu olurum. Teşekkür ederim.

kodum longchartID'yi geçici bir Global değişkene yazıyor.

Görsel olarak, F3'e basarsanız, orada sıfır (veya başka bir mükemmel değer) görüntülenir.
Bunun nedeni, terminalin bunun bir çift değer olduğunu düşünmesi ve göstermeye çalışmasıdır, ancak biz onu uzun kaydırdık - bu tamamen farklı bir sayı biçimidir.

Bu değer normal bir çift olarak geri okunursa, orada ne olduğu netleşmeyecektir.
Kodum tarafından okunursa, tekrar uzun olacak (kaydedilenle aynı).
Terminal penceresinde manuel olarak bu değişkene girerseniz, terminal bir ikame algılayacağı için sıfıra sıfırlanacaktır.

 
Taras Slobodyanik :

name değişkeninde bir ad (metinsel) oluşturulur, ardından bu adla bir Global Değişken oluşturulur ve bu GP'ye bir değer yazılır.
yani, bir GPU listesi oluşturulur ve dizinin bir kısmı bunlarda depolanır.


Ama bu koşul

 GlobalVariableCheck (name) || GlobalVariableTemp (name)

niye ya?

"GlobalVariableTemp geçici bir global değişken oluşturmaya çalışıyor" tanımı benim için net değil.

GlobalVariableSet yaptığında neden yaratmaya çalışalım?

UPD

OnInit'te şunu yazdım:

   string    GV_prefix= "ZZ_" ;
   string    ctime=GV_prefix+ _Symbol + "_" + ChartID ();
   GlobalVariablesDeleteAll ( NULL , 0 );
     if ( GlobalVariableCheck (ctime) || GlobalVariableTemp (ctime))
       GlobalVariableSet (ctime, Period ());

OnChartEvent'i arıyorum:

 if ( GlobalVariableGet (ctime)!= Period ()) 

Yanıt olarak, 'ctime' - bildirilmemiş tanımlayıcı mesajını alıyorum


 
psyman :

Ama bu koşul

niye ya?

GlobalVariable Check() - zaten böyle bir değişken olup olmadığını kontrol eder, değilse, o zaman
GlobalVariableTemp() - sonraki çalıştırmada silinecek geçici bir değişken oluşturur.

ruh hastası :

UPD

OnInit'te şunu yazdım:

OnChartEvent'i arıyorum:

Yanıt olarak 'ctime' mesajını alıyorum - bildirilmemiş tanımlayıcı

dizelerin OnInit'in üzerine, global kod değişkenlerine taşınması gerekir.

veya OnChartEvent'e ekleyin

 string    GV_prefix= "ZZ_" ;
string    ctime=GV_prefix+ _Symbol + "_" + ChartID ();