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

 
evillive : Daha kolay olamazdı, değil mi?

Belki öyledir. Eh, size söyledim - Ben bir çaydanlık, bir çaydanlık ... Burada en üst satırdaki kar puan olarak gösteriliyor, sadece 3 haneli olanlarda:


Anladığım kadarıyla, EURUSD için PipProfit = USDprofit/lot/Puan. Ters kotasyona sahip çiftler için, açılış ve cari fiyatlar arasındaki farkı alıp Rakamlarla çarpmanız gerekir: Pip = OrderOpenPrice()-Bid*Digits_coective; nerede
Rakamlar_katsayısı = MathPow(10, Rakamlar);

Farkı almaya gerek yok, OrderProfit() fonksiyonu var.

Camide mahsur kalmak için tekrar geçelim. Öyleyse, GBPJPY satın alın.

1. OrderProfit() -15.27 USD = -1228.32 JPY'ye eşittir (yen'e dönüştürmek için USDJPY oranıyla çarparız).

2. Karı, 0,1'e eşit olan lota bölün.

3. Sonucu, 0,01 JPY * 100000 = 1000 JPY'ye eşit 1 lotun pip fiyatına bölün. -12.28 puan alıyoruz, yani. olması gerektiği gibi.

Küçük bir hata - çünkü sayıları aynı anda almadı, ancak tam o sırada yen keskin bir şekilde güçlenmeye başladı.

XXXYYY için formül:

pip = ( USDYYY veya 1/YYYUSD ) * OrderProfit() / ( OrderLots() * Puan).

Burada Puan, YYY para biriminde 1 lotun puan fiyatıdır, 100000 * MathPow( 10, - Digits ).

 

Tünaydın.

Expert Advisor'ın optimize edilmemesinin nedenleri neler olabilir?

Yalnızca bir optimize edilmiş parametre vardır, göstergeler standarttır.

Test iyi gidiyor.

 
DOCTORS :

Bana söyler misin?

Senaryonun özü şudur - sipariş çakışmasını kapatır... Ama bir pürüz var - nedense farklı parti büyüklüklerine sahip siparişleri kapatmıyor...

Bana engelin nerede olduğunu söyleme?


Pekala, yeni başlayanlar için, kontrol yönünü ile değiştirin.

for(int i=1; i<=OrdersTotal(); i++) // Sipariş üzerinden döngü

üzerinde

for(int i=OrdersTotal() - 1; i>=0; i--) // Sipariş üzerinden döngü


her yerde

 
sting-igor :

Neden bazı uzman danışmanlar ilk başta test cihazında iyi çalışıyor ve sonra birden fazla işlem açmıyorlar? Danışmanların isimlerini hatırlamıyorum ama üç tane vardı, belki yanlış bir şey yapıyorum? mt4

Çarpık yazılmış bir Uzman Danışman , sıfıra bölme yapabilir ve ardından çalışmayı durdurabilir. ZeroDevide hatası için günlüğü kontrol edin...
 
ilunga :

Pekala, yeni başlayanlar için, kontrol yönünü ile değiştirin.

for(int i=1; i<=OrdersTotal(); i++) // Sipariş üzerinden döngü

üzerinde

for(int i=OrdersTotal() - 1; i>=0; i++) // Sipariş üzerinden döngü


her yerde


Soruyu kaldırdı çünkü. betiğin son derece yanlış olduğu ortaya çıktı ... Bitirecek çok şey var ... İşlemleri sıfıra kapatmasını istedim .. ve işte bu sadece bir örtüşme ... Yardımın için çok teşekkürler ... sıfır nasıl yapılır örtüşme - Sorular için göndereceğim.
 

Mathemat , saf bir sayı kar / zarara ihtiyacınız varsa, o zaman daha da kolay sayabilirsiniz, daha dün uyudum yazarken)))

Tüm döviz çiftleri için uygun evrensel formüller gibi görünüyor:

 double tickvalue = MarketInfo ( OrderSymbol (),MODE_POINT); //если нужно значение тика для инструмента в окне которого установлен эксперт, то просто используем Point в дальнейшем

Pips = ( OrderOpenPrice ()-Ask)/tickvalue; // order short

Pips = (Bid - OrderOpenPrice ())/tickvalue; // order long

.

 

rabbim yardım istiyorum.

Son x çubuk için fiyatın keneye değip değmediğini kontrol eden bir işleve mi ihtiyacınız var?

Çok tekme atmamanızı rica ediyorum, çünkü Ben tam bir çaydanlığım.

 

Müthiş göstergesi yalnızca 1H için nasıl yeniden yazılır . Diyelim ki 4H'ye Harika ekledim, göstergenin 4H değil 1H ile ilgili verileri göstermesini istiyorum.

//---- DataWindow ve gösterge alt pencere etiketi için isim
GöstergeShortName("AO");
SetIndexLabel(1, NULL);
SetIndexLabel(2, NULL);

ExtBuffer0[i]=iMA(NULL,0,5,0,MODE_SMA,PRICE_MEDIAN,i)-iMA(NULL,0,34,0,MODE_SMA,PRICE_MEDIAN,i);

NULL'u PeriodH1 olarak değiştiriyorum ama yardımcı olmuyor.

 
flintz :

Müthiş göstergesi yalnızca 1H için nasıl yeniden yazılır. Diyelim ki 4H'ye Harika ekledim, göstergenin 4H değil 1H ile ilgili verileri göstermesini istiyorum.

//---- DataWindow ve gösterge alt pencere etiketi için isim
GöstergeShortName("AO");
SetIndexLabel(1, NULL);
SetIndexLabel(2, NULL);

ExtBuffer0[i]=iMA(NULL,0,5,0,MODE_SMA,PRICE_MEDIAN,i)-iMA(NULL,0,34,0,MODE_SMA,PRICE_MEDIAN,i);

NULL'u PeriodH1 olarak değiştiriyorum ama yardımcı olmuyor.

NULL değil "0" değiştirin (NULL'dan sonraki parametre.)
 
Teşekkürler !!!