Çaydanlıktan gelen sorular - sayfa 273

 
bagdarino :

maliyet, örneğin ayda 20 kredi, kredi nedir ve maliyeti.

1 kredi = 1$
 

Çifti bir sayıya kodlamanız gerekir. MT4'te, önce diziyi başlatarak durumdan çıkıyorum:

 string CurrName [ 35 ]={ "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "A" , "B" , "C" , "D" , "E" , "F" , "G" , "H" , "I" , "J" , "K" , "L" , "M" , "N" , "O" , "P" , "Q" , "R" , "S" , "T" , "U" , "V" , "W" , "X" , "Y" , "Z" };

sonra diziden geçerek bir sayıya bir çift yazarım:

 for ( int i= 0 ; i<= 6 ; i++)
  { string letter = StringSubstr (Symb,i, 1 );
   for ( int j= 10 ; j<= 35 ;j++)
    { if (letter == CurrName[j])
     {text1= StringConcatenate (text1, j);
       break ;
      }}}

MT5'te bu çalışmıyor çünkü. zaten diziyi başlatmaya çalışırken bir hata yazıyor:

'Z' - çok fazla başlatıcı

Ne yazık ki, bu noktada bilgimde bir boşluk var.

Lütfen soruna olası çözümler önerin. Belki MT4 için de daha hızlı bir yol vardır, bilmekten memnuniyet duyarım.


Документация по MQL5: Операции с массивами / ArrayInitialize
Документация по MQL5: Операции с массивами / ArrayInitialize
  • www.mql5.com
Операции с массивами / ArrayInitialize - Документация по MQL5
 
Heroix :

Çifti bir sayıya kodlamanız gerekir. MT4'te, önce diziyi başlatarak durumdan çıkıyorum:

sonra diziden geçerek bir sayıya bir çift yazarım:

.........

MT5'te bu çalışmaz çünkü. zaten diziyi başlatmaya çalışırken bir hata yazıyor:

'Z' - çok fazla başlatıcı

Vapchepa 10+26 = 36. Ve [35] boyutunda bir diziniz var. 'Z' harfi uymuyor, derleyici size bundan bahsediyor.

Ne yazık ki, bu noktada bilgimde bir boşluk var.

Lütfen soruna olası çözümler önerin. Belki MT4 için de daha hızlı bir yol vardır, öğrenmekten memnuniyet duyarım.

Hızlı yola gelince. Programlama şiir gibidir. Harflere ek olarak, genel olarak, hiçbir şey bilmenize gerek yok. Gerisi yaratıcılıktır. Bir görev var - bir çözüm icat ediyoruz.

Ve burada, iyi bir programcının kötü bir programcıdan sadece ezberlenmiş bir referans kitabının kalınlığında farklı olduğunu en aşağılayıcı şekilde ima ediyorsunuz .... :) Şimdi bile yardım etmeye isteksiz ..

Fi!

 
MetaDriver :

Vapchepa 10+26 = 36. Ve [35] boyutunda bir diziniz var. 'Z' harfi uymuyor, derleyici size bundan bahsediyor.

Hızlı yola gelince. Programlama şiir gibidir. Harflere ek olarak, genel olarak, hiçbir şey bilmenize gerek yok. Gerisi yaratıcılıktır. Bir görev var - bir çözüm icat ediyoruz.

Ve burada, iyi bir programcının kötü bir programcıdan sadece ezberlenmiş bir referans kitabının kalınlığında farklı olduğunu en aşağılayıcı şekilde ima ediyorsunuz .... :) Şimdi bile yardım etmeye isteksiz ..

Fi!

Garip ama bir şekilde kod MT4'te çalışıyor. Döngüde evet, j<=36 orijinalde, burada "çizilmiş" 35.

Teşekkürler, gerçekten dizi değerinin bildirimindeydi. Dizileri bu şekilde her 100 yılda bir, mecazi olarak ilan ediyorum ... kesinlikle yargılamayın.

Son satırlarda varsayımlarınız var, başka bir şey değil. Neredeyse düz metin olarak yazdım: Çeşitli nedenlerle ne yapacağımı bilmiyordum.

 
Heroix :

Garip ama bir şekilde kod MT4'te çalışıyor. Döngüde evet, j<=36 orijinalde, burada "çizilmiş" 35.

Teşekkürler, gerçekten dizi değerinin bildirimindeydi. Dizileri bu şekilde her 100 yılda bir, mecazi olarak ilan ediyorum ... kesinlikle yargılamayın.

TAMAM.

Son satırlarda varsayımlarınız var, başka bir şey değil. Neredeyse düz metin olarak yazdım: Çeşitli nedenlerle ne yapacağımı bilmiyordum.

İyi iyi. Ben de bu ... dolunay, evet. Bugün herhangi bir nedenle kırılmak moda.

;)

 
papaklass :

MK'nin pozisyonunun değişip değişmediğini kim bilebilir:

1. İstisna işlemeye giriş ({} catch() {} deneyin) . "Kategorik olarak karşı" idi.

Değil

? Bu saçmalık. Ne soracağımı bilmiyorum. Operatör, konsepti genellikle MQL'de bulunmayan konteynerler için özel olarak tasarlanmıştır.

Yalnızca bunun olağan handikap tarafından mükemmel şekilde uygulandığı diziler vardır.

 
papaklass :

MC'nin pozisyonunun değişip değişmediğini kim bilebilir:

1. İstisna işlemeye giriş ({} catch() {} deneyin) . "Kategorik olarak karşı" idi.

2. foreach () {} operatörünün tanıtımı .

Not: Operatörün neden öne çıktığı belli değil mi?

Öne çıktı çünkü ayrılmış bir kelime var ve bağlantı ona işaret ediyor.
 

ne kazandım...

senaryo:

 #property script_show_inputs
//--- input parameters
input string    Symb0= "EURUSD" ;
input double    Vol0= 0.2 ;
input string    Symb1= "GBPUSD" ;
input double    Vol1= 0.3 ;
input string    Symb2= "CADCHF" ;
input double    Vol2= 0.4 ;

input bool      buy = true ;

MqlTradeRequest TradeRequest[ 3 ];
MqlTradeResult   TradeResult[ 3 ];
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart ()
  {
   if (buy)
  {
  _OrderSend(TradeRequest[ 0 ],TradeResult[ 0 ],Symb0, ORDER_TYPE_BUY ,Vol0, 0 , 0.0 , 0.0 , "EURUSD" , 0 );
  _OrderSend(TradeRequest[ 1 ],TradeResult[ 1 ],Symb1, ORDER_TYPE_BUY ,Vol1, 0 , 0.0 , 0.0 , "GBPUSD" , 0 );
  _OrderSend(TradeRequest[ 2 ],TradeResult[ 2 ],Symb2, ORDER_TYPE_BUY ,Vol2, 0 , 0.0 , 0.0 , "CADCHF" , 0 );
   Comment ( PositionsTotal ());
  }
   //Sleep(5000);
   else
  {
  
  _OrderSend(TradeRequest[ 0 ],TradeResult[ 0 ],Symb0, ORDER_TYPE_SELL ,Vol0, 0 , 0.0 , 0.0 , "EURUSD" , 0 );
  _OrderSend(TradeRequest[ 1 ],TradeResult[ 1 ],Symb1, ORDER_TYPE_SELL ,Vol1, 0 , 0.0 , 0.0 , "GBPUSD" , 0 );
  _OrderSend(TradeRequest[ 2 ],TradeResult[ 2 ],Symb2, ORDER_TYPE_SELL ,Vol2, 0 , 0.0 , 0.0 , "CADCHF" , 0 );
  }
  
   Sleep ( 1000 );
  _CloseAllPositions();
  }
//+------------------------------------------------------------------+

void _OrderSend( MqlTradeRequest &tradeRequest,
                 MqlTradeResult   &tradeResult,
                 string           symbol,
                 ENUM_ORDER_TYPE type,
                 double           volume,
                 ulong            deviation,
                 double           sl,
                 double           tp,
                 string           comment,
                 int              magic)
{
   MqlTick price; SymbolInfoTick (symbol, price);
  
  tradeRequest.action   = TRADE_ACTION_DEAL ;
  tradeRequest.symbol   = symbol;
  tradeRequest.type     = type;
  tradeRequest.volume   = volume;
  
   if (type== ORDER_TYPE_BUY )
    tradeRequest.price    = price.ask;
   if (type== ORDER_TYPE_SELL )
    tradeRequest.price    = price.bid;

  tradeRequest.deviation= deviation;
  tradeRequest.sl       = sl;
  tradeRequest.tp       = tp;
  tradeRequest.comment  = comment;
  tradeRequest.magic    = magic;
  
   OrderSendAsync (tradeRequest,tradeResult);
}


void _CloseAllPositions()
{
   Print ( "пробую закрытся" );
   MqlTradeRequest tradeRequest;
   MqlTradeResult   tradeResult;
   MqlTick price;
  
   if ( PositionsTotal ()> 0 )
  {
    
     string symb= "" ;
    
     for ( int i= 0 ;i< PositionsTotal ();i++)
    {
      symb= PositionGetSymbol (i);
       PositionSelect (symb);
       SymbolInfoTick (symb, price);
      
       if ( PositionGetInteger ( POSITION_TYPE )== POSITION_TYPE_BUY )
      {
        tradeRequest.type = ORDER_TYPE_SELL ;
        tradeRequest.price=price.bid;
      }
       else
      {
        tradeRequest.type = ORDER_TYPE_BUY ;
        tradeRequest.price=price.ask;
      }
        tradeRequest.action   = TRADE_ACTION_DEAL ;
        tradeRequest.symbol   = symb;
        tradeRequest.volume   = PositionGetDouble ( POSITION_VOLUME );
        tradeRequest.deviation= 0 ;
        tradeRequest.sl       = 0.0 ;
        tradeRequest.tp       = 0.0 ;
        tradeRequest.comment  = "" ;
        tradeRequest.magic    = 0 ;
        
         OrderSend (tradeRequest,tradeResult);
    }
  }
}

hatalar veriyor:

2013.08.23 10:28:54 İşlemler '1421016': 0.87721'den 1.60 CADCHF anında satış başarısız oldu [Geçersiz istek]
2013.08.23 10:28:54 '1421016' işlemleri: 1.55836'dan 1.20 GBPUSD anında satış başarısız oldu [Geçersiz istek]
2013.08.23 10:28:54 İşlemler '1421016': başarısız anında satış 0.80 EURUSD 1.33455'te [Geçersiz istek]


Sorun nedir?

 

Benim için her şey açılıyor... Ama CADCHF kapanmıyor. (Sunucu - MetaQuotes Demo)

For döngüsünün yönünü değiştirdim, şimdi her şey yolunda, her şey açılıyor ve her şey kapanıyor.

 
i_logic :

Benim için her şey açılıyor... Ama CADCHF kapanmıyor. (Sunucu - MetaQuotes Demo)

For döngüsünün yönünü değiştirdim, şimdi her şey yolunda, her şey açılıyor ve her şey kapanıyor.

şu şekilde değiştirildi:

 for ( int i= PositionsTotal ()- 1 ;i>= 0 ;i--)

Ayrıca kilit çalışmıyor.

Neden: