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

 

Bir zamanlar programlamanın temelleri öğretildi (25 yıl önce - Algol 60 :))) Sonra her şey bir algoritmanın (kareler, eşkenar dörtgenler) oluşturulmasıyla başladı ve sonra bu algoritma dil tarafından tanımlandı. Artık hiçbir yerde algoritma görmüyorum, komutları bilmiyorum.

Beyler, lütfen mantıklı bir mql4 öğreticisi önerin. Tercihen, algoritmadan başlayarak, Uzman Danışmanlar yazmanın belirli örnekleriyle .

 
v721965 писал(а) >>

Bir zamanlar programlamanın temelleri öğretildi (25 yıl önce - Algol 60 :))) Sonra her şey bir algoritmanın (kareler, eşkenar dörtgenler) oluşturulmasıyla başladı ve sonra bu algoritma dil tarafından tanımlandı. Artık hiçbir yerde algoritma görmüyorum, komutları bilmiyorum.

Beyler, lütfen mantıklı bir mql4 öğreticisi önerin. Tercihen, algoritmadan başlayarak, Uzman Danışmanlar yazmanın belirli örnekleriyle.

https://book.mql4.com/en/

 
alvish >> :
profesyoneller lütfen bana söyle, mql5 dil yardımına göre iHighest işlevi yoktur, N dönemi için maksimum yüksek nasıl hesaplanır??? ..kendin bir fonksiyon yazman gerekiyor, ..copyHigh ve fmax ile denedim, ama sadece belirli bir süre için ve elbette o değil, yardım

İşte size bir örnek:

         int shift_Box_Start = iBarShift ( NULL , 0 , TimeBoxStart ) ;
         Box_Start_High       = High [ iHighest ( NULL , 0 , MODE_HIGH , shift_Box_Start - i , i + 1 ) ] ;
         Box_Start_Low       =    Low [ iLowest ( NULL ,    0 , MODE_LOW ,   shift_Box_Start - i , i + 1 ) ] ;

Sadece vardiyaları düzgün bir şekilde ele alın.

 

1. EA'yı görselleştirme ile test modunda çalıştırmaya çalışıyorum. Uzman Danışman basittir: Uyarı yoluyla bir mesaj gönderir. Uyarı başlatıldığında, mesaj başlangıçta verilir. Başlatmaya ayarlandığında, EA yeni bir test işareti geldiğinde tepki vermez. Sorun ne?

2. Aynı test modunda, Uyarı (referans için) aracılığıyla Zaman[1], Kapat[1],... değerlerini veren bir komut dosyası çalıştırıyorum. Belirtilen değerlerin, grafikte oluşan test kene ve çubuklarının varış zamanına göre değil, mevcut (şimdiki) zamana göre alındığını öğrendim. Ne yapılabilir?

 
Roger писал(а) >>

Benim için EURGBP için - 0 (bu Alpari) kısa ve -0.68 uzun döndürür ve bu tam olarak dolar cinsindendir.

Alpari için takas hesaplama türü 0 ve bende 1 var,

Her türlü hesaplamayı bilmeme rağmen.

Bugün bilimsel yöntemle kontrol etmeye karar verdim, ama işe yaramadı, tüm kombinasyonları denedim: çarpma, bölme veya hiç kullanmadım.

İşte tüm bunları hesaplayan ve gerçek takasa en yakın değeri döndüren kod.

int a,b,c,d,dd;

dd=1;

double raznica;

for ( j=OrdersHistoryTotal( )-1; j>=OrdersHistoryTotal( )-21; j--) {

int a_=0,b_=0,c_=0,d_=0;

raznica=1000000;

OrderSelect(j, SELECT_BY_POS, MODE_HISTORY);

if(OrderSwap()!=0){

if(OrderType()==OP_BUY){

for(a=-dd;a<=dd;a++){

for(b=-dd;b<=dd;b++){

for(c=-dd;c<=dd;c++){

for(d=-dd;d<=dd;d++){

double gg=MathPow(MarketInfo(OrderSymbol(),MODE_SWAPLONG),a)*MathPow(OrderLots(),b)*MathPow(MarketInfo(OrderSymbol(),MODE_TICKVALUE),c)*MathPow(MarketInfo(OrderSymbol(),MODE_BID),d);

if(MathAbs(gg-OrderSwap())<raznica){raznica=MathAbs(gg-OrderSwap());a_=a;b_=b;c_=c;}

}}}}

Alert(" РЕАЛЬНЫЙ СВОП = "+OrderSwap()+"РАСЧЕТНЫЙ СВОП = "+gg+"\n a= "+a_+" b = "+b_+" c = "+c_+" d = "+d_);

}//if(OrderType()==OP_BUY){

if(OrderType()==OP_SELL){

for(a=-dd;a<=dd;a++){

for(b=-dd;b<=dd;b++){

for(c=-dd;c<=dd;c++){

for(d=-dd;d<=dd;d++){

gg=MathPow(MarketInfo(OrderSymbol(),MODE_SWAPSHORT),a)*MathPow(OrderLots(),b)*MathPow(MarketInfo(OrderSymbol(),MODE_TICKVALUE),c)*MathPow(MarketInfo(OrderSymbol(),MODE_BID),d);

if(MathAbs(gg-OrderSwap())<raznica){raznica=MathAbs(gg-OrderSwap());a_=a;b_=b;c_=c;}

}}}}

Alert(" РЕАЛЬНЫЙ СВОП = "+OrderSwap()+"РАСЧЕТНЫЙ СВОП = "+gg+"\n a= "+a_+" b = "+b_+" c = "+c_+" d = "+d_);

}//if(OrderType()==OP_SELL){

}//if(OrderSwap()!=0){

}//for ( j=OrdersHistoryTotal( )-1; j>=OrdersHistoryTotal( )-21; j--) {

Alpari veya BROKO için herhangi bir sonuç almadım.

yani

MarketInfo(OrderSymbol(),MODE_SWAPLONG)

OrderLots()

MarketInfo(OrderSymbol(),MODE_TICKVALUE)

MarketInfo(OrderSymbol(),MODE_BID)

Takas hesaplamak için yeterli değil.

Burada başka bir şey olmalı, ama ne?

 
Teşekkürler şef2000, ancak iHighest ve iLowest standardını kullanarak yazdınız ve mql 5'te onlarla ilgili sorun bu değil
 
alvish >> :
Teşekkürler şef2000, ancak iHighest ve iLowest standardını kullanarak yazdınız ve mql 5'te onlarla ilgili sorun bu değil

Şimdi görüyorum ki soruyu dikkatli okumamışım.

Gerçekten gerçekten 5. versiyonda her şeyi manuel olarak açıklamak gerekli mi? Burada doğru olmayan bir şey var - belki belgelerle ilgili bir sorun var mı?

 
kesinlikle
 
vasya_vasya >> :

Alpari için takas hesaplama türü 0 ve bende 1 var,


Vasya_Vasya peki neden yükseliyorsun, burada kısaca 'mql4'te takas et' cevabını verdim

gerekirse detaylandırabilirim

sadece 4 seçenek

her birinin kendi formülü vardır

 
kaisa писал(а) >>

Vasya_Vasya peki neden yükseliyorsun, burada kısaca 'mql4'te takas et' cevabını verdim

gerekirse detaylandırabilirim

sadece 4 seçenek

her birinin kendi formülü vardır

Evet, başka formüller alabilir miyim?