MQL4 ve MQL5 ile ilgili herhangi bir acemi sorusu, algoritmalar ve kodlar hakkında yardım ve tartışma - sayfa 975

 
Alexandr Sokolov :

Bir fikrim vardı, çok döngüye ihtiyacım var, hızı bu şekilde kontrol etmeye karar verdim

... sonuç olarak, MT5 çalışmayı durdurur, sorunludur ve görev yöneticisi aracılığıyla kapatılması gerekir


Bu, bilgisayarımın gücüyle ilgili bir sorun mu yoksa başka bir şey mi?


*PS - Bir sinir ağı yazmayı denemek istiyorum ve milyarlarca döngü olacak, ama burada bir milyon için uzanacağım

Ama iki kez hatasız yakaladım, ama bir daha tekrar edersem hata veriyor (ekteki dosyalarda komut dosyası)

Dosyalar:
zsbh.mq5  7 kb
 
Alexandr Sokolov :

Bir fikrim vardı, çok döngüye ihtiyacım var, hızı bu şekilde kontrol etmeye karar verdim

... sonuç olarak, MT5 çalışmayı durdurur, sorunludur ve görev yöneticisi aracılığıyla kapatılması gerekir


Bu, bilgisayarımın gücüyle ilgili bir sorun mu yoksa başka bir şey mi?


*PS - Bir sinir ağı yazmayı denemek istiyorum ve milyarlarca döngü olacak, ama burada bir milyon için uzanacağım

denemeyin..:-)

daha doğrusu, önce daha basit bir şey yazın

çünkü sorun, yazılanların ve genel olarak nasıl çalıştığının yanlış anlaşılmasıdır.

 
Maxim Kuznetsov :

denemeyin..:-)

daha doğrusu, önce daha basit bir şey yazın

çünkü sorun, yazılanların ve genel olarak nasıl çalıştığının yanlış anlaşılmasıdır.

Bu komut dosyası bir sinir ağı değil)) Bir milyon döngünün ne kadar hızlı gittiğini görmek için yaptım


Ama neden terminal buggy? Senaryo neyle çalışmaya başlıyor (sayılar çalışıyor), ama sona ulaşmıyor (en azından benim için)

 
İyi günler beyler programcılar. Lütfen bana söyle. Ters rakamlara ve diğerlerine dayalı bir ok göstergesi yazmaya çalışıyorum. Her şey yolunda gibi görünüyor. Ancak, 4 yerine yalnızca ilk 2 mumu dikkate alır. Derleme yaparken, editör farklı veri türleri atanırken olası doğruluk kaybından şikayet eder. Ve yalnızca iVolume'da. Şimdiden teşekkürler.
 
35vas35 :
İyi günler beyler programcılar. Lütfen bana söyle. Ters rakamlara ve diğerlerine dayalı bir ok göstergesi yazmaya çalışıyorum. Her şey yolunda gibi görünüyor. Ancak, 4 yerine sadece ilk 2 mumu dikkate alır. Derleme sırasında editör, farklı veri türleri atarken olası doğruluk kaybı hakkında yemin eder. Ve yalnızca iVolume'da. Şimdiden teşekkürler.

burada .

 
Artyom Trishkin :

burada .

İşte gösterge kodu.
 //+------------------------------------------------------------------+
//|                                                       Figaro.mq4 |
//|                        Copyright 2019, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2019, MetaQuotes Software Corp."
#property link        "https://www.mql5.com"
#property version    "1.00"
#property strict
#property indicator_chart_window
#property indicator_buffers 2      
#property indicator_color1 Blue   
#property indicator_color2 Red    
double Buy[];                   
double Sell[];                  
#define BUY 0
#define SELL 1
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit ()
{

SetIndexBuffer ( 0 , Buy);
SetIndexBuffer ( 1 , Sell);  

SetIndexEmptyValue ( 0 , 0 );
SetIndexEmptyValue ( 1 , 0 );

SetIndexStyle ( 0 , DRAW_ARROW );
SetIndexStyle ( 1 , DRAW_ARROW ); 
SetIndexArrow( 0 , 233 );   // Стрелка "вверх" для покупок
SetIndexArrow( 1 , 234 );   // Стрелка "вниз" для продаж

IndicatorDigits ( Digits );

IndicatorShortName ( "FIGARO" );

SetIndexLabel( 0 , "Покупаем" );
SetIndexLabel( 1 , "Продаём" );

return ( INIT_SUCCEEDED );

}
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate ( const int rates_total,
                 const int prev_calculated,
                 const datetime &time[],
                 const double &open[],
                 const double &high[],
                 const double &low[],
                 const double &close[],
                 const long &tick_volume[],
                 const long &volume[],
                 const int &spread[])
{

int counted_bars = IndicatorCounted();
int limit, signal;

if (counted_bars> 0 ) 
counted_bars-- ;

limit= Bars -counted_bars;

for ( int i = 2 ; i < limit; i++) 
{
signal = Signal(i- 1 );
if (signal == BUY)
{ 
Buy[i- 1 ] = low[i- 1 ];
}
else
if (signal == SELL)
{
Sell[i- 1 ] = high[i- 1 ];
}
}
return (rates_total); } 
//+------------------------------------------------------------------+
int Signal( int i)
{
     double O_1 = iOpen ( Symbol (), 0 , 1 );
     double O_2 = iOpen ( Symbol (), 0 , 2 );
     double O_3 = iOpen ( Symbol (), 0 , 3 );
     double O_4 = iOpen ( Symbol (), 0 , 4 );
     double C_1 = iClose ( Symbol (), 0 , 1 );
     double C_2 = iClose ( Symbol (), 0 , 2 );
     double C_3 = iClose ( Symbol (), 0 , 3 );
     double C_4 = iClose ( Symbol (), 0 , 4 );
     double H_1 = iHigh ( Symbol (), 0 , 1 );
     double H_2 = iHigh ( Symbol (), 0 , 2 );
     double L_1 = iLow ( Symbol (), 0 , 1 );
     double L_2 = iLow ( Symbol (), 0 , 2 );
     double S_1 = iVolume ( NULL , 0 , 1 );
     double S_2 = iVolume ( NULL , 0 , 2 );
     double S_3 = iVolume ( NULL , 0 , 3 );
if ((O_1<C_1 && S_1>= 8 && S_2== 0 && O_3>C_3 && O_4>C_4 && (H_2-O_2)>= 6 && (C_2-L_2)>= 6 ) || (O_1<C_1 && S_1>= 10 && O_2>C_2 && S_2>= 8 && O_3>C_3 &&
O_4>C_4 && S_3>= 8 && O_1<=C_2 && O_1<C_3 && O_2<C_1 && O_3<C_1) || (O_1<C_1 && O_2>C_2 && O_3>C_3 && O_4>C_4 && S_1<= 1 && (O_1-L_1)>= 5 && (H_1-C_1)<= 2 ) || (O_1<C_1 && S_1>= 10 &&
O_2>C_2 && O_3>C_3 && S_2>= 10 && S_1>=S_2* 0.6 && O_1<C_2 && (H_1-C_1)<= 2 && (O_1-L_1)<= 2 && (H_2-O_2)<= 2 && (C_2-L_2)<= 2 ) || (O_1<C_1 && S_1>= 10 && O_2>C_2 &&
S_2>= 8 && C_1<=C_2 && (H_1-C_1)<= 2 && (O_1-L_1)<= 2 && (H_2-O_2)<= 2 && (C_2-L_2)<= 2 ))
     
     return (BUY);
     
if ((O_1>C_1 && S_1>= 8 && S_2== 0 && O_3<C_3 && O_4<C_4 && (H_2-O_2)>= 6 && (C_2-L_2)>= 6 ) || (O_1>C_1 && S_1>= 10 && O_2<C_2 && O_3<C_3 && O_4<C_4 &&
S_2>= 8 && S_3>= 8 && O_1>=C_2 && O_1>C_3 && O_2>C_1 && O_3>C_1) || (O_1>C_1 && O_2<C_2 && O_3<C_3 && O_4<C_4 && S_1<= 1 && (C_1-L_1)>= 5 && (H_1-O_1)<= 2 ) || (O_1>C_1 && S_1>= 10 && 
O_2<C_2 && O_3<C_3 && O_4<C_4 && S_2>= 10 && S_1>=S_2* 0.6 && O_1>C_2 && (H_1-O_1)<= 2 && (C_1-L_1)<= 2 && (H_2-C_2)<= 2 && (O_2-L_2)<= 2 ) || (O_1>C_1 && S_1>= 10 && O_2<C_2 &&
O_3<C_3 && O_4<C_4 && S_2>= 8 && C_1>=C_2 && (H_1-O_1)<= 2 && (C_1-L_1)<= 2 && (H_2-C_2)<= 2 && (O_2-L_2)<= 2 ))

     return (SELL);
     
     return (- 1 );
     
}
 

35vas35 :
Вот код индикатора.

Sorun şu ki, grafikte de görebileceğiniz gibi, hacim 3 puan almak için sinyalden 3 mum. Ancak kodda, hacim 8 ve üstü olarak reçete edilir.

 
35vas35 :

Sorun şu ki, grafikte de görebileceğiniz gibi, hacim 3 puan almak için sinyalden 3 mum. Ancak kodda hacim 8 ve üstü olarak belirtilmiştir.

Gelecekte, posta listesini posta veya sms'e bağlamak istiyorum. Bu prensibe göre MACD, MA ve RSI göstergeleri ile bir Expert Advisor yazmaya çalıştım. Birkaç yanlış sinyal var. Ama süreci kendim kontrol etmek istiyorum.
 
35vas35 :
Gelecekte, posta listesini posta veya sms'e bağlamak istiyorum. Bu prensibe göre MACD, MA ve RSI göstergeleri ile bir Expert Advisor yazmaya çalıştım. Birkaç yanlış sinyal var. Ama süreci kendim kontrol etmek istiyorum.
Harami desenler, iki mumun emilmesi, çekiç, boşluk ve perde, karşı saldırı esas alınır.