모두에게 좋은 하루, MA를 기반으로 한 고문을 작성했습니다. (코드는 아래에 첨부) 얼마 전 MQL4로 글을 쓰기 시작하여 간단한 것으로 시작하기로 결정했습니다. 그래서 제가 뭘 잘못했는지 알고 싶습니다. Advisor의 본질은 간단합니다. 두 세 개의 MA가 교차할 때 경고를 제공합니다(방법에 따라: 공격적=2 MA 교차, 보수적=3 MA 교차)... 그리고 그게 다입니다. 내가 직접 시장에 진출할 것이다. 나는 Expert Advisor에서 두 가지 기능을 작성했습니다. Aggressive - 이것은 가장 빠른 두 MA와 Conservative의 단순한 교차점에서의 신호입니다. 두 개의 빠른 MA의 교차점에서 가장 느린 MA도 고려해야 합니다(즉, 추세 방향으로 신호). 문제는 어드바이저가 하나의 경고만 제공하고(실행되거나 시간 프레임이 변경될 때) 모든 후속 신호에 대해 침묵한다는 것입니다! 무엇이 잘못되었는지 알려주시면 감사하겠습니다. 모든 이벤트에 대해 MQL4의 규칙에 따라 규정된 기능. 물론 On Tick 이벤트에서 함수 없이 모든 것을 등록하는 것도 가능하겠지만, 함수를 호출 하기 쉽도록 함수를 별도로 등록하고 싶습니다. 게다가 새로운 "필터" 기능을 위에 추가하고 싶습니다. 시각.
중지 / 200이면해야 할 일
하지만
tp=NormalizeDouble((price+(TakeProfit*_Point)),Digits);
달러-엔에 117.000의 비율로 317.000을 줄 것입니다
예상 결과 117.200
Point()== 0.001(USDJPY 기준)이면 200*0.001은 0.2와 같습니다.
이제 0.2를 117.0에 더하면 117.2가 됩니다.
그리고 "불의"는 어디에 있습니까?
Point()==0.001(USDJPY 기준)이면 200*0.001은 0.2와 같습니다.
이제 117.0에 0.2를 더하면 117.2가 됩니다.
그리고 "불의"는 어디에 있습니까?
117+(200*_Point)는 117.200을 산출할 것으로 예상됩니다.
그것은 일반적으로 유로 달러로 테스트됩니다
Vitaly가 위에 썼습니다. 감사합니다. 그러면 위의 놀라움을 찾을 것입니다.
도중에 발견
나는 이것이 중간 알고리즘으로 꽤 좋다고 생각합니다. 이제 이러한 순간을 어떻게든 필터링해야 합니다.
https://www.mql5.com/ru/charts/6351907/audjpy-m5-metaquotes-software-corp
117+(200*_Point)는 117.200을 산출할 것으로 예상됩니다.
...글쎄, 그는 너무 많이 준다 ... 글쎄, 나는 계산을 보여 주었다. 아니면 다중 통화가 있고 "비기본" 기호에서 데이터를 가져오나요?
그런 다음 Point() 및 Digits() 대신 SymbolInfoDouble() 및 (int)SymbolInfoInteger()를 사용합니다.
글쎄, 그는 너무 많이 준다 ... 글쎄, 나는 계산을 보여 주었다. 아니면 다중 통화가 있고 "비기본" 기호에서 데이터를 가져오나요?
그런 다음 Point() 및 Digits() 대신 SymbolInfoDouble() 및 (int)SymbolInfoInteger()를 사용합니다.
덕분에 작동합니다)))
현재 주문 체인에 후행을 삽입하는 방법을 찾고 있습니다.
115.000에서 117.000까지 200단계로 선택된 10개의 주문
각 로트는 이전 것보다 x 더 많습니다.
목표는 (평균 가격) + (y*_Point)를 기반으로 전체 주문 배치에 후행을 넣는 것입니다.
나는 후행 자체를 가지고 있습니다. 문제는 그것을 전체 팩의 평균 가격에 첨부하는 방법과 로트에 따라 어떻게 계산되는지입니다.
덕분에 작동합니다)))
현재 주문 체인에 후행을 삽입하는 방법을 찾고 있습니다.
115.000에서 117.000까지 200단계로 선택된 10개의 주문
각 로트는 이전 것보다 x 더 많습니다.
목표는 (평균 가격) + (y*_Point)를 기반으로 전체 주문 배치에 후행을 넣는 것입니다.
나는 후행 자체를 가지고 있습니다. 문제는 그것을 전체 팩의 평균 가격에 첨부하는 방법과 로트에 따라 어떻게 계산되는지입니다.
하나의 보편적인 조언: 처음부터 프로그래밍하는 법을 배우십시오. 그러면 그러한 질문이 없을 것입니다. 프로그래밍은 쉽지 않습니다.
그리고 본질적으로 질문: 따라서 한 주기의 모든 주문을 살펴보고 "필요한" 주문만 선택하고 수정해야 합니다. 그러나 선택한 작업 순서 를 바꿀 확률이 매우 높기 때문에이 문제에 매우주의해야합니다.
하나의 보편적인 조언: 처음부터 프로그래밍하는 법을 배우십시오. 그러면 그러한 질문이 없을 것입니다. 프로그래밍은 쉽지 않습니다.
그리고 본질적으로 질문: 따라서 한 주기의 모든 주문을 살펴보고 "필요한" 주문만 선택하고 수정해야 합니다. 그러나 선택한 작업 순서 를 바꿀 확률이 매우 높기 때문에이 문제에 매우주의해야합니다.
모두에게 좋은 하루, MA를 기반으로 한 고문을 작성했습니다. (코드는 아래에 첨부) 얼마 전 MQL4로 글을 쓰기 시작하여 간단한 것으로 시작하기로 결정했습니다. 그래서 제가 뭘 잘못했는지 알고 싶습니다. Advisor의 본질은 간단합니다. 두 세 개의 MA가 교차할 때 경고를 제공합니다(방법에 따라: 공격적=2 MA 교차, 보수적=3 MA 교차)... 그리고 그게 다입니다. 내가 직접 시장에 진출할 것이다. 나는 Expert Advisor에서 두 가지 기능을 작성했습니다. Aggressive - 이것은 가장 빠른 두 MA와 Conservative의 단순한 교차점에서의 신호입니다. 두 개의 빠른 MA의 교차점에서 가장 느린 MA도 고려해야 합니다(즉, 추세 방향으로 신호). 문제는 어드바이저가 하나의 경고만 제공하고(실행되거나 시간 프레임이 변경될 때) 모든 후속 신호에 대해 침묵한다는 것입니다! 무엇이 잘못되었는지 알려주시면 감사하겠습니다. 모든 이벤트에 대해 MQL4의 규칙에 따라 규정된 기능. 물론 On Tick 이벤트에서 함수 없이 모든 것을 등록하는 것도 가능하겠지만, 함수를 호출 하기 쉽도록 함수를 별도로 등록하고 싶습니다. 게다가 새로운 "필터" 기능을 위에 추가하고 싶습니다. 시각.
코드
===================================================== =============================================
extern bool 메서드=거짓; // 방법 선택: 보수적 또는 공격적
extern int Time_Frame=1;//시간 프레임
입력 부울 메서드=거짓; //보수적-TRUE | 공격적-FALSE
외부 int FastMA_Parameter=5;
외부 정수 MidMA_Parameter=8;
extern int SlowMA_Parameter=18;
외부 정수 TrendMA=163;
extern bool DemarkGo=거짓;
외부 intDemperiod=4;
int rez;// MA 교차가 다운되면 rez=-1입니다. 최대 rez=1인 경우.
//+----------------------------------------------- --------------------+
// MA 초기화
이중 FastMA=iMA(Symbol(),Time_Frame,FastMA_Parameter,0,3,0,0);//빠른 MA
이중 MiddiMA=iMA(Symbol(),Time_Frame,MidMA_Parameter,0,3,0,0);// 평균 MA
이중 SlowMA=iMA(Symbol(),Time_Frame,SlowMA_Parameter,0,1,0,0); 느린 MA
//+----------------------------------------------- --------------------+
int OnInit()
{
레즈=0;
반환(INIT_SUCCESSED);
}
//=======================================
//------------------------------------------------ ------------------------------
무효 OnDeinit(const int 이유)
{
}
//=============================================
//+---------------------Metod=true인 경우 보수적 신호 함수---------------------- --------------------+
int 보수적()
// 3개의 선이 위쪽으로 교차하는지 확인
{
if (메소드==true)
{
if(FastMA>MiddiMA&&MiddiMA>SlowMA&&rez<=0)
{
Alert(Symbol(),Time_Frame," ----UP----.보수적");
레즈=1;
Comment("FastMA ",FastMA," MiddiMA ",MiddiMA," "," SlowMA ",SlowMA," rez ",rez);
반환(res);
}
// 3개의 선이 아래로 교차하는지 확인
if(FastMA<MiddiMA&&MiddiMA<SlowMA&&rez>=0)
{
Alert(Symbol(),Time_Frame," ----DOWN----.보수적");
레즈=-1;
Comment("FastMA ",FastMA," MiddiMA ",MiddiMA," "," SlowMA ",SlowMA," rez ",rez);
반환(res);
}
}
반환(res);
}
//==================================================
//++++++++++++++++++++++++++++++++++++++++++++++++++++ ++ +++++++++++++++++++++++++++++
공격적인 신호 기능
int 공격적()
// 슬로우 없이 2개의 라인이 위쪽으로 교차하는지 확인
{
if (메소드==거짓)
{
if(FastMA>MiddiMA&&rez<=0)
{
Alert(Symbol(),Time_Frame," ----UP----. 공격적");
레즈=1;
Comment("FastMA ",FastMA," MiddiMA ",MiddiMA," "," SlowMA ",SlowMA," rez ",rez);
}
// 슬로우 없이 두 줄의 하향 교차 확인
if(FastMA<MiddiMA&&rez>=0)
{
Alert(Symbol(),Time_Frame," ----DOWN----. 공격적");
레즈=-1;
Comment("FastMA ",FastMA," MiddiMA ",MiddiMA," "," SlowMA ",SlowMA," rez ",rez);
}
}
반환(res);
}
높지는 않지만 100% 현재는 마지막에 뒤지고 있고 나머지는 일시정지인데 계획이 정확하지 않고 더 잘하고 싶습니다
아니오, 100%가 아닙니다. 아니면 다른 얘기를 하시는 건가요?
일반적으로 알고리즘은 다음과 같습니다.
모든 주문을 통해 루프를 구성합니다.
작업할 다음 주문을 선택합니다.
이 순서가 필요한지 확인합니다... 그렇지 않은 경우 루프의 다음 반복...
"필요한" 경우 수정에 적합한지 확인합니다. 간단한 비교로 StopLoss 수준에서 얼마나 멀리 떨어져 있습니까?
거리가 충분하면 순서를 수정합니다.
따라서 모든 주문에 대한 주기가 있고 호출하기 전에 주기도 작동하는 수정 기능이 있는 경우 선택한 주문 이 대체됩니다...
아니오, 100%가 아닙니다. 아니면 다른 얘기를 하시는 건가요?
일반적으로 알고리즘은 다음과 같습니다.
모든 주문을 통해 루프를 구성합니다.
작업할 다음 주문을 선택합니다.
이 순서가 필요한지 확인합니다... 그렇지 않은 경우 루프의 다음 반복...
"필요한" 경우 수정에 적합한지 확인합니다. 간단한 비교로 StopLoss 수준에서 얼마나 멀리 떨어져 있습니까?
거리가 충분하면 순서를 수정합니다.
따라서 모든 주문에 대한주기가있는 수정 기능이 있고 호출하기 전에주기도 작동하면 선택한 주문 이 대체됩니다 ...