Nasıl kodlanır? - sayfa 97

 
matrixebiz:
Tamam, eve gidince deneyeceğim ama o zaman neden hala Satın Alma siparişleriyle çalışıyor? teşekkürler

Bir Satış emrinde olabilirsiniz, ancak fiyat, Satın alma durdurma değişiklik kodunun koşulunu karşılar, bu nedenle değiştirilir ve artık Satış bölümünün koşullarını karşılamaz, dolayısıyla orada değişmez.

büyük olmak

 

Yardımın için teşekkürler Big Be ama eski kodumun işe yaradığını yeni fark ettim ama SAT emirlerinin değiştirilmesi için StopLoss kullanımını etkinleştirmem gerekiyor.

Garip, bir SATIN AL emriyle çalışmak için MoveStopOnce için bir TakeProfit'i etkinleştirmem gerekmiyor ama SAT emrini değiştirmek için MoveStopOnce için StopLoss'u etkinleştirmem gerekiyor.

Oh, peki, nedenini bilmiyorsan, bunu anlamak için koda biraz daha derinlemesine bakmam gerekecek.

EDIT: olarak değiştirirseniz;

if(0 < OrderOpenPrice() - Point * MoveStopTo) {

[/code]

instead of;

[code]

if(OrderStopLoss() < OrderOpenPrice() - Point * MoveStopTo) {

İyi çalışıyor gibi görünüyor.

teşekkürler

 

Konum Boyutlandırma Hesaplayıcı ile ilgili Yardıma ihtiyacınız var

TAMAM,

bu yüzden "Kelly Formülü"ne dayalı bir işlev olarak bir Konum Boyutlandırma hesaplayıcısı yapıyorum

(Kazanma Oranı-((1-Kazanma Oranı)/(Ort Kazanç/Ort Kayıp)

Gerekli değişkenler için manuel girişler (harici) ile çalışan tüm kod ve hesaplamaları yaptım ve şimdi belirli hesap bilgilerini çağırarak işlevi dinamik olarak çalıştırmaya çalışıyorum (yani Kazanma tutarlılık oranını (%) hesaplamak istiyorum), kazanan işlem başına ortalama # pip ve kaybedilen işlem başına ortalama # pip)

Üç işlevin (WinRate AvgWin & AvgLoss) çalışmasını sağlamak için her türlü yardımı kullanabilirim. Aylardır manuel giriş varyasyonunu kullanıyorum ve harika çalışıyor. İşte bu (otomatik) sürüm için bu noktaya kadar tam kod ... testte dinamik çıktı alamıyorum, her şey varsayılan ayara (50, 40, 20) geri dönüyor. Bunu, mevcut herhangi bir EA'ya test etmek ve kolay modülerleştirme için kendi EA'sı olarak ayarladım. herhangi bir grafiğe eklendikten sonra çıktı, günlük/uzman sekmesinde yazdırılır. fraktalların kullanımı, maksimum hesap büyümesi (veya minimum kayıp) için kasıtlıdır. Not olarak, MT tüccar platformunu sunan çoğu Broker, mini veya standart lotlar için fraktal ticarete izin verir. Bu, kısmi lot pozisyonlarını kaldırabilen para yönetimi ile gelecekte tam kullanımı kanıtlayacaktır (yani: 1 Lot'un %25'ini kaldırın). her neyse...

İhtiyacım olan gerçek zamanlı hesap bilgilerini toplamak için ...

1. tüm işlemleri sayın

2. karlı olan işlemleri sayın

vesaire vesaire.

Bu konuda doğru yolda olabilirim de olmayabilirim de.

Tüm yardımlar için şimdiden teşekkürler...

Deniz Kurdu

//+------------------------------------------- -------------------+

//| KellyFormula.mq4 |

//+------------------------------------------- -------------------+

# mülkiyet telif hakkı "deniz kurdu"

#özellik bağlantısı "deniz kurdu"

//+------------------------------------------- -------------------+

//| DIŞ BİLGİ GİRİŞİ |

//+------------------------------------------- -------------------+

harici int Hesabım = 1001; //------>>>> Hesap Kimliği

harici int ExpertID = 500001; //------>>>> Bu EA için Sihirli Sayı

harici çift PipDeğeri= 1.00; //------>>>> TÜM hesaplar için kullanın

harici çift PartiMaliyeti= 50.0; //------>>>> TÜM hesaplar için kullanın

dış çift PercentMax= 24.0; //------>>>> bir defada kaldıraçlı maksimum hesap yüzdesi

harici int TradesMax= 3; //------>>>> maksimum eşzamanlı işlem (örnek: %24/3 işlem = işlem başına %8)

extern bool UseKelly= true; //------>>>> Manuel geçersiz kılma geçişi

harici çift ManualLots= 1.0; //------>>>> "UseKelly" yanlışsa # lot

harici çift mWinRate= 50,00; //------>>>> % olarak kazanma tutarlılığı (manuel overide)

harici int mAvgWin= 40; //------>>>> kazanan ticaret başına ortalama # pip (manuel overide)

harici int mAvgLoss= 20; //------>>>> kaybedilen ticaret başına ortalama # pip (manuel overide)

//+------------------------------------------- -------------------+

//| uzman başlatma işlevi |

//+------------------------------------------- -------------------+

int init()

{

//----

//----

dönüş(0);

}

int tanım()

{

//----

//----

dönüş(0);

}

//+------------------------------------------- -------------------+

//| uzman başlatma işlevi |

//+------------------------------------------- -------------------+

int başlangıç()

{

//----

KonumSize();

{

Print("Lots=",PositionSize()," WinRate=",WinRate()," AvgWin=",AvgWin()," AvgLoss=",AvgLoss());

}

Comment("Geçerli Saat ",TimeToStr(TimeCurrent(),TIME_MINUTES)," GMT ",TimeToStr(TimeCurrent(),TIME_DATE)," ... Kazanma Oranı= ",WinRate()," Ort Win= ",AvgWin ()," Ort. Kayıp = ",Ort.Kayıp());

//----

dönüş(0);

}

//----

//+------------------------------------------- -------------------+

//| TÜM YENİ TİCARETLER İÇİN POZİSYON BOYUTU HESAPLA |

//+------------------------------------------- -------------------+

//------------------------>>>>

çift KonumSize()

{

//------------------------>>>> KELLY FORMULA KULLANMAYIN, SABİT ORAN KULLANIN

if(UseKelly == doğru)

{

double KelyForm = WinRate()-((1-WinRate())/(AvgWin()/AvgLoss()));

çift PerTrade;

çift Lot;

if(KelyForm > PercentMax)

{

PerTrade = (PercentMax/10)/TradesMax;

}

else if(KelyForm < PercentMax)

{

PerTrade = (KelyForm/10)/TradesMax;

}

else if(KelyForm == PercentMax)

{

PerTrade = (KelyForm/10)/TradesMax;

}

Lot = (PerTrade * AccountBalance()/LotCost);

dönüş(MathRound(Çok)/10);

}

}

//+------------------------------------------- -------------------+

//| GERÇEK ZAMANLI HESAP BİLGİLERİNİ TOPLA |

//+------------------------------------------- -------------------+

//------------------------>>>>

çift WinRate()

{

çift Bilet;

çift CountWins = 0;

for(Ticket=0;Ticket<OrdersTotal();Ticket++)

{

OrderSelect(Bilet,SELECT_BY_TICKET,MODE_HISTORY);

if(MyAccount==AccountNumber() && OrderSymbol()==Symbol() && OrderMagicNumber() == ExpertID)

{

//------>>>>

if(OrderType()==OP_BUY)

{

if(OrderClosePrice() >= OrderOpenPrice())

CountWins++;

}

else if(OrderType()==OP_SELL)

{

if(OrderClosePrice() <= OrderOpenPrice())

CountWins++;

}

}

}

if(CountWins > 0)

dönüş(MathRound(CountWins/OrdersHistoryTotal())*10);

başka

Print("Gerçek Zamanlı WinRate Kullanılamıyor");

dönüş(mWinRate);

}

//------>>>>

//------------------------>>>>

çift AvgWin()

{

çift Bilet;

double CountTrades = 0;

çift CountPips = 0;

for(Ticket=0;Ticket<OrdersTotal();Ticket++)

{

OrderSelect(Bilet,SELECT_BY_TICKET,MODE_HISTORY);

if(MyAccount==AccountNumber() && OrderSymbol()==Symbol() && OrderMagicNumber() == ExpertID)

{

//------>>>>

if(OrderType()==OP_BUY && OrderClosePrice()>=OrderOpenPrice())

CountTrades++;

{

if(OrderProfit() >= 0)

CountPips++;

}

if(OrderType()==OP_SELL && OrderClosePrice()<=OrderOpenPrice())

CountTrades++;

{

if(OrderProfit() >= 0)

CountPips++;

}

}

}

if(CountPip > 0)

dönüş(MathRound(CountPips/CountTrades)*10);

başka

Print("Gerçek Zamanlı Ortalama Kazanç Yok");

dönüş(mAvgWin);

}

//------>>>>

//------------------------>>>>

çift Ort.Kayıp()

{

çift Bilet;

double CountTrades = 0;

çift CountPips = 0;

for(Ticket=0;Ticket<OrdersTotal();Ticket++)

{

OrderSelect(Bilet,SELECT_BY_TICKET,MODE_HISTORY);

if(MyAccount==AccountNumber() && OrderSymbol()==Symbol() && OrderMagicNumber() == ExpertID)

{

//------>>>>

if(OrderType()==OP_BUY && OrderClosePrice()<OrderOpenPrice())

CountTrades++;

{

if(SiparişKar() < 0)

CountPips++;

}

if(OrderType()==OP_SELL && OrderClosePrice()>OrderOpenPrice())

CountTrades++;

{

if(SiparişKar() < 0)

CountPips++;

}

}

}

if(CountPip > 0)

dönüş(MathRound(CountPips/CountTrades)*10);

başka

Print("Gerçek Zamanlı Ort.Kayıp Bulunamadı");

dönüş(mAvgLoss);

}

//------------------------------------------------ ---------------------+

 

Kime: Matrixebiz

EDIT: if you change to;

if(0 < OrderOpenPrice() - Point * MoveStopTo) {

[/code]

instead of;

[code]

if(OrderStopLoss() < OrderOpenPrice() - Point * MoveStopTo) {

İyi çalışıyor gibi görünüyor.

teşekkürler

Rica ederim.

büyük olmak

 

Fxpro, sor

herkese merhaba.. FxPro'da çok sayıda EA'nın nasıl yapılandırılacağını sormak istiyorum..

6 haneli (1 hane fazladan) olduğu için kafam karıştı S/L ve T/P'yi düzelttim ama partiyi değiştiremiyorum..

işlem başına her zaman 0.4.. ben bile 0.1 veya 0.3 olarak değiştirsem bile

10points 3 EA kullandım..

Lütfen Bana Yardım Edin.. bana hansen_hardrocker@yahoo.co.id adresinden e-posta gönderin

yada PM lütfen..

her şey gönlünüzce olsun..

 

Ask_change Lot (fxpro)

Fxpro, sor

herkese merhaba.. FxPro'da çok sayıda EA'nın nasıl yapılandırılacağını sormak istiyorum..

6 haneli (1 hane fazladan) olduğu için kafam karıştı S/L ve T/P'yi düzelttim ama partiyi değiştiremiyorum..

işlem başına her zaman 0.4.. ben bile 0.1 veya 0.3 olarak değiştirsem bile

10points 3 EA kullandım..

Lütfen Bana Yardım Edin.. bana hansen_hardrocker@yahoo.co.id adresinden e-posta gönderin

yada PM lütfen..

her şey gönlünüzce olsun..

 

ben de istiyorum.lütfen bana omidchart@yahoo.com adresinden gönderin

 

Muhtemelen EA'da Para Yönetimini etkinleştirmiş olduğunuz için.

 

Teşekkür

matrixebiz:
Muhtemelen EA'da Para Yönetimini etkinleştirmiş olduğunuz için.

Teşekkürler dostum..

acemiyim..

 

Bu EA'yı Değiştirebilir misiniz?

Merhaba programcılar,

Mevcut fiyatın üstünde ve altında stop emirleri veren bu EA'ya sahibim. İhtiyacım olan şey, mevcut fiyatın üstünde ve altında stop emirleri yerine limit emirler verecek bir EA. Tüm parametreleri aynı tutarken bunu yapmak için bu EA'yı değiştirebilir misiniz?

Şimdiden teşekkürler,

Paul

Dosyalar: