MQL4 ve MQL5 ile ilgili herhangi bir acemi sorusu, algoritmalar ve kodlar hakkında yardım ve tartışma - sayfa 80
![MQL5 - MetaTrader 5 müşteri terminalinde yerleşik ticaret stratejileri dili](https://c.mql5.com/i/registerlandings/logo-2.png)
Ticaret fırsatlarını kaçırıyorsunuz:
- Ücretsiz ticaret uygulamaları
- İşlem kopyalama için 8.000'den fazla sinyal
- Finansal piyasaları keşfetmek için ekonomik haberler
Kayıt
Giriş yap
Gizlilik ve Veri Koruma Politikasını ve MQL5.com Kullanım Şartlarını kabul edersiniz
Hesabınız yoksa, lütfen kaydolun
Test cihazında farklı bir sembolde mi? Veya başka bir sembolde demo/gerçek? Veya bu sembol üzerindeki test cihazında? Veya bu sembolde demo/gerçek mi?
Senden ne çekmen gerekiyor?
Üzgünüm, ben çok acemiyim - nasıl olduğunu anlamıyorum
Belki de en basit koda sahip bir göstergeniz vardır, benzetmeden anlayabilirim? çünkü bulamadım
Burada, çubuğun ortasına noktalar koyan çok basit bir kodum var. Üzerlerine geldiğimde bir metin veya bir pencere görünecek şekilde nasıl yapabilirim?
#property indicator_chart_window
#property indicator_buffers 1
#property indicator_color1 Black
//---- input parameters
//---- buffers
double ExtMapBuffer1[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init()
{
//---- indicators
SetIndexStyle ( 0 , DRAW_ARROW );
SetIndexArrow ( 0 , 159 );
SetIndexBuffer ( 0 ,ExtMapBuffer1);
SetIndexEmptyValue ( 0 , 0.0 );
//----
return ( 0 );
}
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//----
//----
return ( 0 );
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function |
//+------------------------------------------------------------------+
int start()
{
int counted_bars= IndicatorCounted ();
int limit= Bars -counted_bars;
//----
for ( int i=limit; i>= 0 ; i--)
{
double fabody0 = fabs ( Close [i]- Open [i]);
double fabody1 = fabs ( Close [i+ 1 ]- Open [i+ 1 ]);
double fabody2 = fabs ( Close [i+ 2 ]- Open [i+ 2 ]);
double fabody3 = fabs ( Close [i+ 3 ]- Open [i+ 3 ]);
double fabody4 = fabs ( Close [i+ 4 ]- Open [i+ 4 ]);
double fabody5 = fabs ( Close [i+ 5 ]- Open [i+ 5 ]);
double fabody6 = fabs ( Close [i+ 6 ]- Open [i+ 6 ]);
double fabody7 = fabs ( Close [i+ 7 ]- Open [i+ 7 ]);
if ((fabody0>fabody1) && (fabody0>fabody2) && (fabody0>fabody3) && (fabody0>fabody4) && (fabody0>fabody5) && (fabody0>fabody6) &&( Volume [i]> Volume [i+ 1 ]))
{
if ((( Close [i]> Open [i])&&( Low [i]+( High [i]- Low [i])/ 2 > Low [i+ 1 ]+( High [i+ 1 ]- Low [i+ 1 ])* 0.9 ))||(( Close [i]< Open [i])&&( Low [i]+( High [i]- Low [i])/ 2 < Low [i+ 1 ]+( High [i+ 1 ]- Low [i+ 1 ])* 0.1 )))
ExtMapBuffer1[i]=( iHigh ( Symbol (), 0 ,i)+ iLow ( Symbol (), 0 ,i))/ 2 ;
}
}
//----
return ( 0 );
}
Neden sen? Nerede denediğiniz ne fark eder? Soru, Point = 0 olabilir. Ve eğer yapabilirse, bir hatayla karşılaşmamak için kodu doğru bir şekilde nasıl yazabilirim: sıfıra bölme ?
Peki, ne istersen.
İletişim kutusunun tamamını okumadım, ancak beşinci ondalık basamağı yazdırmayla ilgili bir şeyden şüpheleniyorum.
Hayır, Point() ile bölünür ve sıfıra bölünür.
İletişim kutusunun tamamını okumadım, ancak beşinci ondalık basamağı yazdırmayla ilgili bir şeyden şüpheleniyorum.
Sorun bu olabilir mi?
denemek
Merhaba.
Lütfen yardım et.
Şimdi her bir sonraki siparişin lotu 1, 2, 3, 4, 5 gibi artıyor...
Partinin her sipariş için değil, 3'lük bir adımla artmasını istiyorum, Böyle 1, 1, 1, 2, 2, 2, 3, 3, 3…
extern double Plus_LotStop = 0.01 ;
extern double Plus_N_ORD = 3 ; //каждые N ордеров
void OnTick ()
{
//---
for ( int i= 1 ; i<=OrdersStop; i++)
{
if (( Close [ 1 ]< Open [ 1 ]&& Close [ 2 ]> Open [ 2 ]&&NumberOfPositions( Symbol (), - 1 ,_Magic)< 1 ))
{
OPENORDER ( OP_BUYSTOP ,PriceBS,LOTs,_Magic,i);
numB++;
PriceBS = NormalizeDouble (PriceBS+Step_Stop* Point , Digits );
OPENORDER ( OP_SELLSTOP ,PriceSS,LOTs,_Magic,i);
numS++;
PriceSS = NormalizeDouble (PriceSS-Step_Stop* Point , Digits );
}
LOTs=LOTs+Plus_LotStop;
}
}