[UYARI, KONU KAPALI!] Forumu kirletmemek için herhangi bir acemi sorusu. Profesyonel, kaçırmayın. Sensiz hiçbir yerde. - sayfa 492

 

Eklememe yardım et, Yatay kaydırma
ve dikey
Ayrıca popo .......... gaga çalışıyorsanız

 //+------------------------------------------------------------------+
//|                                                Price Channel.mq4 |
//+------------------------------------------------------------------+



#property indicator_chart_window
#property indicator_buffers 3
#property indicator_color1 Red
#property indicator_color2 Blue
#property indicator_color3 DodgerBlue
//---- input parameters
extern int ChannelPeriod = 14 ;
//---- buffers
double UpBuffer[];
double DnBuffer[];
double MdBuffer[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
   string short_name;
//---- indicator line
   SetIndexStyle( 0 , DRAW_LINE );
   SetIndexStyle( 1 , DRAW_LINE );
   SetIndexStyle( 2 , DRAW_LINE );
   SetIndexBuffer ( 0 , UpBuffer);
   SetIndexBuffer ( 1 , DnBuffer);
   SetIndexBuffer ( 2 , MdBuffer);
//---- name for DataWindow and indicator subwindow label
   short_name= "Price Channel(" +ChannelPeriod+ ")" ;
   IndicatorShortName(short_name);
   SetIndexLabel( 0 , "UpCh" );
   SetIndexLabel( 1 , "DownCh" );
   SetIndexLabel( 2 , "MidCh" );
//----
   SetIndexDrawBegin( 0 , ChannelPeriod);
   SetIndexDrawBegin( 1 , ChannelPeriod);
   SetIndexDrawBegin( 2 , ChannelPeriod);
//----
   return ( 0 );
  }
//+------------------------------------------------------------------+
//| Price Channel                                                         |
//+------------------------------------------------------------------+
int start()
  {
   int i, counted_bars = IndicatorCounted();
   int     k;
   double high, low, price;
//----
   if ( Bars <= ChannelPeriod) 
       return ( 0 );
//---- initial zero
   if (counted_bars < 1 )
       for (i = 1 ;i <= ChannelPeriod; i++) 
          UpBuffer[ Bars -i] = 0.0 ;
//----
   i = Bars - ChannelPeriod - 1 ;
   if (counted_bars >= ChannelPeriod) 
       i = Bars - counted_bars - 1 ;
   while (i >= 0 )
     {
       high = High[i]; 
       low = Low[i]; 
       k = i - 1 + ChannelPeriod;
       while (k >= i)
         {
           price = High[k];
           if (high < price) 
               high = price;
           price = Low[k];
           if (low > price)  
               low = price;
           k--;
         } 
       UpBuffer[i] = high;
       DnBuffer[i] = low;
       MdBuffer[i] = (high + low) / 2 ;
       i--;
     }
   return ( 0 );
  }
//+------------------------------------------------------------------+
 
splxgf >> :

Hemen sıcak bir başlangıç yapabilirsiniz.

içinde(){

while (doğru) {

// sonsuz yüksek

}

teşekkürler splxgf . denedim ama... Görünüşe göre bu fikri daha iyi zamanlara bırakmamız gerekecek. Ya da belki bir başkası buna ilgi gösterecek, bence, birçok uzmanın faydalı revizyonu.

 
hedger писал(а) >>

teşekkürler splxgf . denedim ama... Görünüşe göre bu fikri daha iyi zamanlara bırakmamız gerekecek. Ya da belki bir başkası buna ilgi gösterecek, bence, birçok uzmanın faydalı revizyonu.


nasıl yapılacağını gör
int başlangıç()
{
süre(doğru)
{
Uyku(5000); // Bir sonraki yinelemeye 5 saniye ertele
Yeniler(); // Veriyi güncelle
// kodun geri kalanı. Açma, kapama vb. koşullar
}
}
 
Djonon >> :

Eklememe yardım et, Yatay kaydırma
ve dikey
Kalça da çalışıyorsan .......... gaga

 extern int Сдвиг_по_горозинтали = 14 ; //КОЛ-ВО БАРОВ
extern int и_вертикали = 14 ; //КОЛ-ВО ПУНКТОВ
Dosyalar:
 
hedger >> :

Siparişleri kapatmak için, bu iki kod satırında, istediğiniz herhangi bir siparişi kapatabilen JimsCloseOrders EA'yı kullanıyorum - kârlı veya kârsız ya da biraz ayarlamam gerekse de arka arkaya her şey - bu iki kod satırında

dış bool CloseOpenOrders = doğru;

dış bool CloseOrdersWithPlusProfit = yanlış;

yanlış ve gerçek yerleri değiştirmek gerekir, aksi takdirde, bir çizelgeye yüklendiğinde böyle bir ayar yapılırsa, bir nedenden dolayı tüm emirleri kapatmaya başlar (görünüşe göre program tarafından komutların yürütülme sırası nedeniyle, ama emin değilim) , özel değil).

Bir profesyonele bir sorum var .

Örneğin, yukarıda belirtilen danışmanın mümkün olan en kısa sürede başlatılması gerekir, ancak tüm danışmanlar ve komut dosyaları, çizelgeye ilk işaret geldiği andan itibaren çalışmaya başlar. Expert Advisor'ı kurmak için seçilen döviz çiftinin o anda çok "aktif" olmadığı ortaya çıkarsa, kayıplar önemli olabilir.

Tüm para birimleri için "genel" bir grafik oluşturmak veya başka herhangi bir çiftin gelen işaretlerini kullanmak mümkün müdür? Keneler neredeyse sürekli olarak terminale geliyor. Nerede yakalanabilirler?

içinde her şey basit

 int init()
  {
    трали вали..
    start();
  }
Başlatırken, işlevi hemen yürütün
start();
Ayrıca kene öykünmesine bakın ama bu değil ...

start()
ana fonksiyondur. Bir sonraki tık geldikten sonra Uzman Danışmanlar için çağrılır. Gösterge tabloya eklendikten sonra yeniden hesaplanırken, müşteri terminalini açarken (gösterge tabloya eklenmişse) ve ayrıca bir sonraki onay işaretinin gelmesinden sonra özel göstergeler için çağrılır. Komut dosyaları için, grafiğe eklendikten ve başlatma gerçekleştirildikten hemen sonra yürütülür . Modül start() işlevini içermiyorsa, bu modül (EA, komut dosyası veya özel gösterge) başlatılamaz.
 
int başlangıç()
{
çift teklif =MarketInfo("GBPUSD",MODE_BID);
çift sor =MarketInfo("GBPUSD",MODE_ASK);
çift nokta =MarketInfo("GBPUSD",MODE_POINT);
OrderSend("GBPUSD",OP_BUY,0.01,ask,2,bid-15*Puan,teklif+15*Puan);
Uyarı( GetLastError() );
dönüş;
}

Bu senaryoyu ders kitabından aldım, nasıl çalıştığını görmek istedim - derledim, kaydettim. Koşuyorum - boşuna, neden?
Hata vermiyor, çalışmıyor...
 
Kral. Herkese iyi akşamlar. Dile hakim olma konusunda kesinlikle hiçbir başarım yok. ((((((((
Yani her şey “dürtme” yöntemiyle yapılır, genel olarak, bir grup danışmandan bir şeyler yeniden yapabilirim, ancak belirli bir şey eklemeniz gerektiğinde, hepsi bir stupor ... (((
Burada ve şimdi...
Expert Advisor'da şu satırı yapmak istiyorum, böylece:
Bir açılış algoritmam var, bir kazancım var ve belli bir süre sonra sonuç ne olursa olsun kapatmak istiyorum,
şimdi nasıl eklenir?????????
Böylece bu süre Expert Advisor'da da yapılandırılabilir. Örneğin, anlaşma iki, üç veya dört saat içinde kapansın diye... Haberin açıklanma saatine bağlı olarak, örneğin. Pekala, beni anladığınızı düşünüyorum.
Bilen varsa belki forumda bu tarz sorular olmuştur en azından link atsın lütfen. Bir ders kitabında okumaya çalıştım, sadece sinirler, ileri programcılar için yazılmış, kesinlikle bir bayan için değil.
Ve biri için zor değilse ve önemsiz gibi görünüyorsa, satırları yazın, en azından yapıştırırım, belki o zaman bir şeyler yoluna girer.
Büyük kadınsı lütfen......
 
Magiyanka >> :
Господа. Всем добрый вечер. У меня прям совсем ничего не получается в освоении языка. (((((((

 extern int Час= 2 ; //В начало кода
extern int Мин= 6 ;
extern int Slippage  =   25 ;
extern int STUPID= 12830454 ;
 //В конец кода отдельной функцией
//жжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжж
void OrdersCloseByTime( int MagicNumber)
{
   for ( int i = 0 ; i < OrdersTotal (); i++)
   {
       // already closed
       if ( OrderSelect (i, SELECT_BY_POS,MODE_TRADES ) == false) continue ;
       // not current symbol
       if (OrderSymbol() != Symbol ()) continue ;
       // order was opened in another way
       if (OrderMagicNumber() != MagicNumber) continue ;
       if (Time[ 0 ]-OrderOpenTime( )>=Час* 60 * 60 +Мин* 60 ){
         if (OrderType() == OP_SELL)
        OrderClose(OrderTicket(), OrderLots(), NormalizeDouble (Ask, Digits ), Slippage, Red );
         if (OrderType() == OP_BUY)
        OrderClose(OrderTicket(), OrderLots(), NormalizeDouble (Bid, Digits ), Slippage, Blue );
        }
   }
   
}
//жжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжж
int start()
{
 OrdersCloseByTime(STUPID);//STUPID это мажик номер Вашего советчика
 трали вали ...
Pozisyonları zamanında kapatmak, kaybolmaması için nereye koymalı?!
 
Lim1 >> :

int başlangıç()
{
çift teklif =MarketInfo("GBPUSD",MODE_BID);
çift sor =MarketInfo("GBPUSD",MODE_ASK);
çift nokta =MarketInfo("GBPUSD",MODE_POINT);
OrderSend("GBPUSD",OP_BUY,0.01,ask,2,bid-15*Puan,teklif+15*Puan);
Uyarı(GetLastError());
dönüş;
}

Bu senaryoyu ders kitabından aldım, nasıl çalıştığını görmek istedim - derledim, kaydettim. Koşuyorum - boşuna, neden?
Hata vermiyor, çalışmıyor...

Bunu dene.

 int start()
{
double bid =MarketInfo( "GBPUSD" ,MODE_BID);
double ask =MarketInfo( "GBPUSD" ,MODE_ASK);
double point =MarketInfo( "GBPUSD" ,MODE_POINT);
int tickkkkkkk= OrderSend ( "GBPUSD" ,OP_BUY, 1 ,ask, 2 ,bid- 15 * Point ,bid+ 15 * Point );
if (tickkkkkkk==- 1 ){
 Alert ( "Ошибка № "+ GetLastError ());
 if ( GetLastError ()== 131 )
 Alert ( "Неправильный объем" );
 if ( GetLastError ()== 6 )
 Alert ( "Нет связи с торговым сервером" );
 }
 else Alert ( "Все ОК!!!" );
return ;
}
 
çalışmıyor, zamanında kapanmıyor ve bu kadar