Yeni başlayanlardan sorular MQL5 MT5 MetaTrader 5 - sayfa 302

 
mavar :

Yaşasın! Bugün MT5'te ilk Uzman Danışmanımı başlattım!

Piyasada ihtiyaç duyulan durum geldi ve danışman nasıl alınır ve alınır!!! Eh, en azından cevap vermeyi başardım. Lütfen bana kodda neyin yanlış olduğunu söyleyin. Benim fikrime göre sadece bir lot almalı ve hemen stop edip kar almalı. Bir şey satın alır almaz, Bye_opened gerçek olmalı ve stoplar vurulana kadar sonraki bir ticarete izin vermemelidir. Ve yine de, ondan durdurmak için son işlemin fiyatını nasıl öğrenebilirim?


Ama görünüşe göre yanlış bir şey yaptım. Lütfen hatamı belirtin.

Keneler, pozisyonun açık listeye girmesinden daha hızlı gelebilir. Bu nedenle çekiniz

 if ( PositionSelect ( _Symbol )== true )

bir süre çalışmayacak ve bu süre zarfında birkaç girdi geçecek. Verilen kod parçasının tick işleyicisinde bulunduğu varsayılır.

 
pako :

bu betiği betikler klasörüne bırakın, bu betiği düzenleyicide açın, derleyin

borsa açıldığında, bu komut dosyasını grafiğe sürükleyin

Yardımın için teşekkürler, kendim çözdüm, her şey işe yaradı.
 
Herkese iyi akşamlar! Sondaki kodu paylaşın. Teşekkür ederim.
 
PokrovMT5 :
Herkese iyi akşamlar! Sondaki kodu paylaşın. Teşekkür ederim.

Lütfen site aramasını kullanın - zor değil: https://www.mql5.com/en/search#!keyword=%D1%82%D1%80%D0%B0%D0%BB

 
barabashkakvn :

Lütfen site aramasını kullanın - zor değil: https://www.mql5.com/en/search#!keyword=%D1%82%D1%80%D0%B0%D0%BB

Teşekkür ederim!
 
Dima_S :

Keneler, pozisyonun açık listeye girmesinden daha hızlı gelebilir. Bu nedenle çekiniz

bir süre çalışmayacak ve bu süre zarfında birkaç girdi geçecek. Verilen kod parçasının tick işleyicisinde bulunduğu varsayılır.

Dima, kod kene işleme bloğunda. O zaman bu sorun nasıl çözülür? Quick'te de aynı sorunu yaşadım, genellikle robot gereğinden fazla satın alıyor. Bunu ikinci gecikmesine bağladım ve koşul karşılandığında değişen ayrı bir değişken ekledim, ancak burada da pervazlar vardı. Bazen başvuru borsa tarafından reddedildi ve değişken zaten "anlaşma" değerine sahipti ve robot ticaret yapmadı.


MQL5'te, robotun gerekli koşul altında belirli sayıda lot satın alması ve satın aldığı tüm lotları satana kadar belirtilen sayıda lottan fazlasını satın almaması için problem nasıl doğru bir şekilde çözülür?

 

Belki de borsadan bir yanıt beklemek için satın alma işleminden sonra bir duraklama koyabilirsiniz?

uyku (1000); //Yeterlik?

 

stoploss hareket etmiyor

yazar:

--Siparişi değiştir -> açık fiyat:1.3111 BID :1.3121 sl 1.3109
başarısız değişiklik siparişi #3 satın alma limiti 1.00, 1.31110 sl: 1.31080 tp: 0.00000 -> 1.31110, sl: 1.31090 tp: 0.00000 [Geçersiz duraklar]

--Sırayı değiştir <- sonuç: 10016

Niye ya???

 void MoveStopLoss()
{
   ulong   ticket     = OrderGetTicket ( 0 );
   double price      = OrderGetDouble ( ORDER_PRICE_OPEN );
   double slossPrev  = OrderGetDouble ( ORDER_SL );
   double sloss      = SymbolInfoDouble (_SYMBOL, SYMBOL_ASK ) - SymbolInfoDouble (_SYMBOL, SYMBOL_POINT )* 15 ;

       if (slossPrev < sloss)
      {
         MqlTradeRequest request={ 0 };
         MqlTradeResult   result={ 0 };
         request.action       = TRADE_ACTION_MODIFY ;         // Тип выполняемого действия
         request.order        = ticket;                     // Тикет ордера (для модификации ордеров)
         request.price        = price;                       // Цена 
         request.sl           = sloss;                       // Уровень Stop Loss ордера
         request.tp           = 0 ;                           // Уровень Stop Loss ордера
         request.type_time    = ORDER_TIME_DAY ;             // Тип ордера по времени действия
   
         Print ( "--Modify order -> " , " price open:" , price, " BID :" , SymbolInfoDouble (_SYMBOL, SYMBOL_BID ), " sl " , request.sl);
         bool ret = OrderSend (request, result);
         Print ( "--Modify order <- результат:" , result.retcode);      
      }
}
 
mq35 :

stoploss hareket etmiyor

yazar:

--Siparişi değiştir -> açık fiyat:1.3111 BID :1.3121 sl 1.3109
başarısız değişiklik siparişi #3 satın alma limiti 1.00, 1.31110 sl: 1.31080 tp: 0.00000 -> 1.31110, sl: 1.31090 tp: 0.00000 [Geçersiz duraklar]

--Sırayı değiştir <- sonuç: 10016

Niye ya???

SL'yi normalleştirmeye çalışın.
 

Normalleştirme yardımcı olmuyor. Aynı saçmalık sop-loss çekilmedi

--Sipariş Oluştur -> ASK:1.3121 fiyat:1.3111 sl 1.3106

1.3111 (1.3121) sl'de 1.00 EURUSD satın alma limiti: 1.3106 (1.3118 / 1.3121 / 1.3118)
--Sipariş Oluştur <- sonuç:10009

--Siparişi değiştir -> açık fiyat:1.3111 BID :1.3119 sl 1.3107
sipariş değiştirildi [#3 satın alma limiti 1.00 EURUSD 1.3111]

--Sırayı değiştir <- sonuç: 10009

--Siparişi değiştir -> açık fiyat:1.3111 BID :1.312 sl 1.3108
sipariş değiştirildi [#3 satın alma limiti 1.00 EURUSD 1.3111]

--Sırayı değiştir <- sonuç: 10009

--Siparişi değiştir -> açık fiyat:1.3111 BID :1.3121 sl 1.3109
başarısız değişiklik siparişi #3 satın alma limiti 1.00, 1.31110 sl: 1.31080 tp: 0.00000 -> 1.31110, sl: 1.31090 tp: 0.00000 [Geçersiz duraklar]
--Sırayı değiştir <- sonuç: 10016
Neden: