Alım-satım fırsatlarını kaçırıyorsunuz:
- Ücretsiz alım-satım uygulamaları
- İşlem kopyalama için 8.000'den fazla sinyal
- Finansal piyasaları keşfetmek için ekonomik haberler
Kayıt
Giriş yap
Gizlilik ve Veri Koruma Politikasını ve MQL5.com Kullanım Şartlarını kabul edersiniz
Hesabınız yoksa, lütfen kaydolun
Burada neoklasik kodu kullanarak her iki enstrüman için dinamik lot hesaplama işlevini anladım.
Danışmanlarda kullanmak için. Kontrol et, tamam mı?
Risk parametresi, risk aldığımız yüzdedir.
Seçenekler:
extern string Symbol_1 = "6EM0";
extern string Symbol_2 = "6SM0";
extern double Risk = 10;
string lotsinfo;
double Lots_1; double Lots_2;
kod:
void CountLots()
{
//расчет соотношения лотов по инструментам
double ynax=MarketInfo(Symbol_1, MODE_TICKVALUE)/MarketInfo(Symbol_2, MODE_TICKVALUE)*
(iOpen(Symbol_1,0,0)/MarketInfo(Symbol_1, MODE_TICKSIZE))/(iOpen(Symbol_2,0,0)/MarketInfo(Symbol_2, MODE_TICKSIZE));
double minx=0, miny=0, mindelta=9999;
for (double x=0.01; x<=1; x+=0.01)
{
for (double y=0.01; y<=1; y+=0.01)
{
double delta=MathAbs(y/x-ynax);
if (delta<mindelta)
{
minx=x;
miny=y;
mindelta=delta;
}
}
}
double LotsS1=minx;
double LotsS2=miny;
//расчет динамического лота с заданным параметром Risk
string Symb1=Symbol_1;
string Symb2=Symbol_2;
double Min_Lot1=MarketInfo(Symb1,MODE_MINLOT);// Мин. размер лота
double Min_Lot2=MarketInfo(Symb2,MODE_MINLOT);// Мин. размер лота
double Step1 =MarketInfo(Symb1,MODE_LOTSTEP);//Шаг изменен лотов
double Step2 =MarketInfo(Symb2,MODE_LOTSTEP);//Шаг изменен лотов
double Free =AccountFreeMargin(); // Свободн средства
double One_Lot1=MarketInfo(Symb1,MODE_MARGINREQUIRED);//Стоим.1 лота
double One_Lot2=MarketInfo(Symb2,MODE_MARGINREQUIRED);//Стоим.1 лота
double Lot1=MathFloor(Free*Risk/100/One_Lot1/Step1)*Step1;// Лоты
double Lot2=MathFloor(Free*Risk/100/One_Lot2/Step2)*Step2;// Лоты
//приведение размера лотов Lots_1/Lots_2 к нужному соотношению LotS1/LotS2, учитывая Lot1 и Lot2
if (LotsS1<=LotsS2)
{
Lots_1=Lot1; //меньший по соотношению оставляем как есть
Lots_2=Lot1/LotsS1*LotsS2; //больший по соотношению нормализуем
}
else
{
Lots_2=Lot2; //меньший по соотношению оставляем как есть
Lots_1=Lot2*LotsS1/LotsS2; //больший по соотношению нормализуем
}
//проверяем возможность торговать
if ((Lots_1<Min_Lot1)||(Lots_2<Min_Lot2))
string lotsalert=StringConcatenate("Нет средств для торговли с Risk=",Risk,"%.\n");
else lotsalert="";
//выводим информацию в строку
lotsinfo=StringConcatenate(lotsalert,
"Risk = ",Risk,"%. Лот ",Symbol_1," = ",Lots_1,", Лот ",Symbol_2," = ",Lots_2,".\n");
//Comment(lotsinfo);
}
Eklendi. Sayesinde!
İyi çalışıyor gibi görünüyor!
Eklendi. Sayesinde!
İyi çalışıyor gibi görünüyor!
Evet... Parti boyutunu enstrüman adım parti ile normalleştirmek gerekiyor... Aksi halde 0.1831 partisi doğru değil... Şu anda...
Evet... Parti boyutunu enstrüman adım parti ile normalleştirmek gerekiyor... Aksi halde 0.1831 partisi doğru değil... Şu anda...
Bu blok bu şekilde yapılmalı ve lot sayısı doğru olacaktır.
//приведение размера лотов Lots_1/Lots_2 к нужному соотношению LotS1/LotS2, учитывая Lot1 и Lot2
int Step;
if (LotsS1<=LotsS2)
{
Step = MathCeil(MathAbs(MathLog(Step2)/MathLog(10)));
Lots_1=Lot1; //меньший по соотношению оставляем как есть
Lots_2=NormalizeDouble((Lot1/LotsS1*LotsS2),Step); //больший по соотношению нормализуем
}
else
{
Step = MathCeil(MathAbs(MathLog(Step1)/MathLog(10)));
Lots_2=Lot2; //меньший по соотношению оставляем как есть
Lots_1=NormalizeDouble((Lot2*LotsS1/LotsS2),Step); //больший по соотношению нормализуем
}
Evet... Parti boyutunu enstrüman adım parti ile normalleştirmek gerekiyor... Aksi halde 0.1831 partisi doğru değil... Şu anda...
Herkese merhaba, uzun zamandır şubeyi takip ediyorum, lotların büyüklüğünü belirlemek için biraz farklı bir seçenek öneriyorum:
Ayrıca iyi bir yaklaşım. Sadece sen göstermedin - programlı olarak nasıl hesaplanır
(Mediana( symbol_1 ) ve Mediana(symbol_2).
Bu arada, algoritmanıza göre GCG0+UMH0 tandem lotları nasıl elde edilir?
Bu arada, algoritmanıza göre GCG0+UMH0 tandem lotları nasıl elde edilir?
ve yine de eski lotları senkronize etme yöntemim daha doğru
ayarlara baz lotu ve iki enstrümanı girin, komut dosyasını tabloya bırakın ve işiniz bitti...
Düşünce İçin Gıda : Borsa Yatırım Fonları (ETF)
Görünüşe göre, bu fonla "acele etmek" ilginç olacak:
MKT VCTR RUSYA SBI