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

 
001 писал(а) >>
Mümkünse kod şeklinde, yoksa kafamı kırdım :)
 int Order_Count [ 6 ] ;
//===============================================================================
// Функция возвращаюшая количество ордеров определенного типа исхода из заданных ограничений
//===============================================================================
int Order_Count_Calculate ( string _Symbol , int _Magic , int _OP = - 1 ) {
   ArrayInitialize ( Order_Count , 0 ) ;
   for ( int i = OrdersTotal ( ) - 1 ;   i > = 0 ;   i - - ) {
       if ( ! OrderSelect ( i , SELECT_BY_POS , MODE_TRADES ) )    continue ;
       if ( OrderSymbol ( ) ! = _Symbol )                      continue ;
       if ( OrderMagicNumber ( ) ! = _Magic )                    continue ;
      Order_Count [ OrderType ( ) ] + + ;
   }
   if ( _OP > = 0 ) return ( Order_Count [ _OP ] ) ;
   return ( 0 ) ;
}
Bu seçenek uygundur
 

Sorun ne olabilir? Test sırasında, gösterge birkaç parça kadar gösterdi ve danışman, göstergenin sorunu ne olabilir?



Dosyalar:
trix_pv_4.mq4  10 kb
 

OsMA değerlerini hangi değişken depolar?



//+------------------------------------------- --------------------+
//| OsMA.mq4 |
//| Telif Hakkı © 2004, MetaQuotes Yazılım A.Ş. |
//| http://www.metaquotes.net/ |
//+------------------------------------------- --------------------+
#property telif hakkı "Telif hakkı © 2004, MetaQuotes Software Corp."
#özellik bağlantısı "http://www.metaquotes.net/"
//---- gösterge ayarları
#özellik göstergesi_separate_window
#özellik göstergesi_tamponları 1
#özellik göstergesi_color1 Gümüş
#özellik göstergesi_width1 2
//---- gösterge parametreleri
harici int FastEMA=12;
harici int YavaşEMA=26;
harici int SignalSMA=9;
//---- gösterge tamponları
doubleOsmaBuffer[];
çift MacdBuffer[];
doubleSignalBuffer[];

//+------------------------------------------- --------------------+
//| özel gösterge başlatma işlevi |
//+------------------------------------------- --------------------+
int init()
{
//---- Sayım için 2 ek tampon kullanılır.
GöstergeTamponları(3);
//---- çizim ayarları
SetIndexStyle(0,DRAW_HISTOGRAM);
SetIndexDrawBegin(0,SignalSMA);
GöstergeDigits(Rakamlar+2);
//---- 3 gösterge arabelleği eşlemesi
SetIndexBuffer(0,OsmaBuffer);
SetIndexBuffer(1, MacdBuffer);
SetIndexBuffer(2,SignalBuffer);
//---- DataWindow ve gösterge alt pencere etiketi için isim
GöstergeShortName("OsMA("+HızlıEMA+","+SlowEMA+","+SignalSMA+")");
//---- başlatma tamamlandı
dönüş(0);
}
//+------------------------------------------- --------------------+
//| Osilatörün Hareketli Ortalaması |
//+------------------------------------------- --------------------+
int başlangıç()
{
int limiti;
int counted_bars=IndicatorCounted();
//---- son sayılan çubuk yeniden sayılacak
if(counted_bars>0) counted_bars--;
limit=bars-counted_bars;
//---- 1. ek tamponda sayılan macd
for(int i=0; i<limit; i++)
MacdBuffer[i]=iMA(NULL,0,FastEMA,0,MODE_EMA,PRICE_CLOSE,i)-iMA(NULL,0,SlowEMA,0,MODE_EMA,PRICE_CLOSE,i);
//---- 2. ek tamponda sayılan sinyal hattı
for(i=0; i<limit; i++)
SignalBuffer[i]=iMAOnArray(MacdBuffer,Barlar,SignalSMA,0,MODE_SMA,i);
//---- Ana döngü
for(i=0; i<limit; i++)
OsmaBuffer[i]=MacdBuffer[i]-SignalBuffer[i];
//---- tamamlamak

dönüş(0);
}
//+------------------------------------------- --------------------+

 
Vinin писал(а) >>
Bu seçenek uygundur

Çok teşekkürler! Doğru, fonksiyonlarla uğraşmadım, şimdi onu nasıl çağıracağımı bulmam, değişkenlerin değerini ona geçirmem ve değerleri geri almam gerekiyor. Etki mekanizmasını doğru anlarsam.

 
vlandex >> :

OsMA değerlerini hangi değişken depolar?

ama tamponda değil mi?

 
Infinity >> :

ama tamponda değil mi?

Ne?

 
vlandex писал(а) >>

Ne?

OsmaTampon[]

 
vlandex >> :

Ne?

дабавте перед 

Alert("Значения MacdBuffer[i]="MacdBuffer[i]);

Alert("Значения SignalBuffer[i]="SignalBuffer[i]);

Alert("Значения OSMA ="OsmaBuffer[i]);

return(0);
}


sadece değerleri normalleştirmen gerekiyor

 

Merhaba.

Alım pozisyonları için stop neden taşınmıyor? hücre için her şey çalışıyor.

if(Sipariş Toplamı()>0)
{
if(Teklif==bubuy||Teklif==büsell)
{
OrderSelect (bilet, SELECT_BY_TICKET, MODE_TRADES);
OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice(),OrderTakeProfit(), 0, Mavi);
}
dönüş(0);
}

 
1Rakso >> :

Sorun ne olabilir? Test sırasında, gösterge birkaç parça kadar gösterdi ve danışman, göstergenin sorunu ne olabilir?

EA'daki parametreler (sayıya veya türe göre) yanlış ayarlanmış.

Alternatif olarak, tüm dize parametrelerini göstergeden kaldırın.