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

 
Leanid Aladzyeu :

tükürmek

tür dönüştürme nedeniyle olası veri kaybı .mq4 1697 29

SL'de çift tip.

Derleyici artık katı hale geldi, böyle olmalı, MarketInfo double tipini döndürür

sl = NormalizeDouble (sl,( int )MarketInfo( Symbol (),MODE_DIGITS));
 
Alexey Volchanskiy :

Derleyici artık katı hale geldi, böyle olmalı, MarketInfo double tipini döndürür

"sumbol" değişkeni doğru, değiştirici sarmalayıcıda bir değişken olarak var.

ATP eklendi ( int ) ve her şey vızıldıyor.

Ve daha önce olduğu gibi, 21 gün danışman yazma deneyimimi bilmiyorum))

Ve danışmanım inatla en iyi ücretsiz olanlara giriyor))

 

Leanid Aladzyeu :

Ve daha önce olduğu gibi, 21 gün boyunca danışman yazma deneyimimi bilmiyorum)) Ve danışmanım inatla en iyi ücretsiz olanlara giriyor))

O zaman çok şanslıydınız, 600. versiyondan önce eski MQL4 korkunçtu )) Danışmana bir bağlantı atın plz, kişisel olarak yapabilirsiniz
 
Alexey Volchanskiy :
O zaman çok şanslıydınız, 600. versiyondan önce eski MQL4 korkunçtu )) Danışmana bir bağlantı atın plz, kişisel olarak yapabilirsiniz
Takma adıma ve ürünüme.
 

Nedense son satırda hata veriyor.

'}' - tüm kontrol yolları Expert4.mq4 değerini döndürmez

void olmayan her işlev bir dönüş ifadesi ile bitmelidir.

Sadece bu kodu bir video dersinden izliyorum ve eski bir yapı için olabilir.



#include#include <stderror.mqh>

//+------------------------------------------- --------------------+
//| Expert4.mq4 |
//| Mihail |
//| |
//+------------------------------------------- --------------------+
# mülkiyet telif hakkı "Mikhail"
#özellik bağlantısı ""
#özellik sürümü "1.00"
#mülkiyet katı

int sinyal = 1;

int başlangıç()
{
if (sinyal == 1)
{
OrderSendX(Symbol(), OP_BUY, 0.2, Sor, 30, 0, 0, "Test", 123, 0, Mavi);
}
dönüş(0);
}
//+------------------------------------------- --------------------+
int OrderSendX (string sembolü, int cmd, çift hacim, çift fiyat, int kayma, çift stoploss,
çift kâr elde etme, string yorum=NULL, int magic=0, datetime son kullanma=0,color arrow_color=CLR_NONE)
{
int hata = GetLastError();
hata = 0;
bool exit_loop = yanlış;
int bilet = -1;

int Yeniden Dene = 10;
int cnt = 0;
if (cmd == OP_BUY || cmd == OP_SEL)
{
while(!exit_loop)
{
bilet = OrderSend(sembol, cmd, hacim, fiyat, kayma, stoploss, kâr alma, yorum, sihir, son kullanma, ok_renk);
hata = GetLastError();

geçiş(hata)
{
durum ERR_NO_ERROR:
çıkış_döngüsü = doğru;
kırmak;

durum ERR_SERVER_BUSY:
durum ERR_NO_CONNECTION:
durum ERR_INVALID_PRICE:
durum ERR_OFF_QUOTES:
durum ERR_BROKER_BUSY:
ERR_TRADE_CONTEXT_BUSY vakası:
cnt++;
kırmak;

ERR_PRICE_CHANGED vakası:


Yeniler();
devam etmek;

varsayılan:
çıkış_döngüsü +doğru;
kırmak;

}
if (cnt > Yeniden Dene)
çıkış_döngüsü = doğru;


if (!exit_loop)
{
uyku(1000);
Yeniler();

}
başka
{
if(hata != ERR_NO_ERROR)
{
Print("HATA:" + hata);

}

}

if(err == ERR_NO_ERROR)
{
OrderSelect(bilet, SELECT_BY_TICKET,MODE_TRADES);
bilet iadesi);
}

Print("Hata: sipariş açma işlemi başarısız oldu" + cnt + "denemeler");
dönüş(-1);


}// süre
}//Eğer
}//çıkış
 
Mikhail Nikolaev :

Burada....

}


}


bilet iadesi);

}

 
Mikhail Nikolaev :

Leanid Aladzyeu :

Kodu foruma doğru şekilde yapıştırın

 
Mikhail Nikolaev :

Nedense son satırda hata veriyor.

'}' - tüm kontrol yolları Expert4.mq4 değerini döndürmez

void olmayan her işlev bir dönüş ifadesi ile bitmelidir.

Sadece bu kodu bir video dersinden izliyorum ve eski bir yapı için olabilir.



#include#include <stderror.mqh>

//+------------------------------------------- --------------------+
//| Expert4.mq4 |
//| Mihail |
//| |
//+------------------------------------------- --------------------+
# mülkiyet telif hakkı "Mikhail"
#özellik bağlantısı ""
#özellik sürümü "1.00"
#mülkiyet katı

int sinyal = 1;

int başlangıç()
{
if (sinyal == 1)
{
OrderSendX(Symbol(), OP_BUY, 0.2, Sor, 30, 0, 0, "Test", 123, 0, Mavi);
}
dönüş(0);
}
//+------------------------------------------- --------------------+
int OrderSendX (string sembolü, int cmd, çift hacim, çift fiyat, int kayma, çift stoploss,
çift kâr elde etme, string yorum=NULL, int magic=0, datetime son kullanma=0,color arrow_color=CLR_NONE)
{
int hata = GetLastError();
hata = 0;
bool exit_loop = yanlış;
int bilet = -1;

int Yeniden Dene = 10;
int cnt = 0;
if (cmd == OP_BUY || cmd == OP_SEL)
{
while(!exit_loop)
{
bilet = OrderSend(sembol, cmd, hacim, fiyat, kayma, stoploss, kâr alma, yorum, sihir, son kullanma, ok_renk);
hata = GetLastError();

geçiş(hata)
{
durum ERR_NO_ERROR:
çıkış_döngüsü = doğru;
kırmak;

durum ERR_SERVER_BUSY:
durum ERR_NO_CONNECTION:
durum ERR_INVALID_PRICE:
durum ERR_OFF_QUOTES:
durum ERR_BROKER_BUSY:
ERR_TRADE_CONTEXT_BUSY vakası:
cnt++;
kırmak;

durum ERR_PRICE_CHANGED:


Yeniler();
devam etmek;

varsayılan:
çıkış_döngüsü +doğru;
kırmak;

}
if (cnt > Yeniden Dene)
çıkış_döngüsü = doğru;


if (!exit_loop)
{
uyku(1000);
Yeniler();

}
başka
{
if(hata != ERR_NO_ERROR)
{
Print("HATA:" + hata);

}

}

if(err == ERR_NO_ERROR)
{
OrderSelect(bilet, SELECT_BY_TICKET,MODE_TRADES);
bilet iadesi);
}

Print("Hata: sipariş açma işlemi başarısız oldu" + cnt + "denemeler");
dönüş(-1);


}// süre
}//Eğer
}//çıkış

Kahretsin, kodu biçimlendirmek gerçekten bu kadar zor mu? Prensip dışı bile bakmayacağım - gözlerimi kıracağım.
 
Yine yalanım takılı değil
 
Leanid Aladzyeu :
Yine yalanım takılı değil

Her şey yolunda gidiyor, hangi tarayıcıya sahipsiniz? Bir başkasıyla değiştirmeyi deneyin. fox'um var. Cevabı en sondaki koddaki yorumlarda verdim.

 #include <stderror.mqh>
//+------------------------------------------------------------------+
//|                                                      Expert4.mq4 |
//|                                                          Mikhail |
//|                                                                  |
//+------------------------------------------------------------------+
#property copyright "Mikhail"
#property link        ""
#property version    "1.00"
#property strict

int signal = 1 ;

int start()
{
   if (signal == 1 )
   {
      OrderSendX ( Symbol (), OP_BUY, 0.2 , Ask, 30 , 0 , 0 , "Test" , 123 , 0 , Blue);
   }
   return ( 0 );
}
//+------------------------------------------------------------------+
int OrderSendX ( string symbol, int cmd, double volume, double price, int slippage, double stoploss,
               double takeprofit, string comment= NULL , int magic= 0 , datetime expiration= 0 , color arrow_color=CLR_NONE)
{
   int err = GetLastError ();
   err = 0 ;
   bool exit_loop = false ;
   int ticket = - 1 ;
  
   int Retry = 10 ;
   int cnt = 0 ;
   if (cmd == OP_BUY || cmd == OP_SELL)
   {
       while (!exit_loop)
      {
         ticket = OrderSend (symbol, cmd, volume, price, slippage, stoploss, takeprofit, comment,magic, expiration, arrow_color);
         err = GetLastError ();
        
         switch (err)
         {
             case ERR_NO_ERROR:
            exit_loop = true ;
             break ;
           
             case ERR_SERVER_BUSY:
             case ERR_NO_CONNECTION:
             case ERR_INVALID_PRICE:
             case ERR_OFF_QUOTES:
             case ERR_BROKER_BUSY:
             case ERR_TRADE_CONTEXT_BUSY:
            cnt++;
             break ;
           
             case ERR_PRICE_CHANGED:
           
          
            RefreshRates();
             continue ;
           
             default :
               exit_loop + true ;
               break ;
         
         }
         if (cnt> Retry)
            exit_loop = true ;
          
           
         if (!exit_loop)
            {
               Sleep ( 1000 );
               RefreshRates();
              
            }
             else
               {
                   if (err != ERR_NO_ERROR)
                  {
                   Print ( "ERROR: " + err);
                 
                  }
            
               }
              
               if (err == ERR_NO_ERROR)
               {
                   OrderSelect (ticket, SELECT_BY_TICKET,MODE_TRADES);
                   return (ticket);
               }
              
               Print ( "Error: order open failed after" + cnt + "atempts" );
               return (- 1 );
           
           
} //while
} //if
// тут надо вернуть какое-то значение, компилятор не понимает, что у вас есть return-ы внутри while, он не умеет анализировать код. Он ожидает, что при выходе из функции будет возвращаться значение
} //exit