MQL4 및 MQL5에 대한 초보자 질문, 알고리즘 및 코드에 대한 도움말 및 토론 - 페이지 975

 
Alexandr Sokolov :

생각이 나서 싸이클이 많이 필요해서 이런식으로 속도를 확인하기로 했어요

... 결과적으로 MT5가 작동을 멈추고 버그가 있으며 작업 관리자를 통해 닫아야 합니다.


이것이 내 PC의 전원 문제입니까 아니면 다른 문제입니까?


*PS - 신경망을 작성하려고 합니다. 수십억 주기가 있을 것입니다.

근데 2번이나 틀리지 않고 잡았는데 다시 반복하면 버그네요(첨부파일의 스크립트)

파일:
zsbh.mq5  7 kb
 
Alexandr Sokolov :

생각이 나서 싸이클이 많이 필요해서 이런식으로 속도를 확인하기로 했어요

... 결과적으로 MT5가 작동을 멈추고 버그가 있으며 작업 관리자를 통해 닫아야 합니다.


이것이 내 PC의 전원 문제입니까 아니면 다른 문제입니까?


*PS - 신경망을 작성하려고 합니다. 수십억 주기가 있을 것입니다.

시도하지 마십시오. :-)

더 정확하게, 더 간단한 것을 먼저 작성하십시오

문제는 쓰여진 것과 일반적으로 어떻게 작동하는지에 대한 오해이기 때문입니다.

 
Maxim Kuznetsov :

시도하지 마십시오. :-)

더 정확하게, 더 간단한 것을 먼저 작성하십시오

문제는 쓰여진 것과 일반적으로 어떻게 작동하는지에 대한 오해이기 때문입니다.

이 스크립트는 신경망이 아닙니다)) 백만 사이클이 얼마나 빨리 가는지 보려고 만들었습니다


그런데 왜 터미널이 버그가 있습니까? 스크립트는 무엇으로 작업을 시작하지만(숫자가 실행됨) 끝까지 도달하지 않습니다(적어도 저에게는)

 
좋은 하루, 프로그래머 여러분. 말해 주세요. 반전 수치 등을 기반으로 화살표 표시기를 작성하려고합니다. 모든 것이 괜찮은 것 같습니다. 그러나 그는 4개 대신 처음 2개의 양초만 고려합니다. 컴파일할 때 편집기는 다른 데이터 유형을 할당할 때 정확도 가 떨어질 수 있다고 불평합니다. 그리고 iVolume에서만 가능합니다. 미리 감사드립니다.
 
35vas35 :
좋은 하루, 프로그래머 여러분. 말해 주세요. 반전 수치 등을 기반으로 화살표 표시기를 작성하려고합니다. 모든 것이 괜찮은 것 같습니다. 그러나 그는 4개 대신 처음 2개의 양초만 고려합니다. 편집하는 동안 편집기는 다른 데이터 유형을 할당할 때 정확도 가 떨어질 수 있다고 맹세합니다. 그리고 iVolume에서만 가능합니다. 미리 감사드립니다.

여기 .

 
Artyom Trishkin :

여기 .

다음은 표시기 코드입니다.
 //+------------------------------------------------------------------+
//|                                                       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 :
Вот код индикатора.

문제는 차트에서 볼 수 있듯이 거래량이 3포인트 매수 신호에서 3캔들이라는 점입니다. 그러나 코드에서 볼륨은 8 이상에서 지정됩니다.

 
35vas35 :

문제는 차트에서 볼 수 있듯이 거래량이 3포인트 매수 신호에서 3캔들이라는 점입니다. 그러나 코드에서 볼륨은 8 이상에서 지정됩니다.

앞으로는 메일링 리스트를 메일이나 sms에 연결하고 싶습니다. 이 원칙에 따라 MACD, MA, RSI 지표 로 Expert Advisor를 작성해 보았습니다. 잘못된 신호가 거의 없습니다. 그러나 나는 그 과정을 스스로 통제하고 싶다.
 
35vas35 :
앞으로는 메일링 리스트를 메일이나 sms에 연결하고 싶습니다. 이 원칙에 따라 MACD, MA, RSI 지표로 Expert Advisor를 작성해 보았습니다. 잘못된 신호가 거의 없습니다. 그러나 나는 그 과정을 스스로 통제하고 싶다.
하라미 문양, 양초 흡수, 망치, 틈과 막, 역습을 기본으로합니다.