Yeni başlayanlardan sorular MQL4 MT4 MetaTrader 4 - sayfa 84

 
Arseniy Barudkin : Merhaba forumun beyleri! Lütfen bir fonksiyon yazmama yardım edin.

Zafer Bayramınız kutlu olsun!!! 4 gün geçti - yanıt yok. Deneyelim ... Memnun kalmamış bir kişisel yazın !!!

 //+-------------------------------------------------------+
//| функция перебрала открытые ордера на графике          |
//| и выделила: 1) с самым маленьким лотом и --- профитом |
//| 2) с самым большим лотом и +++ профитом.       скрипт |
//| Предполагается, что такие есть. И удалила    PROBA.mq4|
//+-------------------------------------------------------+
// Назначение функций OrdersTotal, OrderSelect, OrderClose
// и прочих узнаем поставив на них курсор и нажав F1

#property strict

void OnStart ()
{
   int     Проскальзывание= 20 ;
   int     Тикет 1 = 0 ,  Тикет 2 = 0 ;
   double Лот 1 = 100000 , Лот 2 = 0 ;
   bool    Результат;     //  Чтоб избежать лишних предупреждений

   // Выделение
   for ( int Тикет= OrdersTotal ()- 1 ; Тикет>= 0 ; Тикет--)
   {
     if (! OrderSelect (Тикет, SELECT_BY_POS )) continue ; // Что-то помешало - идем к следующему
     if (OrderSymbol() != _Symbol) continue ;          // Чужой график

     // Если с меньшим лотом и   --- профитом   то запомним тикет и лот
     if ( OrderLots ()<Лот 1      &&   OrderProfit ()< 0 )
     {
       Тикет 1 = OrderTicket ();
       Лот 1 = OrderLots ();
     }

     // Если с большим лотом и   +++ профитом   то запомним тикет и лот
     if ( OrderLots ()>Лот 2      &&   OrderProfit ()> 0 )
     {
       Тикет 2 = OrderTicket ();
       Лот 2 = OrderLots ();
     }
   }

   // Удаление
   if (Тикет 1 )
   {
       while (! RefreshRates ());
      if( OrderSelect (Тикет 1 , SELECT_BY_TICKET ))  // Чтоб получить цену закрытия
         Результат= OrderClose (Тикет 1 , Лот 1 , OrderClosePrice (),Проскальзывание);
   }

   if (Тикет 2 )
   {
       while (! RefreshRates ());
      if( OrderSelect (Тикет 2 , SELECT_BY_TICKET ))
         Результат= OrderClose (Тикет 2 , Лот 2 , OrderClosePrice (),Проскальзывание);
   }
}   

Ve sonra soru ortaya çıktı: sadece iki emir varsa. Negatif kârlı büyük bir lotla, pozitif kârlı daha küçük bir lotla

Ve eğer sadece bir sipariş varsa. Ve tüm siparişler aynı lota sahipse ve tümü negatif kârlıysa - birer birer kapatılsın mı?

 

Merhaba!

Bana yardımcı olabilir misiniz? EA her tikte işlemleri açar. Yaklaşık 5 işlem açmak için kodu nasıl yazmalıyım veya sadece kaç tane istiyorum?

harici int tp=50;

dış int sl=200;

dış çift lot=0.01;

geçersiz OnTick()

{

OrderSend("USDJPY",OP_SELL,lot,Bid,0,Ask+sl*Point,Ask-tp*Point,"Batsaho",1,0,Red);

}

Neler değiştirilmeli, koda eklenmeli?

Cevap verebilir ***

Teşekkür ederim!

 
alstefanov :

Merhaba!

Bana yardımcı olabilir misiniz? EA her tikte işlemleri açar. Yaklaşık 5 işlem açmak için kodu nasıl yazmalıyım veya sadece kaç tane istiyorum?

harici int tp=50;

dış int sl=200;

dış çift lot=0.01;

geçersiz OnTick()

{

OrderSend("USDJPY",OP_SELL,lot,Bid,0,Ask+sl*Point,Ask-tp*Point,"Batsaho",1,0,Red);

}

Neler değiştirilmeli, koda eklenmeli?

Cevap verebilir ***

Teşekkür ederim!

 extern int tp= 50 ;

extern int sl= 200 ;

extern double lot= 0.01 ;

void OnTick ()

{ 

if ( OrdersTotal ()==0) OrderSend ( "USDJPY" , OP_SELL ,lot, Bid , 0 , Ask +sl* Point , Ask -tp* Point , "Batsasho" , 1 , 0 ,Red);

}
 
Danışmanın test cihazındaki çalışmasını nasıl hızlandırabileceğinizi söyleyin, böylece daha hızlı test edilebilir, danışman yalnızca bir gösterge kullanır
 
missha32 : Daha hızlı test edilebilmesi için danışmanın test cihazındaki çalışmasını nasıl hızlandırabileceğinizi söyleyin, danışman yalnızca bir gösterge kullanır

Her şeyden önce, test zaman aralığını kısaltın. Hepsinden iyisi: 1) son üç ay. 2) Brexit'in ortada olması için üç ay. Tüm keneler üzerinde test yapmayı reddettiğinizden emin olun. Gerçekten de, MT4'te tarihte hiçbir kene yoktur ve bunlar, fiyatların yukarı ve aşağı hafif seğirmeleriyle modellenmiştir. İki zaman diliminde - M15 ve M1 - test edersiniz ve nerede daha iyi olduğunu görürsünüz. Ve bir demoda daha iyi - Pazartesi sabahı açın ve Cuma akşamı iyi bilinen bir komut dosyası kullanarak sonucu görün. 100 danışmanı test etmeniz gerekiyorsa, 10 terminal açın ve her birinin danışmanlarla birlikte 10 grafiği vardır.

Bir sürü bilgisayara sahip olduğunuzdan emin olun. Gerçek bir hesap için 500 kaldıraç ile 4$ yeterlidir.Herhangi bir grafiğe bakın - doğru giriş ile para yatırma işleminizi bir günde kolayca ikiye katlayabilirsiniz. Ve bu ayda bir milyon kez. İnternette böyle ücretsiz danışmanlar var mı? Bunu satan var mı? Bu nedenle, bilgisayarlara para yatırılmalıdır. Giriş noktaları aranıyor. Programlar yazıyoruz, Excel'de formüller ve makrolar kullanarak hesaplıyoruz, scriptler ve hesaplamalar için Uzman Danışmanlar yazıyoruz. Ardından, giriş noktalarının nasıl aranacağı netleştiğinde, robotlar, durur, takip, yatırma, yenileme, para çekme, ...

 
STARIJ :

Zafer Bayramınız kutlu olsun!!! 4 gün geçti - yanıt yok. Deneyelim ... Memnun kalmamış bir kişisel yazın !!!

Ve sonra soru ortaya çıktı: sadece iki emir varsa. Negatif kârlı büyük bir lotla, pozitif kârlı daha küçük bir lotla

Ve eğer sadece bir sipariş varsa. Ve tüm siparişler aynı lota sahipse ve tümü negatif kârlıysa - birer birer kapatılsın mı?

for(int Ticket=OrdersTotal()-1; Ticket>=0; Ticket--) - bu, piyasa emirlerini bilete göre ters sırada (son açılandan ilke) sıralamak için kullanılan koddur - doğru mu anladım?

bu sadece Kiril'deki "Ticket" çalışmayacak, Latince "Ticket" e ihtiyacınız var

 
Yaroslav Nykula :
for(int Ticket=OrdersTotal()-1; Ticket>=0; Ticket--) - bu, piyasa emirlerini bilete göre ters sırada (son açılandan ilke) sıralamak için kullanılan koddur - doğru mu anladım?

bu sadece Kiril'deki "Ticket" çalışmayacak, Latince "Ticket" e ihtiyacınız var

Kontrol etmedim, ancak sadece Kiril'de değil, Çince'de de geçmesi gerekiyor.
 
Vitaly Muzichenko : Kontrol etmedim ama sadece Kiril alfabesinde değil, Çince'de de geçmesi gerekiyor.
Yeni bir dil edindiğimde öncelikle Kiril alfabesini mi yiyor yoksa tükürüyor mu kontrol ediyorum. Bu bir test. Komut dosyası ektedir - kontrol edin
Dosyalar:
PROBA.mq4  2 kb
 
Merhaba. Soru şudur: Belirli bir ticaret dönemi (yani bir mum için) için kene değerlerini (karşılık gelen fiyatlar) tek boyutlu bir diziye sürmek mümkün müdür? Ve bunu, mumun oluşumu sırasında dizilim oluşacak şekilde yapmak. MQL4'te gerçek mi? Cevap için minnettar olacağım.
 
STARIJ :

Zafer Bayramınız kutlu olsun!!! 4 gün geçti - yanıt yok. Deneyelim ... Memnun kalmamış bir kişisel yazın !!!

Ve sonra soru ortaya çıktı: sadece iki emir varsa. Negatif kârlı büyük bir lotla, pozitif kârlı daha küçük bir lotla

Ve eğer sadece bir sipariş varsa. Ve tüm siparişler aynı lota sahipse ve tümü negatif kârlıysa - birer birer kapatılsın mı?


Çok teşekkürler! Yıllık özellik! Ve bu arada Kiril de okur en azından derler.Ayrıca danışmanın şartlarına göre ikiden fazla emir vardır ve bir sonraki emri açmak için yeterli marj yoksa fonksiyon çağrılır. Ama düşüncemi doğru ifade edemedim, görünüşe göre biraz daha fazlasına ihtiyacım var! Açık pozisyonlardan en büyük karı olan en büyük lot ve açık pozisyonlardan da negatif karı olan en küçük lot.