Çaydanlıktan gelen sorular - sayfa 239

 
forward666 :

Teşekkürler! Bir şey önerebilirseniz süper olur!

Ve şimdi stilist hakkında daha fazla okuyacağım

Bunun yerine deneyin:

 bool first;

yazmak:

 bool first= true ;
 
Bayanlar ve Baylar! Lütfen "çaydanlığa" piyasadan ücretsiz bir danışmanı nasıl (veya daha doğrusu nereden) indireceğini söyleyin? Sıradan danışmanları nereye kuracağımı biliyorum .. Piyasadan çalışmıyor - hangi uygulamayı kullanmalı?
 
Sokrat :

Bayanlar ve Baylar! Lütfen "çaydanlığa" piyasadan ücretsiz bir danışmanı nasıl (veya daha doğrusu nereden) indireceğini söyleyin? Sıradan danışmanları nereye kuracağımı biliyorum .. Piyasadan çalışmıyor - hangi uygulamayı kullanmalı?
Bunu yapmanın en kolay yolu terminalden, araç çubuğunda bir pazar sekmesi var.
 
Sokrat :

Bayanlar ve Baylar! Lütfen "çaydanlığa" piyasadan ücretsiz bir danışmanı nasıl (veya daha doğrusu nereden) indireceğini söyleyin? Sıradan danışmanları nereye kuracağımı biliyorum .. Piyasadan çalışmıyor - hangi uygulamayı kullanmalı?



 

forward666 : У меня при запуске робота сразу открывается позиция ,которая явно не отражает реалии графика,соответственно она уходит в глубокий минус. Как сделать,что при запуске робота эта позиция не открывалась сразу?где в коде нужно что-то добавить?

 #include <Trade/Trade.mqh>
#include <Trade/SymbolInfo.mqh>
#include <Trade/PositionInfo.mqh>

CTrade Trade;
CSymbolInfo Sym;
CPositionInfo Pos;

input int Shift= 10 ; /*Shift*/ // Величина скачка цены для открытия позиции
input int Limit= 100 ; /*Limit*/ // Величина убытка в пунктах для закрытия позиции
input int Prof= 10 ;
input int MA_Period= 50 ; // Период Moving Average 
int maHandle; // хэндл индикатора Moving Average
double maVal[ 3 ]; // статический массив для хранения значений индикатора Moving Average
bool first;
double a,b,Lots;
//+------------------------------------------------------------------+
//| Expert initialization function |
//+------------------------------------------------------------------+
int OnInit ()
  {
   maHandle= iMA ( NULL , 0 ,MA_Period, 2 , MODE_SMA , PRICE_CLOSE );
   if (maHandle< 0 )
     {
       Alert ( "Ошибка при создании индикаторов - номер ошибки: " , GetLastError (), "!!" );
       return (- 1 );
     }
   first= false ;
   if (!Sym.Name( _Symbol ))
     {
       Alert ( "Ошибка инициализации CSymbolInfo, поворите попытку" );
       return (- 1 );
     }
   Print ( "Инициализация эксперта выполнена" );
   return ( 0 );
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function |
//+------------------------------------------------------------------+
void OnDeinit ( const int reason)
  {
   IndicatorRelease (maHandle);
  }
//+------------------------------------------------------------------+
//| Expert tick function |
//+------------------------------------------------------------------+
void OnTick ()
  {
   if ( CopyBuffer (maHandle, 0 , 0 , 3 ,maVal)< 0 )
     {
       Alert ( "Ошибка копирования буферов индикаторов - номер ошибки:" , GetLastError ());
       return ;
     }
   if (!Sym.RefreshRates()) return ;
   if (first)
     {
      a=Sym.Ask();
      b=Sym.Bid();
      first= false ;
       return ;
     }
   Lots= AccountInfoDouble ( ACCOUNT_FREEMARGIN )* 0.66 / 1000 / SymbolInfoDouble ( _Symbol , SYMBOL_TRADE_TICK_VALUE );
   Lots= MathMin ( 999 , MathMax ( 1 ,Lots));
   Lots= NormalizeDouble (Lots, 2 );
   if (Pos.Select( _Symbol ))
     {
       if (Pos.Profit()> 2 )
        {
         Trade.PositionClose( _Symbol ,Sym.Spread()* 2 );
        }
       else
        {
         if (Pos.PositionType()== POSITION_TYPE_BUY )
           {
             if ((Pos.PriceOpen()-Sym.Ask())/Sym. Point ()>Limit) // || Sym.Bid()<maVal[0]-0.0005)
              {
               Trade.PositionClose( _Symbol ,Sym.Spread()* 2 );

              }
           }
         else if (Pos.PositionType()== POSITION_TYPE_SELL )
           {
             if ((Sym.Bid()-Pos.PriceOpen())/Sym. Point ()>Limit) // || Sym.Ask()>maVal[0]+0.0005)
              {
               Trade.PositionClose( _Symbol ,Sym.Spread()* 2 );

              }
           }
        }
     }
   else
     {
       if (b-Sym.Bid()>=Shift*Sym. Point () && maVal[ 0 ]>maVal[ 1 ] && maVal[ 1 ]>maVal[ 2 ] && Sym.Bid()<maVal[ 0 ])
        {
         Trade.SetDeviationInPoints(Sym.Spread()* 2 );
         Trade.PositionOpen( _Symbol , ORDER_TYPE_SELL ,Lots,Sym.Bid(), 0 , 0 , "" ); //Sym.Bid()+0.0030
                                                                             // Trade.Sell(Lots,_Symbol,0,0,0,"");
         Print ( __FUNCTION__ , "():Sell" );
        }
       if (Sym.Ask()-a>=Shift*Sym. Point () && maVal[ 0 ]<maVal[ 1 ] && maVal[ 1 ]<maVal[ 2 ] && Sym.Ask()>maVal[ 0 ])
        {
         Trade.SetDeviationInPoints(Sym.Spread()* 2 );
         Trade.PositionOpen( _Symbol , ORDER_TYPE_BUY ,Lots,Sym.Ask(), 0 , 0 , "" ); //Sym.Ask()-0.0030
                                                                           // Trade.Buy(Lots,_Symbol,0,0,0,"");
         Print ( __FUNCTION__ , "():Buy" );
        }
     }
   a=Sym.Ask();
   b=Sym.Bid();
  }

İlk onay işaretinden önce: first==false var ve a ve b değişkenleri başlatılmamış. Bu nedenle, ilk kene üzerinde koşul

   if (first)
     {
      a=Sym.Ask();
      b=Sym.Bid();
      first= false ;
      return ;
     }

başarısız olur ve a ve b değişkenleri başlatılmamış olarak kalır.

Bu sorunu çözdükten sonra pozisyon hala açılıyorsa, MA, ask, teklif ve a ve b değişkenleri için dizi değerlerini yazdırın.

 

Merhaba.

Ben en "çaydanlığım" bu yüzden ayaklarınızı tekmeleme)

Soru şudur: 5. metatrader'dan alıntı verileri nasıl çıkarılır?

4m'de her şey açık ve kolay, alıntıları bir excel dosyasına dönüştürdüm ve internet erişiminin engellendiği işime götürdüm ve onlarla orada çalıştım.

Ancak 5. metatrader'da dosyalarını excel'e nasıl dönüştüreceğimi bilmiyorum. Lütfen bana söyle. Adım adım bir talimata veya bir komut dosyasına ihtiyacım olduğu ortaya çıktı (programlama dilini hiç bilmiyorum ama komut dosyalarını, danışmanları veya göstergeleri nasıl kullanacağımı biliyorum), bu istenen zaman diliminde kullanılabilecek, standart dışı olsa bile (örneğin M3 veya M7). Ve lütfen benden bir programlama dili öğrenmeye başlamamı istemeyin, lütfen.

İki metatrader ile çalışmamak için sonunda MT5'e geçmek istiyorum.

Gerçekten yardımlarınızı bekliyorum bilgili insanlar, hayatın tabutu için minnettar olacağım =).

Saygılarımla, Alex.

 
Hronoptal :

...

Kısmen, burada ihtiyacınız olanı bulacaksınız: Diğer programlar için MetaTrader 5 teklifleri nasıl hazırlanır

Çalışmak istemiyorsanız Çalışma bölümünden canınız ne istiyorsa onu sipariş verebilirsiniz. ))

 

Çok teşekkürler, sevgili tol64, ipucu için.

Ve ders çalışmak pahasına, ne yazık ki hala zaman sıkıntısı.

Tekrar teşekkürler.

Saygılarımla, Alex.

 
Sadece 1 değil 2 veya daha fazla göstergenin gösterilmesi için görsel bir gösterge testi yapmak mümkün müdür?
 
paladin800 :
Sadece 1 değil 2 veya daha fazla göstergenin gösterilmesi için görsel bir gösterge testi yapmak mümkün müdür?
Şablonu, gerekli tüm göstergelerle birlikte tester.tpl dosya adıyla kaydedin ve görselleştirme modunda testi etkinleştirin.