MQL4 ve MQL5 ile ilgili herhangi bir acemi sorusu, algoritmalar ve kodlar hakkında yardım ve tartışma - sayfa 247

 
( NormalizeDouble ( AccountFreeMargin ()/ SymbolInfoDouble ( Symbol (), SYMBOL_TRADE_CONTRACT_SIZE ), 2 )-Lots*(CountTrades()+ 1 ));

Partiyi hesaplamak için bir formül yazdım, bana nerede bir hata olabileceğini söyle? Bir tür yanlışlık nedeniyle sipariş açılmıyor.

Formül, 1-100 veya daha fazla kaldıraçla 100$ veya daha fazla depozito için hala geçerlidir. Kaldıraçsız mevduat 1.000$ ise, Serbest Marj/kontrat = 0,01 olduğundan formülün çalışmadığı ortaya çıkar ve ticaret koşulları karşılanmayacağından artık bu değerden çıkarmak mümkün olmayacaktır.


Öte yandan, FR Marjı zaten açık pozisyonları hesaba katıyorsa neden çıkaralım, evet? O zaman şöyle görünecek-

 lot=NormalizeDouble ( AccountFreeMargin ()/ SymbolInfoDouble ( Symbol (), SYMBOL_TRADE_CONTRACT_SIZE ), 2 )

gidip test edeceğim

Совершение сделок - Торговые операции - Справка по MetaTrader 5
Совершение сделок - Торговые операции - Справка по MetaTrader 5
  • www.metatrader5.com
Торговая деятельность в платформе связана с формированием и отсылкой рыночных и отложенных ордеров для исполнения брокером, а также с управлением...
 
geratdc : hesaplamak için bir formül yazdım, söyle bana nerede hata olabilir? Bir tür yanlışlık nedeniyle sipariş açılmadı.
      Лот= NormalizeDouble ( 0.65 * AccountBalance ()* AccountLeverage ()/           // Использую такую формулу
                             MarketInfo ( _Symbol , MODE_LOTSIZE ), 2 );
 
STARIJ :

Selamlar)) Peki 0.65 nedir? nereden geliyor

Kaldıraç (omuz) hakkında düşündüm, ancak dengenin teorik olarak kaldıraç dikkate alınarak zaten belirtildiği sonucuna vardım. Yoksa yanılıyor muyum?


Ve 0.65, %35'lik bir düşüş chtoli için bir rezerv mi? bu yüzden margincall çağrılmaz mı? Bu arada, iyi bir fikir, aksi takdirde bunun gibi çok şey alırsınız, o zaman kayıp pozisyonlar ve kapetler üzerinden geçer.

İçinde! formül eksi kaldırıldıktan sonra çalıştı, havalı)) lot 0,02 daha kısaydı, daha sonra üç pozisyon düşüşe geçtiğinde, acil durum lotu 0,1 olarak hesaplandı, yani 5 kat! İhtiyacım olanı test edeceğim, belki bir koruyucu katsayı ayarlayacağım.Orada zaten açık bir acil durum emriyle devam eden kayıpların büyümesine duyarlı bir işlevim olmasına rağmen, pratikte herhangi bir sorun olmamalı.

Meslektaşım, değerli düşünceleriniz için teşekkür ederiz! test edeceğim!


Ayrıca ticaret koşullarını kontrol etmeye karar verdim. Bu kodu nasıl buldunuz?


 // Проверка Баланса
   if (cn== 0 && TradeCheck== true && AccountBalance ()/ SymbolInfoDouble ( Symbol (), SYMBOL_TRADE_CONTRACT_SIZE )< SymbolInfoDouble ( Symbol (), SYMBOL_VOLUME_MIN ))
     {
       Print ( "Баланс счёта не обеспечивает торговые требования" );
       SendMail ( "EA BJH" , "Баланс счёта не обеспечивает торговые требования" );
       ExpertRemove ();   // Снять советник с графика
     }
// Проверка Lots
   else if (cn== 0 && TradeCheck== true && AccountBalance ()/Lots< SymbolInfoDouble ( Symbol (), SYMBOL_TRADE_CONTRACT_SIZE ))
     {
       Print ( "Lots не обеспечивает торговые требования" );
       SendMail ( "EA BJH" , "Lots не обеспечивает торговые требования" );
       ExpertRemove ();   // Снять советник с графика
     }
Dosyalar:
1.gif  10 kb
 
geratdc : Meslektaşım, değerli düşünceleriniz için teşekkürler! test edeceğim!

Çevirirseniz - SAT yerine AL ve AL yerine SAT - daha iyi olacak

Deneyin meslektaşım!!!

Robot, bir gerçeği belirtmek yerine tavsiyelerde bulunmalıdır: Usta, biraz para ekle. Olanlar, çoktan geçtiler...

 
STARIJ :

Çevirirseniz - SAT yerine AL ve AL yerine SAT - daha iyi olacak

Deneyin meslektaşım!!!

Robot, bir gerçeği belirtmek yerine tavsiyelerde bulunmalıdır: Usta, biraz para ekle. Olanlar, çoktan geçtiler...


Evet, her şey yolunda, acil bir siparişi tetiklemek için özel olarak bırakılan ayarlar vardı - hangi partinin alınacağını görmek gerekiyordu.

lot= NormalizeDouble ( AccountFreeMargin ()/ SymbolInfoDouble ( Symbol (), SYMBOL_TRADE_CONTRACT_SIZE ), 2 );

Şimdilik bu seçeneği bırakın. Bakiye üzerinden sayıyordum, serbest marj açısından daha doğru olacağını düşünüyorum ama sonuç aynı. Test sonuçlarını daha sonra göreceğiz.

 
geratdc : tamam

İnternet açıldı! Maile yazabilir miyim?

 
STARIJ :

Böyle mi olmalı? Seviyeler -0.75 ve +0.75

Sadece bir değişken. Başlangıçta 0. Sonra +1 -1 +1 -1


Evet böyle bir şey. Sadece danışmana nasıl yazılır, böylece başlatıldığında, seviyeler arasındaysak, savaştığımız sonuncunun değerini alır mı?

 
AlGuru : Ama danışmana nasıl yazılır ki, başlatıldığında, seviyeler arasındaki aralıktaysak, savaştığımız sonuncunun değerini alacak mı?

Geri püskürtüldü - nasıl? Bize saldırdı mı? Ne zaman püskürtüldü - fırlatmadan önce? Sadece bir fırlatma olsaydı nasıl karşı koyabilirlerdi? Göndermeden önce okuyun - burada her şey açık mı

 
STARIJ :

Geri püskürtüldü - nasıl? Bize saldırdı mı? Ne zaman püskürtüldü - fırlatmadan önce? Sadece bir fırlatma olsaydı nasıl karşı koyabilirlerdi? Göndermeden önce okuyun - burada her şey açık mı


Eh, karşılık vermediler ama çizgiden geri teptiler. Danışmanın başka bir makine/terminale kurulması veya bilgisayarın kapanması, terminalin yeniden başlatılması durumunda hemen çalışmaya başlaması, fiyatın en son hangi seviyede olduğunu hesaplayarak ve istenen değeri belirleyerek danışmandır. değişkendir ve fiyatın istenilen seviyeye ulaşmasını beklemez. Umarım net bir şekilde anlatmışımdır.

 
AlGuru : Pekala, savaşmadılar ama çizgiyi aştılar. Danışmanın başka bir makine/terminale kurulması veya bilgisayarın kapanması, terminalin yeniden başlatılması durumunda hemen çalışmaya başlaması, fiyatın en son hangi seviyede olduğunu hesaplayarak ve istenen değeri belirleyerek danışmandır. değişkendir ve fiyatın istenilen seviyeye ulaşmasını beklemez. Umarım net bir şekilde anlatmışımdır.

Diğer makine veya terminalin bununla ne ilgisi var? Veya kapatma - yeniden başlatın. Belki bilgisayarı açmayı veya danışmanı başlatmayı kastediyorsunuz? Geri tepme neden gereklidir ve eğer seviye çizgisine ve ters kavşağa dikkat edilirse. Ve beklerse - açtığınızda sadece bir fırsatı kaçırıyor. Önce onu atabilirsin ve her şeyi yaptığında ona geri dön. Ve sonra, satırların nereden geldiği, ne zaman göründükleri, onları kimin yerleştirdiği veya danışmanın bunları nasıl hesapladığı. Başka bir bilgisayara yerleştirilirlerse veya bilgisayar kapatılmadan önce fiyat çok ileri gidebilir. Seviyeler EA'nın kendisi tarafından hesaplanıyorsa, bu başka bir konudur. Ve şimdi bakın: fiyat üst seviyeden sıçradı ve bir saat boyunca seviyeler arasında gezindi. Sonra bilgisayarı açtık, danışmanı başlattık. Görünüşe göre, eylem zamanını bu toparlanmaya bağlamak gerekiyor. Bir saat geçti - her şey, geri tepme unutuldu. ... Bakın kaç soru çıkıyor! Ve açıkça konuş. Anlıyorsun, meselenin özünü biliyorsun. Dışarıdan bakıldığında karanlık. Programlama sanatı, bağımsız olarak bir sürü soru sorma ve bunlara cevap bulma yeteneğidir. Senaryoya bakın - belki burada mantıklı bir tahıl vardır

 //+-------------------------------------------------------+
//| Проверка                                     PROBA.mq4|
//+-------------------------------------------------------+
#property strict

void OnStart ()
{
   bool ДостигнутПервыйУровень= false ,
       ДостигнутВторойУровень= false ;
   int Переменная 1 = 0 , Переменная 2 = 0 ;
   double Уровень;
   int x;

   Alert ( "----- Снизу вверх --------" );
   for (x= 13 ; x< 27 ; x++)
  {
    Уровень= round ( sin (x)* 10 )/ 10 ;

     if (Уровень> 0.75 )
    {
      Переменная 1 = 1 ;
      Переменная 2 = 0 ;
    }

     if (Уровень<- 0.75 )
    {
      Переменная 1 = 0 ;
      Переменная 2 = 1 ;
    }

     Alert ( "  " , x, "       " , Уровень, "        " , Переменная 1 , "        " , Переменная 2 );
  }
   Alert ( "Номер  Уров  Пер1  Пер2" );
}