안녕하세요! 세 개의 MA가 교차할 때 Alert() 호출을 구현하는 간단한 아이디어가 있습니다. 프로그램의 교차점에 대한 설명입니다. 모든 것이 작동하는 것처럼 보이지만 제대로 작동하지 않습니다. 변수 값을 소수점 이하 한 자리로 반올림하여 교차로를 중지합니다. 그리고 이 Alert()는 평균이 같은 위치에 있을 때까지 저를 북돋아줍니다. 한 번, 잘, 최대 5번까지 호출되도록 만드는 방법입니다.
//+------------------------------------------------------------------+ //| Начало программы | //+------------------------------------------------------------------+
intinit (){ return ( 0 );} intEURUSD () {
if(SMA_Green_EURUSD == SMA_Orange_EURUSD && SMA_Blue_EURUSD > SMA_Orange_EURUSD ) { // Если зеленая МА пересекает оранжевую МА и при этом синяя МА выше - сигнал к покупке. Alert ( "Cигнал на ПОКУПКУ паре EURUSD" ); return ( 11 ); // 11 - на первой паре сигнал на покупку. }
if(SMA_Green_EURUSD == SMA_Orange_EURUSD && SMA_Blue_EURUSD < SMA_Orange_EURUSD) { // Если зеленая МА пересекает оранжевую МА и при этом синяя МА ниже - сигнал к продаже. Alert( "Cигнал на ПРОДАЖУ паре EURUSD" ); return( 10 ); // 20 - на первой паре сигнал на продажу. } } int start ()
{
//+------------------------------------------------------------------+ //| Блок работы с EURUSD | //+------------------------------------------------------------------+ if( EURUSD() != 11 || EURUSD() != 10 ) { // Если функция EURUSD() не зафиксировала ни один из сигналов, обрабатываем данные дальше. MA_Blue_EURUSD = iMA ( "EURUSD" , PERIOD_H1 ,Period_MA_Blue, 0 ,MODE_EMA,PRICE_CLOSE, 0 ); MA_Green_EURUSD = iMA ( "EURUSD" , PERIOD_H1 ,Period_MA_Green, 0 ,MODE_EMA,PRICE_CLOSE, 0 ); MA_Orange_EURUSD = iMA ( "EURUSD" , PERIOD_H1 ,Period_MA_Orange, 0 ,MODE_EMA,PRICE_CLOSE, 0 );
SMA_Blue_EURUSD = MA_Blue_EURUSD; // Преобразование int в string SMA_Blue_EURUSD = StringSetChar (SMA_Blue_EURUSD, 6 , ''); // Округление до х.хххх SMA_Green_EURUSD = MA_Green_EURUSD; // Преобразование int в string SMA_Green_EURUSD = StringSetChar (SMA_Green_EURUSD, 6 , ''); // Округление до х.хххх SMA_Orange_EURUSD = MA_Orange_EURUSD; // Преобразование int в string SMA_Orange_EURUSD = StringSetChar (SMA_Orange_EURUSD, 6 , ''); // Округление до х.хххх
Zherart : 안녕하세요! 도와주세요. 세 개의 MA가 교차할 때 Alert() 호출을 구현하는 간단한 아이디어가 있습니다. 프로그램의 교차점에 대한 설명입니다. 모든 것이 작동하는 것처럼 보이지만 제대로 작동하지 않습니다. 변수 값을 소수점 이하 한 자리까지 반올림하여 교차로를 중지합니다. 그리고 이 Alert()는 평균이 같은 위치에 있을 때까지 저를 북돋아줍니다. 한 번, 잘, 최대 5번까지 호출되도록 만드는 방법 루트에서 모든 것이 옳지 않다면 교차로를 추적하는 방법을 제안하십시오. 고맙습니다.
//+------------------------------------------------------------------+//| Глобальные переменные |//+------------------------------------------------------------------+externint Period_MA_Blue = 4 ; // Период 4-х расчётной синей МА (4 часа)externint Period_MA_Green = 13 ; // Период 13-ти расчётной зеленой МА (13 часов)externint Period_MA_Orange = 50 ; // Период 50-ти расчётной оранжевой МА (2 дня 2 часа)double MA_Blue_EURUSD, MA_Green_EURUSD, MA_Orange_EURUSD;
string SMA_Blue_EURUSD,SMA_Green_EURUSD,SMA_Orange_EURUSD;
int БАРАБАНИТЬ = 1 ; // Сколько раз подавать сигналint ПОКУПКА= 0 ,ПРОДАЖА= 0 ;
//+------------------------------------------------------------------+//| Начало программы |//+------------------------------------------------------------------+int init(){ return ( 0 );}
int EURUSD()
{
if (SMA_Green_EURUSD == SMA_Orange_EURUSD && SMA_Blue_EURUSD > SMA_Orange_EURUSD)
{
// Если зеленая МА пересекает оранжевую МА и при этом синяя МА выше - сигнал к покупке.if (ПОКУПКА<БАРАБАНИТЬ) { Alert ( "Cигнал на ПОКУПКУ паре EURUSD" );ПОКУПКА++;}
return ( 11 ); // 11 - на первой паре сигнал на покупку.
}
else ПОКУПКА= 0 ;
if (SMA_Green_EURUSD == SMA_Orange_EURUSD && SMA_Blue_EURUSD < SMA_Orange_EURUSD)
{
// Если зеленая МА пересекает оранжевую МА и при этом синяя МА ниже - сигнал к продаже.if (ПРОДАЖА<БАРАБАНИТЬ) { Alert ( "Cигнал на ПРОДАЖУ паре EURUSD" );ПРОДАЖА++;}
return ( 10 ); // 20 - на первой паре сигнал на продажу.
}
else ПРОДАЖА= 0 ;
}
전달된 매개변수 는 호출된 함수 이름 뒤의 괄호 안에 지정되며 쉼표로 구분되어 나열됩니다. 함수에 전달된 매개변수의 수는 64개를 초과할 수 없습니다. 함수는 전달된 매개변수를 사용할 수도 없습니다. 이 경우 빈 매개변수 목록이 지정됩니다. 함수 이름 바로 뒤에는 여는 괄호와 닫는 괄호가 있습니다.
함수 호출에서 전달된 매개변수의 수, 유형 및 순서는 함수 설명에 지정된 형식 매개변수의 수, 유형 및 순서와 일치해야 합니다(예외는 기본 매개변수가 있는 함수 호출입니다. 함수 호출 및 함수 참조). 설명 및 반환 문 ). 일치하는 항목이 없으면 MetaEditor가 오류 메시지를 표시합니다. 상수, 변수, 표현식 및 배열을 전달된 매개변수로 사용할 수 있습니다. "
전달된 매개변수 는 호출된 함수 이름 뒤의 괄호 안에 지정되며 쉼표로 구분되어 나열됩니다. 함수에 전달된 매개변수의 수는 64개를 초과할 수 없습니다. 함수는 전달된 매개변수를 사용할 수도 없습니다. 이 경우 빈 매개변수 목록이 지정됩니다. 함수 이름 바로 뒤에는 여는 괄호와 닫는 괄호가 있습니다.
함수 호출에서 전달된 매개변수의 수, 유형 및 순서는 함수 설명에 지정된 형식 매개변수의 수, 유형 및 순서와 일치해야 합니다(예외는 기본 매개변수가 있는 함수 호출입니다. 함수 호출 및 함수 참조). 설명 및 반환 문 ). 일치하는 항목이 없으면 MetaEditor가 오류 메시지를 표시합니다. 상수, 변수, 표현식 및 배열을 전달된 매개변수로 사용할 수 있습니다. "
쓰기 전에 교과서를 읽고 밑줄이 그어진 것을 보았지만 실제로 구현할 수 없었습니다. 호환되지 않는 유형에 대해 씁니다.
프로그램의 교차점에 대한 설명입니다. 모든 것이 작동하는 것처럼 보이지만 제대로 작동하지 않습니다. 변수 값을 소수점 이하 한 자리로 반올림하여
교차로를 중지합니다. 그리고 이 Alert()는 평균이 같은 위치에 있을 때까지 저를 북돋아줍니다. 한 번, 잘, 최대 5번까지 호출되도록 만드는 방법입니다.
//| Глобальные переменные |
//+------------------------------------------------------------------+
extern int Period_MA_Blue = 4 ; // Период 4-х расчётной синей МА (4 часа)
extern int Period_MA_Green = 13 ; // Период 13-ти расчётной зеленой МА (13 часов)
extern int Period_MA_Orange = 50 ; // Период 50-ти расчётной оранжевой МА (2 дня 2 часа)
double MA_Blue_EURUSD, MA_Green_EURUSD, MA_Orange_EURUSD;
string SMA_Blue_EURUSD,SMA_Green_EURUSD,SMA_Orange_EURUSD;
//+------------------------------------------------------------------+
//| Начало программы |
//+------------------------------------------------------------------+
int init (){ return ( 0 );}
int EURUSD ()
{
if(SMA_Green_EURUSD == SMA_Orange_EURUSD && SMA_Blue_EURUSD > SMA_Orange_EURUSD )
{
// Если зеленая МА пересекает оранжевую МА и при этом синяя МА выше - сигнал к покупке.
Alert ( "Cигнал на ПОКУПКУ паре EURUSD" );
return ( 11 ); // 11 - на первой паре сигнал на покупку.
}
if(SMA_Green_EURUSD == SMA_Orange_EURUSD && SMA_Blue_EURUSD < SMA_Orange_EURUSD)
{
// Если зеленая МА пересекает оранжевую МА и при этом синяя МА ниже - сигнал к продаже.
Alert( "Cигнал на ПРОДАЖУ паре EURUSD" );
return( 10 ); // 20 - на первой паре сигнал на продажу.
}
}
int start ()
{
//+------------------------------------------------------------------+
//| Блок работы с EURUSD |
//+------------------------------------------------------------------+
if( EURUSD() != 11 || EURUSD() != 10 )
{
// Если функция EURUSD() не зафиксировала ни один из сигналов, обрабатываем данные дальше.
MA_Blue_EURUSD = iMA ( "EURUSD" , PERIOD_H1 ,Period_MA_Blue, 0 ,MODE_EMA,PRICE_CLOSE, 0 );
MA_Green_EURUSD = iMA ( "EURUSD" , PERIOD_H1 ,Period_MA_Green, 0 ,MODE_EMA,PRICE_CLOSE, 0 );
MA_Orange_EURUSD = iMA ( "EURUSD" , PERIOD_H1 ,Period_MA_Orange, 0 ,MODE_EMA,PRICE_CLOSE, 0 );
SMA_Blue_EURUSD = MA_Blue_EURUSD; // Преобразование int в string
SMA_Blue_EURUSD = StringSetChar (SMA_Blue_EURUSD, 6 , ''); // Округление до х.хххх
SMA_Green_EURUSD = MA_Green_EURUSD; // Преобразование int в string
SMA_Green_EURUSD = StringSetChar (SMA_Green_EURUSD, 6 , ''); // Округление до х.хххх
SMA_Orange_EURUSD = MA_Orange_EURUSD; // Преобразование int в string
SMA_Orange_EURUSD = StringSetChar (SMA_Orange_EURUSD, 6 , ''); // Округление до х.хххх
}
}
int deinit (){ return ( 0 );}
루트에서 모든 것이 옳지 않다면 교차로를 추적하는 방법을 제안하십시오. 고맙습니다.
안녕하세요! 도와주세요. 세 개의 MA가 교차할 때 Alert() 호출을 구현하는 간단한 아이디어가 있습니다.
프로그램의 교차점에 대한 설명입니다. 모든 것이 작동하는 것처럼 보이지만 제대로 작동하지 않습니다. 변수 값을 소수점 이하 한 자리까지 반올림하여
교차로를 중지합니다. 그리고 이 Alert()는 평균이 같은 위치에 있을 때까지 저를 북돋아줍니다. 한 번, 잘, 최대 5번까지 호출되도록 만드는 방법 루트에서 모든 것이 옳지 않다면 교차로를 추적하는 방법을 제안하십시오. 고맙습니다.
어딘지 모르게...
아니면 내가 바보이거나 터미널에 뭔가 문제가 있습니다. 조언자를 최적화하고 싶었지만 전문가 속성에 "입력 매개변수" 탭이 없습니다. 돕다.
https://forum.mql4.com/en/46980/page417#702426
https://www.mql5.com/ru/forum/138609/page417#702426
함수의 허용된 매개변수에 배열을 사용할 수 있습니까? 예를 들어 배열의 정보를 처리하는 함수를 만들어야 합니다.
함수의 허용된 매개변수에 배열을 사용할 수 있습니까? 예를 들어 배열의 정보를 처리하는 함수를 만들어야 합니다.
교과서는 여기서 무엇을 말합니까?
"
전달된 매개변수 는 호출된 함수 이름 뒤의 괄호 안에 지정되며 쉼표로 구분되어 나열됩니다. 함수에 전달된 매개변수의 수는 64개를 초과할 수 없습니다. 함수는 전달된 매개변수를 사용할 수도 없습니다. 이 경우 빈 매개변수 목록이 지정됩니다. 함수 이름 바로 뒤에는 여는 괄호와 닫는 괄호가 있습니다.
함수 호출에서 전달된 매개변수의 수, 유형 및 순서는 함수 설명에 지정된 형식 매개변수의 수, 유형 및 순서와 일치해야 합니다(예외는 기본 매개변수가 있는 함수 호출입니다. 함수 호출 및 함수 참조). 설명 및 반환 문 ). 일치하는 항목이 없으면 MetaEditor가 오류 메시지를 표시합니다. 상수, 변수, 표현식 및 배열을 전달된 매개변수로 사용할 수 있습니다. "
함수의 허용된 매개변수에 배열을 사용할 수 있습니까? 예를 들어 배열의 정보를 처리하는 함수를 만들어야 합니다.
다음과 같이 시도하십시오.
https://docs.mql4.com/ru/basis/variables/formal닫기 - iClose, 열기 - iOpen, 시간 - iTime 볼륨 - iVolume 등에도 동일하게 적용됩니다.
그리고 표시기는 0에서 7까지 최대 8개의 라인을 그릴 수 있습니다. https://docs.mql4.com/en/customind/indicatorbuffers
대단히 감사합니다 :) 표시가 아직 그려지지 않았습니다. price=iL[k]와 같은 라인에 오류가 있었습니다. 여기서 iL은 iLow...ex Low입니다.
일반적으로 나는 유용한 것들을 많이 배웠습니다 ...하지만 더 이상 파헤 치지는 않을 것입니다 ...
사용자 지정 표시기 없이 다시 그리기를 더 쉽게 시각화할 수 있는 방법이 있습니다.
교과서는 여기서 무엇을 말합니까?
"
전달된 매개변수 는 호출된 함수 이름 뒤의 괄호 안에 지정되며 쉼표로 구분되어 나열됩니다. 함수에 전달된 매개변수의 수는 64개를 초과할 수 없습니다. 함수는 전달된 매개변수를 사용할 수도 없습니다. 이 경우 빈 매개변수 목록이 지정됩니다. 함수 이름 바로 뒤에는 여는 괄호와 닫는 괄호가 있습니다.
함수 호출에서 전달된 매개변수의 수, 유형 및 순서는 함수 설명에 지정된 형식 매개변수의 수, 유형 및 순서와 일치해야 합니다(예외는 기본 매개변수가 있는 함수 호출입니다. 함수 호출 및 함수 참조). 설명 및 반환 문 ). 일치하는 항목이 없으면 MetaEditor가 오류 메시지를 표시합니다. 상수, 변수, 표현식 및 배열을 전달된 매개변수로 사용할 수 있습니다. "