[ARŞİV] Forumu kirletmemek için herhangi bir acemi sorusu. Profesyonel, kaçırmayın. Sensiz hiçbir yerde - 3. - sayfa 28

 
Buradaki "yanlış parametre sayısı" hatası nerede?
MA1 = iMA ( NULL , 0 , MA_Period1, MODE_SMA , PRICE_CLOSE , 0 );
 
Сvovan-gogan :
Buradaki "yanlış parametre sayısı" hatası nerede?


Tünaydın! Soruyu sorduğunuz için teşekkür ederim efendim. Hizmet etmekten mutlu.

Derinden eğilerek ve gayretle cevap veriyoruz:

iMA'da açıkça bir parametreyi kaçırıyorsunuz:

çift iMA ( string sembolü, int zaman çerçevesi, int periyot, int ma_shift , int ma_method, int uygulanan_fiyat, int shift)
Hareketli ortalama hesaplama.
Seçenekler:
semboller - Göstergenin hesaplanacağı sembolün sembolik adı. NULL, geçerli karakter anlamına gelir.
zaman aralığı - Dönem. Grafik dönemlerinden biri olabilir. 0, mevcut grafiğin periyodu anlamına gelir.
dönem - Hareketli ortalamayı hesaplamak için ortalama alma süresi.
ma_shift - Fiyat grafiğine göre gösterge kayması.
ma_yöntemi - Ortalama alma yöntemi. Hareketli Ortalama yöntemlerinin değerlerinden herhangi biri olabilir.
uygulanan_fiyat - Kullanılmış fiyat. Fiyat sabitlerinden herhangi biri olabilir.
vardiya - Gösterge arabelleğinden alınan değerin dizini (geçerli çubuğa göre belirtilen dönem sayısı kadar önce kayma).
--------------------------

Büyük olasılıkla bir parametre eksik:

ma_shift - Göstergenin fiyat tablosuna göre kayması.

Diğer sorularınızı bekliyoruz!

 
Çok teşekkürler)
 

Yardımınıza ihtiyaçım var.

Bu ifadenin çevrilmesi gerekiyor

 OrderOpenPrice ()- OrderClosePrice ()
puan sayısına girin ve lota bağlı olarak her bir pozisyon için karı hesaplayın veya durdurun. Ve son olarak toplam tutarı kârın yüzdesi olarak çekin veya durdurun
 
Vodya :

Yardımınıza ihtiyaçım var.

Bu ifadenin çevrilmesi gerekiyor

puan sayısında ......


İlk önce, istediğiniz konumu seçin.

( OrderOpenPrice() - OrderClosePrice() ) /Point - bu, seçilen pozisyonun puan cinsinden karı/zararı olacaktır

---------------

Ancak genel olarak, hesaplamalarınız için I. Kim'in uygun işlevlerini almak daha iyidir. Ve görev birkaç kez basitleştirilecek.

https://www.mql5.com/ru/forum/131859

https://www.mql5.com/ru/forum/131859/page3#434225

 
leonid553 :


İlk önce, istediğiniz konumu seçin.

( OrderOpenPrice() - OrderClosePrice() ) * Puan - bu, seçilen pozisyonun puan cinsinden karı/zararı olacaktır

---------------

Ancak genel olarak, hesaplamalarınız için I. Kim'in uygun işlevlerini almak daha iyidir. Ve görev birkaç kez basitleştirilecek.

https://www.mql5.com/ru/forum/131859

https://www.mql5.com/ru/forum/131859/page3#434225


Teşekkür ederim. Ama işlevinde ihtiyacım olanı bulamadım. Ve bu durumda ( OrderOpenPrice() - OrderClosePrice() ) * Point Bunu beğendim ( OrderOpenPrice() - OrderClosePrice() ) / Point

000000000000000 ile çarparken, çıkıyorlar

 

Evet, tabi ki - ben tarif ettim - Noktaya bölmeniz gerekiyor ama hiç çarpmamalısınız!

Fonksiyonlara göre.

Çok basit. Örneğin. Açık işlemlerin (varsaydığımız) mevduatının para birimi cinsinden cari karı (veya zararı) bulmanız gerekir - eurodollar için alım -pozisyonları ve pound/dolar için satış pozisyonları.

İşlevi alın https://www.mql5.com/ru/forum/131859/page3#434223

ve kodunuzun en sonuna kopyalayın (BAŞLAT işlevinin dışında)

Ardından, pozisyonlarınızın mevduat para birimi cinsinden mevcut kârı (BAŞLAT işlevinde ayarlanır):

double PROFIT_EURODOLLAR = GetProfitOpenPosInCurrency( EURUSD , OP_BUY , -1) ;

double PROFIT_GBDUSD = GetProfitOpenPosInCurrency( GBPUSD , OP_SELL , -1) ;

Bu pozisyonları açarken büyü belirttiyseniz, "-1" yerine büyü belirtin.

Mevcut sembol için pozisyon kârını bulmanız gerekiyorsa, yani. EA'nın kurulu olduğu ve çalıştığı çizelgede:

double PROFIT_NULL = GetProfitOpenPosInCurrency( NULL , OP_SELL , -1) ;

 
leonid553 :

Evet, tabi ki - ben tarif ettim - Noktaya bölmeniz gerekiyor ama hiç çarpmamalısınız!

Fonksiyonlara göre.

Çok basit. Örneğin. Açık işlemlerin (bizim varsaydığımız) mevduatının para birimi cinsinden cari karı (veya zararı) - eurodolar cinsinden alım - pozisyonları ve pound / dolar cinsinden satış - pozisyonlarını bulmanız gerekir.

İşlevi alın https://www.mql5.com/ru/forum/131859/page3#434223

ve kodunuzun en sonuna kopyalayın (BAŞLAT işlevinin dışında)

Ardından, pozisyonlarınızın mevduat para birimi cinsinden mevcut kârı (BAŞLAT işlevinde ayarlanır):

double PROFIT_EURODOLLAR = GetProfitOpenPosInCurrency( EURUSD , OP_BUY , -1) ;

double PROFIT_GBDUSD = GetProfitOpenPosInCurrency( GBPUSD , OP_SELL , -1) ;

Bu pozisyonları açarken büyü belirttiyseniz, "-1" yerine büyü belirtin.

Mevcut sembol için pozisyon kârını bulmanız gerekiyorsa, yani. EA'nın kurulu olduğu ve çalıştığı çizelgede:

double PROFIT_NULL = GetProfitOpenPosInCurrency( NULL , OP_SELL , -1) ;


Tavsiye için teşekkürler.

Ama bunu, ilk mevduatın yüzdesi olarak kâr ve mevduattan kaynaklanan zararın hesaplanması için yapmak istiyorum. Hesaplamak mümkündür, ancak yalnızca her işlem için toplamda çalışmaz.

 
Vodya :


Tavsiye için teşekkürler.

Ama bunu, ilk mevduatın yüzdesi olarak kâr ve mevduattan kaynaklanan zararın hesaplanması için yapmak istiyorum. Hesaplamak mümkündür, ancak yalnızca her işlem için toplamda çalışmaz.

Kar ve Zarar hesaplama işlevleri aşağıdadır.

Kâr ve Zararın büyüklüğüne / değerine sahip olarak, mevduatın yüzdesi olarak bunun ne olduğunu hesaplayabilirsiniz.

 double Profit(){
   double profit= 0 ; 
   for ( int i= OrdersHistoryTotal ()- 1 ; i>= 0 ; i--){
     if (! OrderSelect (i,SELECT_BY_POS,MODE_HISTORY)) continue ; 
     if ( OrderSymbol ()!= Symbol ()) continue ;
     if ( OrderMagicNumber ()!=Magic) continue ;
     if ( OrderType ()> 1 ) continue ;
     if ( OrderProfit ()> 0 )profit+= OrderProfit ();
    }        
 return (profit);} 

 double Loss(){
   double loss= 0 ; 
   for ( int i= OrdersHistoryTotal ()- 1 ; i>= 0 ; i--){
     if (! OrderSelect (i,SELECT_BY_POS,MODE_HISTORY)) continue ; 
     if ( OrderSymbol ()!= Symbol ()) continue ;
     if ( OrderMagicNumber ()!=Magic) continue ;
     if ( OrderType ()> 1 ) continue ;
     if ( OrderProfit ()< 0 )loss+= OrderProfit ();
    }        
 return (loss);} 
 
charter :

Kar ve Zarar hesaplama işlevleri aşağıdadır.

Kâr ve Zararın büyüklüğüne / değerine sahip olarak, mevduatın yüzdesi olarak bunun ne olduğunu hesaplayabilirsiniz.


Teşekkürler.

Ama bu satırda derleme yaparken

 double Profit(){

'(' - işlev tanımı beklenmeyen

ve bu '}' - son dönüşün (0) olduğu dengesiz parantezler

Bu nereye yerleştirilmelidir? belki yanlış yere koydum