Bu durumda, denge bulutlarda olabilir ve eşitlik büyük bir düşüşte olabilir. Buna göre, partinin boyutu, açılması mümkün olandan daha büyük olabilir ve tüm yapı tepetaklak yuvarlanır...
Açmadan önce, partiyi gerçekten mümkün olana göre ayarlamak daha iyidir.
Bunun için bir fonksiyon yaptım. Victor ( Vinin ) tarafından biraz düzeltildi - deneyin:
// ===========================================================================// --- Функция рассчёта величины лота для открытия позиции. Редакция VininI---// Если лот превышает возможный для открытия позы, то он корректируется // ===========================================================================double CorrectLots( double lt)
{
double ltcorr;
double pnt = MarketInfo( Symbol (),MODE_POINT);
double mspr = MarketInfo( Symbol (),MODE_SPREAD);
double dig = MarketInfo( Symbol (),MODE_DIGITS);
double MaxLot = MarketInfo( Symbol (),MODE_MAXLOT);
double MinLot = MarketInfo( Symbol (),MODE_MINLOT);
double StpLot = MarketInfo( Symbol (),MODE_LOTSTEP);
double OneLot = MarketInfo( Symbol (),MODE_MARGINREQUIRED);
double TradeMrg = NormalizeDouble (AccountFreeMargin()/ 4.0 ,dig); // Свободные средства, разрешенные к торговлеdouble Money=lt*OneLot+mspr*pnt; // Вычисляем стоимость открываемой позыif (Money>=TradeMrg) // Если цена позиции равна или больше, чем есть свободных средств, то ...
{
lt= MathFloor (TradeMrg/OneLot/StpLot)*StpLot; // ... рассчитаем допустимый лотPrint ( "Func CorrectLots: полученный лот " ,lt, " скорректирован под допустимый " ,lt);
}
elsePrint ( "Func CorrectLots: лот вернули без изменений" );
lt= MathMin (MaxLot, MathMax (MinLot, lt)); // Проверим превышение допустимых ...return (lt);
}
artmedia70 : Bu durumda, denge bulutlarda olabilir ve eşitlik büyük bir düşüşte olabilir. Buna göre, partinin boyutu, açılması mümkün olandan daha büyük olabilir ve tüm yapı tepetaklak yuvarlanır...
neden bu kadar üzücü...
fonksiyonumdaki son getiri() enstrüman için mevcut minimum lotu verecektir, eğer hesap büyük kaldıraçlı bir sent hesabıysa, o zaman bakiye 600'den az olduğunda, EA muhtemelen bir süre daha işlem yapacak :)
Not: görev belirlidir ve sorgulayıcıya aramanın yönünü vermek için bir dal
fonksiyonumdaki son getiri() enstrüman için mevcut minimum lotu verecektir, eğer hesap büyük kaldıraçlı bir sent hesabıysa, o zaman bakiye 600'den az olduğunda, EA muhtemelen bir süre daha işlem yapacak :)
Not: görev belirlidir ve sorgulayıcıya aramanın yönünü vermek için bir dal
Peki, cömertçe bağışlayın... :) Bu kadar kızmayın efendim... :)
İşte benim sürümümdeki işlev:
// ==========================================================================// ------------ Функция рассчёта величины лота для открытия позиции ---------// Если лот превышает возможный для открытия позы, то он корректируется // ==========================================================================double CorrectLots( double lt)
{
double ltcorr;
double pnt = MarketInfo( Symbol (),MODE_POINT);
double mspr = MarketInfo( Symbol (),MODE_SPREAD);
double dig = MarketInfo( Symbol (),MODE_DIGITS);
double MaxLot = MarketInfo( Symbol (),MODE_MAXLOT);
double MinLot = MarketInfo( Symbol (),MODE_MINLOT);
double StpLot = MarketInfo( Symbol (),MODE_LOTSTEP);
double OneLot = MarketInfo( Symbol (),MODE_MARGINREQUIRED);
double TradeMrg = NormalizeDouble (AccountFreeMargin()/ 4.0 ,dig); // Свободные средства, разрешенные к торговле
lt= MathAbs (lt);
ltcorr=lt; // Зададим начальное значением ltcorr равным значению ltif (lt>=MaxLot) ltcorr=MaxLot; // Проверим превышение допустимых ...if (lt<=MinLot) ltcorr=MinLot; // ... значений лотаdouble Money=lt*OneLot+mspr*pnt; // Вычисляем стоимость открываемой позыif (Money<TradeMrg) // Если свободных средств больше, чем цена позиции -
{
return (ltcorr); // ... возвращаем неизменённый лот
}
elseif (Money>=TradeMrg) // Если цена позиции равна или больше, чем есть свободных средств, то ...
{
ltcorr= MathAbs ( MathFloor (TradeMrg/OneLot/StpLot)*StpLot); // ... рассчитаем допустимый лотdouble MoneyCorr=ltcorr*OneLot+mspr*pnt;
Print ( "Func CorrectLots: лот " ,lt, " скорректирован до " ,ltcorr,
" Стоимость позы до корректировки = " ,Money,
" Стоимость позы после корректировки = " ,MoneyCorr
);
return (ltcorr); // ... и вернём его значение
}
Print ( "Func CorrectLots: лот вернули без изменений" );
return (ltcorr); // Возврат изначального лота в непредусмотренных случаях с сообщением
}
fonksiyonumdaki son getiri() enstrüman için mevcut minimum lotu verecektir, eğer hesap büyük kaldıraçlı bir sent hesabıysa, o zaman bakiye 600'den az olduğunda, EA muhtemelen bir süre daha işlem yapacak :)
Not: görev belirlidir ve sorgulayıcıya aramanın yönünü vermek için bir dal
Görüyorsun, Igor - burada bir kişi sordu, ona doğru cevap verdin ve olduğu gibi unutabilirsin. Ama sonuçta, dengeden dans etmek içgüdüsel değildir. Dengenin çok yüksek göklerde olabileceği ve işlerin gerçek durumu nedeniyle - tasarruf zamanı. Ve burada hala Xr-r benzeriyiz ... ve siparişin üstünde ve büyük bir sürü ... ve o rr - bir kez, evet eksi olarak gittim ... Öz sermaye - orada, öyle olmasına rağmen zaten orada ... Bu nedenle, fonlardan dans etmenin dengeden daha iyi olduğunu önerdim ... :)
Lütfen yeni başlayanlara, tüm döviz çiftlerini aynı anda işlemesi için MQL4'teözel bir gösterge yazmanın mümkün olup olmadığını söyleyin. Anladığım kadarıyla, gösterge tablosunda 8 satıra kadar görüntülenebilir, ancak sadece bir satıra ihtiyacım olacak. Onlar. Tüm döviz çiftleri için aynı anda dizilerden veya değişkenlerden işlenen bu satır için bir dizi alabilir miyim?
Teorik olarak, herhangi bir engel görmüyorum. Başka bir soru, bu diziyi özel olarak işleyip işleyemeyeceğinizdir.
ve bir araç yazarken program kodundaki tüm döviz çiftlerine nasıl başvurabilirim? Yazma araçları örneklerine baktım, bir döviz çiftine referans yok, belirli bir tırnak grafiğine bağlı olan varsayılan olarak işleniyor.
Demek istediğim, Excel ve VBA şimdi tüm bunları yapıyor, DDE sunucusu aracılığıyla 22 döviz çifti hakkında bilgi alıyorum ve VBA program kodunu kullanarak eşzamanlı işlemlerini kastediyorum, ancak bu son derece elverişsiz, çünkü önce 2 saat beklemeniz gerekiyor Excel'de grafiklerle analiz için veri geçmişinin toplanması. Evet ve programdan programa atlamak sakıncalı, bu yüzden tüm bunları MT4'e nasıl aktaracağımı düşünüyorum.
Bakiye 600-1199 lot 0.1
Bakiye 1200-1799 lot 0.2
Denge 1800-2399 lot 0.3 vb.
Bir danışmanda nasıl organize edilir? Teşekkür ederim.
Bakiye 600-1199 lot 0.1
Bakiye 1200-1799 lot 0.2
Denge 1800-2399 lot 0.3 vb.
Bir danışmanda nasıl organize edilir? Teşekkür ederim.
çağrı: bilet=OrderSend(Symbol(),OP_BUY, Lot() ,Ask,3,Bid-25*Point,Ask+25*Point,"Siparişim #",magic,0, CLR_NONE );
çağrı: bilet=OrderSend(Symbol(),OP_BUY, Lot() ,Ask,3,Bid-25*Puan,Ask+25*Puan,"Siparişim #",magic,0,CLR_NONE);
Bu durumda, denge bulutlarda olabilir ve eşitlik büyük bir düşüşte olabilir. Buna göre, partinin boyutu, açılması mümkün olandan daha büyük olabilir ve tüm yapı tepetaklak yuvarlanır...
Açmadan önce, partiyi gerçekten mümkün olana göre ayarlamak daha iyidir.
Bunun için bir fonksiyon yaptım. Victor ( Vinin ) tarafından biraz düzeltildi - deneyin:
Çizgide
... serbest marj dörde bölünür ve serbest marjın sadece dörtte biri işlem için uygun kabul edilir.
4'e bölmeyi kaldırabilir ve istediğiniz gibi bahis yapabilirsiniz, en azından tüm marjı kullanın.
Ancak işlev, izin verilenden çok daha büyük bir boyut kullanmanıza izin vermez.
Bu durumda, denge bulutlarda olabilir ve eşitlik büyük bir düşüşte olabilir. Buna göre, partinin boyutu, açılması mümkün olandan daha büyük olabilir ve tüm yapı tepetaklak yuvarlanır...
neden bu kadar üzücü...
fonksiyonumdaki son getiri() enstrüman için mevcut minimum lotu verecektir, eğer hesap büyük kaldıraçlı bir sent hesabıysa, o zaman bakiye 600'den az olduğunda, EA muhtemelen bir süre daha işlem yapacak :)
Not: görev belirlidir ve sorgulayıcıya aramanın yönünü vermek için bir dal
neden bu kadar üzücü...
fonksiyonumdaki son getiri() enstrüman için mevcut minimum lotu verecektir, eğer hesap büyük kaldıraçlı bir sent hesabıysa, o zaman bakiye 600'den az olduğunda, EA muhtemelen bir süre daha işlem yapacak :)
Not: görev belirlidir ve sorgulayıcıya aramanın yönünü vermek için bir dal
İşte benim sürümümdeki işlev:
neden bu kadar üzücü...
fonksiyonumdaki son getiri() enstrüman için mevcut minimum lotu verecektir, eğer hesap büyük kaldıraçlı bir sent hesabıysa, o zaman bakiye 600'den az olduğunda, EA muhtemelen bir süre daha işlem yapacak :)
Not: görev belirlidir ve sorgulayıcıya aramanın yönünü vermek için bir dal
Görüyorsun, Igor - burada bir kişi sordu, ona doğru cevap verdin ve olduğu gibi unutabilirsin. Ama sonuçta, dengeden dans etmek içgüdüsel değildir. Dengenin çok yüksek göklerde olabileceği ve işlerin gerçek durumu nedeniyle - tasarruf zamanı. Ve burada hala Xr-r benzeriyiz ... ve siparişin üstünde ve büyük bir sürü ... ve o rr - bir kez, evet eksi olarak gittim ... Öz sermaye - orada, öyle olmasına rağmen
zaten orada ... Bu nedenle, fonlardan dans etmenin dengeden daha iyi olduğunu önerdim ... :)
Güzel gün!
Lütfen yeni başlayanlara, tüm döviz çiftlerini aynı anda işlemesi için MQL4'te özel bir gösterge yazmanın mümkün olup olmadığını söyleyin. Anladığım kadarıyla, gösterge tablosunda 8 satıra kadar görüntülenebilir, ancak sadece bir satıra ihtiyacım olacak. Onlar. Tüm döviz çiftleri için aynı anda dizilerden veya değişkenlerden işlenen bu satır için bir dizi alabilir miyim?
Cevabınız için şimdiden teşekkür ederim.
Onlar. Tüm döviz çiftleri için aynı anda dizilerden veya değişkenlerden işlenen bu satır için bir dizi alabilir miyim?
Teorik olarak, herhangi bir engel görmüyorum. Başka bir soru, bu diziyi özel olarak işleyip işleyemeyeceğinizdir.
Teorik olarak, herhangi bir engel görmüyorum. Başka bir soru, bu diziyi özel olarak işleyip işleyemeyeceğinizdir.
ve bir araç yazarken program kodundaki tüm döviz çiftlerine nasıl başvurabilirim? Yazma araçları örneklerine baktım, bir döviz çiftine referans yok, belirli bir tırnak grafiğine bağlı olan varsayılan olarak işleniyor.
Demek istediğim, Excel ve VBA şimdi tüm bunları yapıyor, DDE sunucusu aracılığıyla 22 döviz çifti hakkında bilgi alıyorum ve VBA program kodunu kullanarak eşzamanlı işlemlerini kastediyorum, ancak bu son derece elverişsiz, çünkü önce 2 saat beklemeniz gerekiyor Excel'de grafiklerle analiz için veri geçmişinin toplanması. Evet ve programdan programa atlamak sakıncalı, bu yüzden tüm bunları MT4'e nasıl aktaracağımı düşünüyorum.