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

 
Alexey Viktorov :

O tartışmaları okudum. Ancak hiçbir anlaşmazlık yoktu, ancak açıklamaları ve terminalin arızasını kanıtlama girişimlerini anlama arzusu yoktu. Sözlerin hiçbir şey tarafından desteklenmedi. Ekran görüntüsü almak ve düşüncelerinizi net bir şekilde açıklamak için çok tembelsiniz .

Ne derileri?! Kod verildiğinde, MT4'te çalışır ve MT5'te bir hatayla çöker. Hata türü de yorum yapılan kodda yazılmıştır.
 
comp :
Ne derileri?! Kod verildiğinde, MT4'te çalışır ve MT5'te bir hatayla çöker. Hata türü de yorum yapılan kodda yazılmıştır.

İyi tamam. Bu senin bakış açın. Kendi bakış açınızı anlamak için herkesin bir şeyler yapması gerektiğini düşünüyorsunuz, ancak sizinle tartışmamanın daha kolay olduğunu düşünmüyorsunuz ve çok talepkar olduğunuz için yasaklamanın gerçekten daha kolay olduğunu düşünüyorsunuz.

Neyse ki benim yasaklama hakkım yok, bu yüzden bu diyaloğu kesiyorum.

 
Lütfen bana neden siparişleri açmadığımı söyle
 void OnTick ()
  {
   int pos;
   int rsi;
   int uroven1;
   int uroven2;
   int kolpos;
   uroven1=RSI_uroven1;
   uroven2=RSI_uroven2;

   rsi= iRSI ( Symbol (), 0 ,RSI, 0 , 1 );

//==================================================================
   for ( int pos= 0 ; pos< OrdersTotal (); pos++)
     {
       OrderSelect (pos, SELECT_BY_POS , MODE_TRADES );
       if ( OrderSymbol ()== Symbol () && OrderMagicNumber ()==Magic)
         kolpos++;

     }
//====================================================================
   if (kolpos== 0 )
     {
       if (rsi>uroven1 || rsi<uroven1 || rsi>uroven2 || rsi<uroven2)
        {
         OrderSend ( Symbol (), OP_BUY ,Lot, Ask , 30 , 0 , 0 , "" ,Magic, 0 , clrAliceBlue );
         OrderSend ( Symbol (), OP_SELL ,Lot, Bid , 30 , 0 , 0 , "" ,Magic, 0 , clrRed );

        }
     }
  }
tsya.
 
edutak :
Lütfen bana siparişlerin neden açılmadığını söyleyin.

en az 4 hatam var

'RSI_uroven1' - bildirilmemiş tanımlayıcı 32.mq4 on üç 12

'RSI_uroven2' - bildirilmemiş tanımlayıcı 32.mq4 on dört 12

'RSI' - bildirilmemiş tanımlayıcı 32.mq4 on altı 24

'pos' - değişken zaten tanımlanmış 32.mq4 on dokuz 12

 //+------------------------------------------------------------------+
//|                                                      ProjectName |
//|                                      Copyright 2012, CompanyName |
//|                                       http://www.companyname.net |
//+------------------------------------------------------------------+
#property strict
int RSI= 23 ;
int RSI_uroven1= 100 ;
int RSI_uroven2= 100 ;
int Magic= 777 ;
double Lot= 0.1 ;
void OnTick ()
  {
   int pos;
   int rsi;
   int uroven1;
   int uroven2;
   int kolpos;
   uroven1=RSI_uroven1;
   uroven2=RSI_uroven2;

   rsi= iRSI ( Symbol (), 0 ,RSI, 0 , 1 );

//==================================================================
   for ( int pos= 0 ; pos< OrdersTotal (); pos++)
     {
       OrderSelect (pos, SELECT_BY_POS , MODE_TRADES );
       if ( OrderSymbol ()== Symbol () && OrderMagicNumber ()==Magic)
         kolpos++;

     }
//====================================================================
   if (kolpos== 0 )
     {
       if (rsi>uroven1 || rsi<uroven1 || rsi>uroven2 || rsi<uroven2)
        {
         OrderSend ( Symbol (), OP_BUY , NormalizeDouble (Lot, 2 ), Ask , 30 , 0 , 0 , "" ,Magic, 0 , clrAliceBlue );
         OrderSend ( Symbol (), OP_SELL , NormalizeDouble (Lot, 2 ), Bid , 30 , 0 , 0 , "" ,Magic, 0 , clrRed );

        }
     }
  }
//+------------------------------------------------------------------+

все октрывает

1	2015.01.02 09:00	buy	1	0.10	120.42	0.00	0.00	0.00	10000.00
2	2015.01.02 09:00	sell	2	0.10	120.39	0.00	0.00	0.00	10000.00
3	2016.04.04 13:08	close at stop	2	0.10	111.66	0.00	0.00	3.26	10003.26
4	2016.04.04 13:08	close at stop	1	0.10	111.63	0.00	0.00	-11.85	9991.41

 
edutak :
Lütfen bana siparişlerin neden açılmadığını söyleyin.

İlk olarak size emir sayısını sayan normal bir fonksiyon verdim ve siz hala yanlış olanı kullanmaya devam ediyorsunuz.

ikinci olarak, if(rsi>uroven1 || rsi<uroven1 || rsi>uroven2 || rsi<uroven2) koşulları karşılıklı olarak çelişkilidir.

 
Vitalii Ananev :

İlk olarak size emir sayısını sayan normal bir fonksiyon verdim ve siz hala yanlış olanı kullanmaya devam ediyorsunuz.

ikinci olarak, if(rsi>uroven1 || rsi<uroven1 || rsi>uroven2 || rsi<uroven2) koşulları karşılıklı olarak çelişkilidir.

Normal işlevleri kullanacağım, bu hala test cihazı için bir taslak sürüm - sadece bloklar halinde kopyalıyorum, bu yüzden daha hızlı.

Seviyelerden herhangi birinin RSI'sinin kesişiminde bir emir açılırsa ve diğer herhangi bir seviyenin kesişiminde kapanır ve hemen bir başkası açılırsa, o zaman çelişki yoktur.

Yoksa var mı?

 
Vladislav Andruschenko :

en az 4 hatam var

'RSI_uroven1' - bildirilmemiş tanımlayıcı 32.mq4 on üç 12

'RSI_uroven2' - bildirilmemiş tanımlayıcı 32.mq4 on dört 12

'RSI' - bildirilmemiş tanımlayıcı 32.mq4 on altı 24

'pos' - değişken zaten tanımlanmış 32.mq4 on dokuz 12


Teşekkürler Çalışıyor.
 
edutak :

Normal işlevleri kullanacağım, bu hala test cihazı için bir taslak sürüm - sadece bloklar halinde kopyalıyorum, bu yüzden daha hızlı.

Seviyelerden herhangi birinin RSI'sinin kesişiminde bir emir açılırsa ve diğer herhangi bir seviyenin kesişiminde kapanır ve hemen bir başkası açılırsa, o zaman çelişki yoktur.

Yoksa var mı?

Kendin için düşün. uroven1 = 80 diyelim; rsi = 30; rsi > 80 veya rsi < 80 koşulu (30 > 80 [false] veya 30< 80[true] ) bunun doğada olmadığını gösterir. Koşul true olsa da, OR operatörü kullanıldığı için aslında anlamsızdır.

İfadenin ikinci kısmı uroven2 = 20 diyelim; rsi = 30 (30 > 20 [true] veya 30< 20[false] ) aynıdır.

 

İfadenin ikinci kısmı uroven2 = 20 diyelim; rsi = 30 (30 > 20 [true] veya 30< 20[false] ) aynıdır.

Yazarken ya da, herhangi bir hemzemin geçidi kastediyorum. sipariş açılacak. İkinci koşul 30<20[yanlış] geldiğinde, o anda önceki emir kapanacak ve doğru olacaktır.

Eğer doğru anlıyorsam.

 
Haklıysanız, ikinci bir RSI ekleyeceğim.