업데이트된 버전입니다.
아래 설명을 참고하세요.
크로스 이동 평균에 대한 믿음을 여전히 가지고 있으며, 프로그래머로서 항상 가장 간단한 솔루션을 찾고 있습니다. '크로스 MA에 마법 같은 설정은 없다'는 문구를 보았습니다. 이 지표는 시간대나 심볼이 변경될 때마다 또는 새로운 캔들이 생성될 때마다 여러 설정을 시도합니다. 마지막 100개의 캔들을 분석하여 가장 성공률이 높은 설정을 선택하는 방식입니다. 이는 마치 손절매 없이 거래하는 것처럼 짧은 신호와 긴 신호 사이의 거리를 측정하는 것입니다. 스프레드도 고려합니다.
하단 창에서는 짧은 이동 평균과 긴 이동 평균 간의 거리를 보여주며, 양수 값은 롱 트레이드를, 음수 값은 숏 트레이드를 나타냅니다. '이익 오실레이터'를 사용하면 롱/숏 트레이드 간의 최대 차이를 확인하여 이익을 보고 거래를 종료할 수 있습니다.
상단 라인에는 "MA 5/19로 오늘의 이익은 60핍"이라고 표시됩니다. 지표나 사용자가 빠른 MA에 5, 느린 MA에 19를 선택한 것입니다. 다음 텍스트 필드에는 어제의 결과와 롱 또는 숏 신호가 표시됩니다. 트레이더들은 차트에 두 개의 이동 평균을 추가하고 주어진 값으로 설정할 수 있습니다.
저는 문헌에서 더 다양한 MA 추천을 찾고 있습니다.
파라미터
- PeriodShort=6;
빠른 MA의 기간입니다. 최적화가 true일 경우 무시됩니다. - PeriodLong=40;
느린 MA의 기간입니다. 최적화가 true일 경우 무시됩니다. - Method=0;
iMA의 방법입니다. - Optimize=true;
지표가 자동으로 빠른 MA와 느린 MA의 값을 선택합니다. - DrawTringles=true;
차트에 삼각형을 그립니다. - MinShortMA=2;
MaxShortMA=20;
MaxLongMA=100;
최적화를 위한 최소 및 최대 값으로, 빠른 MA는 2부터 20까지, 느린 MA는 7부터 100까지의 값을 시도합니다. - StepLongMA=5;
StepShortMA=5;
검색 속도를 높이기 위해 매 3번째 값을 시도합니다. - CountOptimize=200;
과거 200개의 캔들을 분석합니다. 캔들이 많을수록 느려지며, 큰 숫자는 오히려 좋지 않은 결과를 초래할 수 있습니다. - OptimizeOnNewCandle=false;
각 새로운 캔들마다 최적화를 시작합니다. 참고: 최적화는 시간이 걸릴 수 있으며 터미널 속도를 저하시킬 수 있습니다. - Alarm=true;
새로운 신호가 발생하면 벨이 울립니다.
다음 단계로, 이 지표를 기반으로 한 전문가 어드바이저(EA)를 만들고 싶습니다. 하지만 크로스 MA로 거래하지 말아야 할 횡보 추세를 어떻게 감지할지 고민 중입니다. 지금까지 최적화된 크로스 MA를 기반으로 한 제 EA는 때때로 뛰어난 수익을 내지만, 다음 날에는 손실을 입기도 합니다.
업데이트된 버전
새로운 기능:
- 지표가 이제 차트 내부에 이동 평균을 그리며, '이익 오실레이터'는 다른 지표(MAProfit2) 내부에 있으며, 두 지표는 전역 변수로 통신합니다.
- MA 채널을 지원합니다 (www.vnchanger.org의 전자책 참조). 느린 이동 평균은 낮은 값과 높은 값으로 두 개의 라인으로 나뉘어 있으며, 이는 횡보 시장에서의 손실을 줄이는 데 도움을 줍니다.
- 모든 조합을 테스트하는 대신, 문헌에서 발견된 특정 MA 범위를 테스트할 수 있습니다. 이를 위해 OptimizeAll을 false로 설정하고 OptimizeSystems를 true로 설정하세요.
시스템 테이블을 추가하거나 수정할 수 있습니다. 0,0,0,0,0,0으로 종료해야 합니다.
extern bool OptimizeAll=false;
extern bool OptimizeSystems=true;
int Systems[] = {PRICE_MEDIAN,MODE_SMA,50, PRICE_MEDIAN,MODE_SMA,200,
PRICE_MEDIAN,MODE_SMA,50, PRICE_MEDIAN,MODE_SMA,100, //
Death Cross
PRICE_MEDIAN,MODE_SMA,10, PRICE_MEDIAN,MODE_SMA,40,
PRICE_MEDIAN,MODE_SMA,13, PRICE_MEDIAN,MODE_SMA,26,
PRICE_MEDIAN,MODE_SMA,5, PRICE_MEDIAN,MODE_SMA,10,
PRICE_CLOSE, MODE_EMA,5, PRICE_OPEN, MODE_EMA,6,
PRICE_MEDIAN,MODE_SMA,3, PRICE_MEDIAN,MODE_SMA,8,
0,0,0,0,0,0};
- 새로운 알림은 음성으로 제공될 수 있으며, 이를 지원하기 위해 gspeak를 다운로드해야 합니다. 예를 들어 https://www.mql5.com/en/code/8621에서 다운로드할 수 있습니다.
음성이 필요하지 않다면 코드를 수정해야 합니다. #import "speak.dll"부터 #import까지의 줄을 제거하고 gSpeak 함수를 주석 해제하세요. 이 훌륭한 DLL을 제공해 주신 저자에게 감사드립니다.
void gRate(int rate);
void gVolume(int rate);
void gPitch(int rate);
void gSpeak(string text);
#import
// 음성을 원하지 않으면 아래 주석을 해제하세요.
/*
void gSpeak(string x)
{
}
*/
음성을 제거하지 않으면 수익이 발생한 후 "Oncle Sam"의 목소리를 듣는 것을 즐길 수 있습니다.
- 첫 시작 시 또는 파라미터 변경 시, 첫 거래의 캔들을 기억하여 이전 거래를 다른 거래로 교체하는 것을 방지합니다.
- 삼각형은 이제 세 가지 색상을 가지고 있습니다: 롱 트레이드는 초록색, 숏 트레이드는 빨간색, 손실 거래는 보라색입니다. 색상은 소스 코드에서 수정할 수 있습니다:
int ColorShortTrade = Red;
int ColorBadTrade = Violet;
- MA 최적화 단계는 5로 설정되었습니다.
- 이 지표의 내부 이름은 SMA(스마트 Ass...)로 변경되었습니다. 이는 거래 후 어떻게 거래했어야 했는지를 보여줍니다.

MA 최적화기