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

 
Artyom Trishkin # :
Kırmak

Ama soru ne :)

 
Alexey Viktorov # :

Ama soru ne :)

Görünüşe göre sen ve Andrei'nin trollemeyi bırakmanız için ...

Gerçekten de, bir tür düşmanca atmosfer elde edilir (yukarıda belirtildiği gibi). Buraya MQL konularını tartışmak için geldim. Ama MQL ile ilgili olmayan bir şey okudum. Nesin sen, yapamazsın!

Yeni gelen biri soru sorsun ya da korkacak... Andrey ile aranızda kaybolacak... :)
 

Herkese iyi günler.

Lütfen bana nasıl kod yazacağımı söyle.
Belirli koşullar altında farklı yönlerde, farklı döviz çiftlerinde aynı anda birkaç siparişi kapatırım. Ancak bazen, DC nedeniyle komut yürütülmez ve bazı siparişler açık kalır. Her sipariş için Uyku yazabilirim. Ama ipin daha kısa olmasını istedim.

 if ( NormalizeDouble ((MaxOpenSell( 2 ) + MaxOpenBuy( 2 ) + MinOpenSell( 2 ))* Point , Digits ) >= Profit1 && FindLastSell() >= Block 
         && FindLastBuy() >= 1 && MaxOpenSell( 2 ) > 0 && MA1 < MA2)
      {
         LockTicket = 0 ;
         CalProfHis = 0 ;
         bool close =  OrderClose(( int )MaxOpenSell( 5 ),MaxOpenSell( 3 ), Ask, Slippage, clrPink );
              close =  OrderClose(( int )MinOpenSell( 5 ),MinOpenSell( 3 ), Ask, Slippage, clrPink );
              close =  OrderClose(( int )MaxOpenBuy( 5 ),MaxOpenBuy( 3 ), Bid, Slippage, clrBlue );

      }
 
makssub Uyku reçetesi verebilirim. Ama ipin daha kısa olmasını istedim.

https://book.mql4.com/ru/trading/orderclose

Закрытие и удаление ордеров - Торговые операции - Учебник по MQL4
Закрытие и удаление ордеров - Торговые операции - Учебник по MQL4
  • book.mql4.com
Закрытие и удаление ордеров - Торговые операции - Учебник по MQL4
 
makssub Uyku yazabilirim. Ama ipin daha kısa olmasını istedim.

Bir çıkış/kapatma koşulu oluştuğunda diziye biletler ekleyin. Ardından, dizi boş değilse, her bilet için OrderClose'u çağırarak diziyi yineleyin. Ardından, her biletin varlığını kontrol edin ve kapanışı listeden kaldırın. Liste boşalana kadar bu işlemleri 1-3 saniye aralıklarla tekrarlayın.

 

Merhaba.

İşin sonunda danışmanın net karını hesaplamak gerekir. OnDeinit'te OrdersHistoryTotal() sayısı üzerinde bir döngü çalıştırıyorum ve OrderProfit() ekliyorum.

Kar=Kar+SiparişKar();

Ancak sonuçta, kar, test cihazındaki rapordakinden farklıdır. Bunu çözdükten sonra, bir puanın maliyetinin siparişlerin bölümleri için farklı olduğunu öğrendim.

Bu neden oluyor? Test cihazındaki yayılma manuel olarak ayarlanır.

 
AlexandrVV # :

Merhaba.

İşin sonunda danışmanın net karını hesaplamak gerekir. OnDeinit'te OrdersHistoryTotal() sayısı üzerinde bir döngü çalıştırıyorum ve OrderProfit() ekliyorum.

Kar=Kar+SiparişKar();

Ancak sonuçta, kar, test cihazındaki rapordakinden farklıdır. Bunu çözdükten sonra, bir puanın maliyetinin siparişlerin bölümleri için farklı olduğunu öğrendim.

Bu neden oluyor? Test cihazındaki spread manuel olarak ayarlanır .

Takas ve komisyon eklemeyi unuttu! Her zaman giriş fiyatı ile çıkış fiyatı arasında olduğundan, spread zaten hesaba katılmıştır.

 
Mihail Matkovskij # :

Takas ve komisyon eklemeyi unuttu! Her zaman giriş fiyatı ile çıkış fiyatı arasında olduğundan, spread zaten hesaba katılmıştır.

Ah doğru! Çok teşekkürler!!! )

 
Merhaba canım. Fiyat benim belirttiğim belirli bir seviyeye ulaştığında telefona bildirim gönderen bir komut dosyası veya göstergeyi nerede bulabilirim söyleyin. böylece sürekli terminali izlemek zorunda kalmazsınız.
 

Bana sorunun ne olduğunu söyle, kod siparişleri kapatmalı ve eğer yoksa yeni bir tane aç.

Ama nedense sadece 1 emri kapatıyor ve bir sonraki sinyale kadar duruyor.

2022.01.17 16:22:08.389 2022.01.04 08:00:00 e: Sinyal 1.1322 < kapa 1.1304 VarPosSat 0
2022.01.17 16:22:08.389 2022.01.04 08:00:00 e: Sinyal 1.1322 > kapanış 1.1304 VarPosSatın Al 1
2022.01.17 16:22:08.366 2022.01.04 04:00:00 e: Sinyal 1.1325 < kapa 1.1306 VarPosSat 0
2022.01.17 16:22:08.366 2022.01.04 04:00:00 e: Sinyal 1.1325 > kapa 1.1306 VarPosSatın Al 1
2022.01.17 16:22:08.327 2022.01.04 00:00:00 e: Sinyal 1.1326 < kapa 1.1296 VarPosSat 0
2022.01.17 16:22:08.327 2022.01.04 00:00:00 e: Sinyal 1.1326 > kapa 1.1296 VarPosSatın Al 1
2022.01.17 16:22:08.298 2022.01.03 20:00:00 e: Sinyal 1.1328 < kapa 1.1283 VarPosSat 0
2022.01.17 16:22:08.298 2022.01.03 20:00:00 e: 1 kapanış 0.01 EURUSD 1.13598'den 1.12831 fiyatından satın alın

2022.01.17 16:22:08.298 2022.01.03 20:00:00 e: Sinyal 1.1328 > kapanış 1.1283 VarPosSatın Al 1
2022.01.17 16:22:08.190 2022.01.03 16:00:00 e: #4 açık 1.13512'den 0.01 EURUSD satın al tamam
2022.01.17 16:22:08.190 2022.01.03 16:00:00 e: Sinyal 1.134 < kapa 1.135 VarPosSat 0
2022.01.17 16:22:08.190 2022.01.03 16:00:00 e: Sinyal 1.134 > kapa 1.135 VarPosSatın Al 1

 if (isNewBar()== true ) {  
if (Signal > clos ) {   //--------------------- МА выше цены закрытия предыдущего бара.
     if (ExistPositions( NULL , OP_BUY, Magic) == true ) //---------------- Если есть позиция BUY то
ClosePosWithMaxProfitInCurrency(); //--------  закрытие одной позиции с максимальным профитом в валюте депозита.
         if (ExistPositions( NULL , OP_BUY, Magic) == False) //----------- если позиции BUY отсутствуют то
   ticket=OpenPosition( NULL ,OP_SELL, NDLot(Lot), 0 , 0 , Magic, Com);} //------------ открываем позицию SELL

if (Signal < clos ) { //--------------------- МА ниже цены закрытия предыдущего бара.
     if (ExistPositions( NULL , OP_SELL, Magic) == true ) //---------------- Если есть позиция SELL то
 ClosePosWithMaxProfitInCurrency(); //---------------------закрытие одной позиции с максимальным профитом в валюте депозита.
         if (ExistPositions( NULL , OP_SELL, Magic) == False)  //----------- если позиции SELL отсутствуют то
  ticket=OpenPosition( NULL ,OP_BUY, NDLot(Lot), 0 , 0 , Magic, Com);} //------------ открываем позицию BUY

} return ;