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

 
alsu :
ne olduğunu ve günlüğe hangi mesajları yazdırdığınızı yazın



Nereye girmesi gerektiğini gösterdim ama hangi fraktalları geçmesi gerektiğini girmedi. Peki program kodunu ve txt dosyasının testte ne gösterdiğini de arşive ekliyorum (değiştirdim, hata olduğu için kendim ekledim ama sorun devam ediyor). dürüst olmak gerekirse, hangi değişkenleri izleyeceğimi bile anlamıyorum (peki, ayrıca bir yer içeren bir fotoğraf da var

İşte uymadığı yer: )

Dosyalar:
ik.zip  4 kb
 

GetLot lot hesaplama fonksiyonunu başka bir danışmandan aldım (dosyada), eski danışmanda kendi başına hata yok, ancak danışmanımda veriyor

'(' - işlev tanımı beklenmeyen C:\Program Files\BCS Trade Station\experts\ SovetnikStochastic.mq4 (106, 15)
'Ücretsiz' - değişken tanımlanmadı C:\Program Files\BCS Trade Station\experts\ SovetnikStochastic.mq4 (112, 28)
'Risk' - değişken tanımlanmadı C:\Program Files\BCS Trade Station\experts\ SovetnikStochastic.mq4 (112, 33)
'Ücretsiz' - değişken tanımlanmadı C:\Program Files\BCS Trade Station\experts\ SovetnikStochastic.mq4 (115, 17)

sorun nedir?

Dosyalar:
 
Peki, neden hepiniz arşivcileri bu kadar çok seviyorsunuz? Kaynak chtoli'de 100500 satır kod var mı?!
 

griha :

GetLot lot hesaplama fonksiyonunu başka bir danışmandan aldım (dosyada), eski danışmanda kendi başına hata yok, ancak danışmanımda veriyor

'(' - işlev tanımı beklenmeyen C:\Program Files\BCS Trade Station\experts\ SovetnikStochastic.mq4 (106, 15)
'Ücretsiz' - değişken tanımlanmadı C:\Program Files\BCS Trade Station\experts\ SovetnikStochastic.mq4 (112, 28)
'Risk' - değişken tanımlanmadı C:\Program Files\BCS Trade Station\experts\ SovetnikStochastic.mq4 (112, 33)
'Ücretsiz' - değişken tanımlanmadı C:\Program Files\BCS Trade Station\experts\ SovetnikStochastic.mq4 (115, 17)

sorun nedir?

İşlev kodunda, ilk If'den önceki başlangıç, fazladan bir küme parantezine sahiptir, bu nedenle hatalar vardır. Köşeli parantezleri saymayı kolaylaştırmak için, her zaman önce her ikisini de koymaya çalışın ve sonra ihtiyacınız olanı girin ve daha da iyisi, bunları hemen yeni bir satırdan ofset ile girmek, böylece tek tek bloklar karışmaz (örneğin , önceki sayfada verilen kodda olduğu gibi)

not:

Bana göre partinin bu formüle göre hesaplanması

 double Lot     = MathFloor (Free*Risk/ 100 /One_Lot/Step)*Step;     // откидываем лишние знаки после запятой, оставляем 2 знака
0.01'den büyük adımlı lot 0.1 için doğru çalışmayacak, belki bir şeyi kaçırdım, ancak lot her zaman 0 olacak ( MathFloor (900*2/100/1324/0.02=0.67975831) = 0, bu nedenle 0*Adım= 0)...
 

Çift isteğe bağlıysa, seçilen sipariş için OrderProfitPips() gibi bir şeyi nasıl hesaplayacağımı çözemiyorum. Onlar. hesap para biriminde değil, pip cinsinden kâr.

Tam olarak piplere ihtiyacım var - farklı çiftler için çoklu para birimi ticaretinin etkinliğini analiz etmek için. Piplerin dört haneye (ya da çift yen ise sırasıyla iki haneye) ihtiyacı vardır. Hesap para biriminin USD olduğunu ve sözleşme boyutunun 100.000 birim olduğunu varsayıyoruz.

Şimdi, eğer bir parite EURUSD gibiyse, o zaman her şey basittir:

pips = OrderProfit( ) / ( OrderLots( ) * 10. );


Parite AUDCHF ise, o zaman biraz daha karmaşıktır. Fatura frank olsaydı, formül tamamen aynı olurdu. Ama fatura bir dolarlık banknot, yani. OrderProfit() dolar olarak döner. Bu nedenle, kâr franka dönüştürülmelidir:

pips = USDCHF * OrderProfit( ) / ( OrderLots( ) * 10. );

Böyle?

 
Mathemat :

Çift isteğe bağlıysa, seçilen sipariş için OrderProfitPips() gibi bir şeyi nasıl hesaplayacağımı çözemiyorum. Onlar. hesap para biriminde değil, pip cinsinden kâr.

Tam olarak piplere ihtiyacım var - farklı çiftler için çoklu para birimi ticaretinin etkinliğini analiz etmek için. Piplerin dört haneye (veya çift yen ise sırasıyla iki haneye) ihtiyacı vardır. Hesap para biriminin USD olduğunu ve sözleşme boyutunun 100.000 birim olduğunu varsayıyoruz.

Şimdi, eğer bir parite EURUSD gibiyse, o zaman her şey basittir:

pips = OrderProfit( ) / ( OrderLots( ) * 10. );


Parite AUDCHF ise, o zaman biraz daha karmaşıktır. Fatura frank olarak olsaydı, formül tamamen aynı olurdu. Ancak fatura bir dolarlık banknottur, yani. OrderProfit() dolar olarak döner. Bu nedenle, kâr franka dönüştürülmelidir:

pips = USDCHF * OrderProfit( ) / ( OrderLots( ) * 10. );

Böyle?


Bunu http://www.fxtrademaker.com/fx_calculation.htm okudunuz mu? Yoksa http://thismatter.com/money/forex/leverage-margin-pips.htm mi?

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: Pips = OrderOpenPrice()-Bid*Digits_coective; nerede
Rakamlar_katsayısı = MathPow(10, Rakamlar);

 

Evet, her iki bağlantı da faydalı görünüyor. Teşekkür ederim.

PS Pip cinsinden değil, hesap para biriminde saymaya karar verdim. Çok ölçülemeyen yen pip rakamları normal olanlarla kesişiyor. Ve onları katlamak istedim (şartlı olarak elbette) ...

 
Mathemat :

Evet, her iki bağlantı da faydalı görünüyor. Teşekkür ederim.

PS Pip cinsinden değil, hesap para biriminde saymaya karar verdim. Çok ölçülemeyen yen pip rakamları normal olanlarla kesişiyor. Ve onları katlamak istedim (şartlı olarak elbette) ...


Pipler piptir, nasıl kıyaslanamaz olabilirler? Eurodollar'daki 20 piplik kâr, Yen'deki 20 piplik kârdan nasıl farklıdır? Muhtemelen yanlış düşünüyorsunuz... Ama hesap para biriminde hesaplama yapmak gerçekten daha kolay.

 
evillive : , nasıl kıyaslanamaz olabilirler?

Böylece kendi bağlantınızda (ikinci) her şey görünür:

100.000 birim EUR/JPY = 164.09 alır ve EUR/JPY = 164.10 ve USD/JPY = 121.35 olduğunda satarsınız .

JPY pip cinsinden kar = 164.10164.09 = .01 yen = 1 pip (Yen istisnasını unutmayın: 1 JPY pip = .01 yen .)

JPY pip cinsinden Toplam Kar = 1 x 100.000 = 100.000 pip .
Yen cinsinden Toplam Kar = 100.000 pip / 100 = 1.000 Yen

Yalnızca USD/JPY = 121.35 için teklifiniz olduğundan, USD cinsinden kâr elde etmek için, teklif para biriminin dönüştürme oranına bölersiniz:

USD cinsinden Toplam Kar = 1.000 / 121.35 = 8.24 USD.

Yalnızca yukarıdaki değere eşdeğer olan JPY/USD = 0.00824 fiyat teklifine sahipseniz, yen cinsinden pipleri yerel para birimine dönüştürmek için aşağıdaki formülü kullanırsınız:

USD cinsinden Toplam Kar = 1.000 x 0.00824 = 8.24 USD.

8.24 USD'lik kar (örneğin, 1 lot EURUSD başına 0.824 pip'e eşit) örnekte yüz bin yen pip'e eşittir!

PS Kendimi tam bir acemi gibi hissediyorum...

 
Mathemat :

Böylece kendi bağlantınızda (ikinci) her şey görünür:

8.24 USD'lik kar (1 lot EURUSD başına 0.824 pip'e eşittir) yüz bin yen pip'e eşittir!


Orada okumayın. Ters kotasyonlu çiftler için , açılış ve cari fiyatlar arasındaki farkı alıp Digits ( Pip = (Bid -OrderOpenPrice())*Digits_coective; ) 'den elde edilen çarpan ile çarpmanız gerekir. Bu çarpan (80.60-80.45=) 0.15) * MathPow(10, Basamak) = 15 pip, burada

Digits_coefficient  = MathPow ( 10 , Digits );

Her zamankinden daha kolay, değil mi?

Not: Hayır olsa da, daha kolay olabilir)))

 Pips = (Bid - OrderOpenPrice ())/ Point ; //ордер лонг
 Pips = ( OrderOpenPrice () - Ask)/ Point ; //ордер шорт

Ve bu ifade TÜM döviz çiftleri için geçerlidir!

Neden: