조언 감사합니다. 이러한 기능에 대해 알고 있습니다. 그러나 Expert Advisor가 차트에서 개체를 자동으로 찾고 이름이 사전에 알려지지 않은 경우 매개 변수를 읽는 데 어떻게 사용할 수 있습니까? 결국 차트에 개체를 마우스로 그릴 때 이름은 시스템에서 부여합니다.
당연히 속성 테이블에서 Expert Advisor로 필요한 모든 개체 데이터의 수동 입력을 구성하는 것은 어렵지 않지만 자동화가 그것과 무슨 관련이 있습니까? 그러나 객체의 이름을 어드바이저에게 프로그래밍 방식으로 전송하는 방법, 그 후에 지정한 모든 기능을 사용할 수 있는 방법, 나는 여전히 이해하지 못합니다...
위에서 언급했듯이 차트 이벤트로 작업하십시오.
//+------------------------------------------------------------------+//| |//+------------------------------------------------------------------+bool applyObject( conststring _objName) {
if ( MessageBox ( "Сохранить параметры объекта \"" + _objName + "\" для эксперта?" , "ObjChange" , MB_YESNO ) == IDYES ) {
objName = _objName; // Запись имени изменяемого объекта// Запись других параметров изменяемого объекта ...returntrue ;
}
returnfalse ;
}
//+------------------------------------------------------------------+//| ChartEvent function |//+------------------------------------------------------------------+voidOnChartEvent ( constint id,
constlong &lparam,
constdouble &dparam,
conststring &sparam
) {
//---if (id == CHARTEVENT_OBJECT_CREATE || id == CHARTEVENT_OBJECT_DRAG || id == CHARTEVENT_OBJECT_CHANGE ) {
applyObject(sparam);
}
}
나는 다음과 같은 알고리즘을 상상한다. 1. 트렌드 라인의 읽은 좌표에 따라 트렌드 증가 계수는 선택된 TF의 1bar당 계산됩니다. 2. 현재 막대에 있는 추세선의 가격 좌표를 계산하고 선택된 TF 동안 차트가 이 지점을 교차한다는 사실을 추적합니다. 3. 사실이 발생한 경우, 본 이벤트의 처리를 진행합니다(예: 주문을 엽니다). 그렇지 않은 경우 다음 막대에 대해 절차가 반복됩니다.
하지만 MT4(5)에서는 이 시스템의 특성으로 인해 모든 것이 훨씬 쉽게 해결되지 않을까요?
그리고 왜 당신을 포함하여 그렇게 많은 사람들이 mql에서 도끼처럼 헤엄치는 사람들에게 반응하는지 모릅니다. 아는 사람의 조언이 무시됩니까? 귀하의 경우이 조언은 다음과 같습니다.
친애하는 Aleksey, MQL에 대한 나의 지식에 대한 당신의 말은 절대적으로 옳습니다. 하지만 당신은 내가 지식이 있는 사람들의 조언을 듣지 않는다고 착각하고 있습니다. 내가 가장 먼저 한 일은 뛰어난 MQL 전문가 중 한 명으로 여겨지고 당신이 아주 잘 알고 있는 사람에게 연락하는 것이었기 때문입니다. 이 사람은 @Artyom Trishkin 입니다.
내 문제를 해결하는 방법을 즉시 이해하고 앞으로 나아갈 방향을 제시한 것은 그의 조언이었습니다. 그리고 @Mihail Matkovskij 덕분에 제 삶이 훨씬 쉬워졌습니다!
나는 다음과 같은 알고리즘을 상상한다. 1. 트렌드 라인의 읽은 좌표에 따라 트렌드 증가 계수는 선택된 TF의 1bar당 계산됩니다. 2. 현재 막대에 있는 추세선의 가격 좌표를 계산하고 선택된 TF 동안 차트가 이 지점을 교차한다는 사실을 추적합니다. 3. 사실이 발생한 경우, 본 이벤트의 처리를 진행합니다(예: 주문을 엽니다). 그렇지 않은 경우 다음 막대에 대해 절차가 반복됩니다.
하지만 MT4(5)에서는 이 시스템의 특성으로 인해 모든 것이 훨씬 쉽게 해결되지 않을까요?
위에서 말했듯이 소스를 스케치하여 구축할 것이 있습니다. 또한 차트에서 개체 데이터를 가져오는 방법에 대해 이미 어느 정도 지식이 있습니다. 아무도 당신을 위해 처음부터 모든 것을 해주길 원하지 않습니다. 따라서 전문가의 작업에 누락 된 것은 보완 될 수 있습니다 ...
나는 다음과 같은 알고리즘을 상상한다. 1. 트렌드 라인의 읽은 좌표에 따라 트렌드 증가 계수는 선택된 TF의 1bar당 계산됩니다. 2. 현재 막대에 있는 추세선의 가격 좌표를 계산하고 선택된 TF 동안 차트가 이 지점을 교차한다는 사실을 추적합니다. 3. 사실이 발생한 경우, 본 이벤트의 처리를 진행합니다(예: 주문을 엽니다). 그렇지 않은 경우 다음 막대에 대해 절차가 반복됩니다.
하지만 MT4(5)에서는 이 시스템의 특성으로 인해 모든 것이 훨씬 쉽게 해결되지 않을까요?
찾고자 하는 것이 무엇인지 명확하지 않습니다. 막대의 가격이 추세선과 교차하는 지점은 무엇입니까? 이를 위해 막대에 있는 선의 값을 가져오는 함수가 있습니다. 그러나 나는 직선의 방정식을 사용할 것입니다:
Все объекты, используемые в техническом анализе, имеют привязку на графиках по координатам цены и времени – трендовая линия, каналы, инструменты Фибоначчи и т.д. Но есть ряд вспомогательных объектов, предназначенных для улучшения интерфейса, которые имеют привязку к видимой всегда части графика (основное окно графика или подокна индикаторов...
Функция использует синхронный вызов – это означает, что функция дожидается выполнения всех команд, которые были помещены в очередь графика перед её вызовом, и поэтому данная функция может быть затратной по времени. Нужно иметь это обстоятельство в виду...
조언 감사합니다, 저는 이러한 기능에 대해 알고 있습니다.
그리고 왜 당신을 포함하여 그렇게 많은 사람들이 mql에서 도끼처럼 헤엄치는 사람들에게 반응하는지 모릅니다. 아는 사람의 조언이 무시됩니까? 귀하의 경우이 조언은 다음과 같습니다.
거래, 자동 거래 시스템 및 거래 전략 테스트에 관한 포럼
MQL4 및 MQL5에 대한 초보자 질문, 알고리즘 및 코드에 대한 도움말 및 토론
Artyom Trishkin , 2020.06.29 00:03
안녕하세요.OnChartEvent() https://www.mql5.com/en/docs/event_handlers/onchartevent 에서 차트 상태를 추적하여 시작합니다.
필요한 몇 가지 이벤트가 있습니다.
CHARTEVENT_OBJECT_CREATE 그래픽 객체 생성
CHARTEVENT_OBJECT_CHANGE 속성 대화 상자를 통해 그래픽 개체의 속성 변경
CHARTEVENT_OBJECT_DELETE 그래픽 개체 삭제
https://www.mql5.com/ru/docs/constants/chartconstants/enum_chartevents
OnChartEvent() 핸들러의 모든 매개변수를 로그에 출력하고 그래픽 개체 추가/변경/삭제 시 해당 값을 확인합니다. 이것은 당신에게 어디로 가야하는지에 대한 방향을 줄 것입니다.
조언 감사합니다. 이러한 기능에 대해 알고 있습니다.
그러나 Expert Advisor가 차트에서 개체를 자동으로 찾고 이름이 사전에 알려지지 않은 경우 매개 변수를 읽는 데 어떻게 사용할 수 있습니까?
결국 차트에 개체를 마우스로 그릴 때 이름은 시스템에서 부여합니다.
당연히 속성 테이블에서 Expert Advisor로 필요한 모든 개체 데이터의 수동 입력을 구성하는 것은 어렵지 않지만 자동화가 그것과 무슨 관련이 있습니까?
그러나 객체의 이름을 어드바이저에게 프로그래밍 방식으로 전송하는 방법, 그 후에 지정한 모든 기능을 사용할 수 있는 방법, 나는 여전히 이해하지 못합니다...
위에서 언급했듯이 차트 이벤트로 작업하십시오.
안녕하세요.
OnChartEvent() https://www.mql5.com/ru/docs/event_handlers/onchartevent 에서 차트 상태를 추적하여 시작하십시오.
필요한 몇 가지 이벤트가 있습니다.
CHARTEVENT_OBJECT_CREATE 그래픽 객체 생성
CHARTEVENT_OBJECT_CHANGE 속성 대화 상자를 통해 그래픽 개체의 속성 변경
CHARTEVENT_OBJECT_DELETE 그래픽 개체 삭제
https://www.mql5.com/ru/docs/constants/chartconstants/enum_chartevents
OnChartEvent() 핸들러의 모든 매개변수를 로그에 출력하고 그래픽 개체 추가/변경/삭제 시 해당 값을 확인합니다. 이것은 당신에게 어디로 가야하는지에 대한 방향을 줄 것입니다.
고마워요, 이미 조언을 받아들였습니다!
다음과 같이 좌표를 사용하여 주어진 유형의 객체를 찾고 기록할 수 있습니다.
모든 데이터를 파일에 저장할 수 있습니다. 그리고 Expert Advisor에서 해당 개체를 추가할 로더를 만든 다음 파일의 데이터를 개체로 로드합니다. 그러나 최소한 특정 작업에 대한 소스 코드를 스케치하고 여기에 게시하십시오.
위에서 언급했듯이 차트 이벤트로 작업하십시오.
Mikhail, 귀하와 @Artyom Trishkin의 도움이 큰 도움이 되었습니다!
이제 가격 차트와 발견된 개체(이 경우 추세선)의 교차점을 찾는 방법을 알아내야 합니다.
나는 다음과 같은 알고리즘을 상상한다.
1. 트렌드 라인의 읽은 좌표에 따라 트렌드 증가 계수는 선택된 TF의 1bar당 계산됩니다.
2. 현재 막대에 있는 추세선의 가격 좌표를 계산하고 선택된 TF 동안 차트가 이 지점을 교차한다는 사실을 추적합니다.
3. 사실이 발생한 경우, 본 이벤트의 처리를 진행합니다(예: 주문을 엽니다). 그렇지 않은 경우 다음 막대에 대해 절차가 반복됩니다.
하지만 MT4(5)에서는 이 시스템의 특성으로 인해 모든 것이 훨씬 쉽게 해결되지 않을까요?
그리고 왜 당신을 포함하여 그렇게 많은 사람들이 mql에서 도끼처럼 헤엄치는 사람들에게 반응하는지 모릅니다. 아는 사람의 조언이 무시됩니까? 귀하의 경우이 조언은 다음과 같습니다.
친애하는 Aleksey, MQL에 대한 나의 지식에 대한 당신의 말은 절대적으로 옳습니다. 하지만 당신은 내가 지식이 있는 사람들의 조언을 듣지 않는다고 착각하고 있습니다. 내가 가장 먼저 한 일은 뛰어난 MQL 전문가 중 한 명으로 여겨지고 당신이 아주 잘 알고 있는 사람에게 연락하는 것이었기 때문입니다. 이 사람은 @Artyom Trishkin 입니다.
내 문제를 해결하는 방법을 즉시 이해하고 앞으로 나아갈 방향을 제시한 것은 그의 조언이었습니다. 그리고 @Mihail Matkovskij 덕분에 제 삶이 훨씬 쉬워졌습니다!
Mikhail, 귀하와 @Artyom Trishkin의 도움이 큰 도움이 되었습니다!
이제 가격 차트와 발견된 개체(이 경우 추세선)의 교차점을 찾는 방법을 알아내야 합니다.
나는 다음과 같은 알고리즘을 상상한다.
1. 트렌드 라인의 읽은 좌표에 따라 트렌드 증가 계수는 선택된 TF의 1bar당 계산됩니다.
2. 현재 막대에 있는 추세선의 가격 좌표를 계산하고 선택된 TF 동안 차트가 이 지점을 교차한다는 사실을 추적합니다.
3. 사실이 발생한 경우, 본 이벤트의 처리를 진행합니다(예: 주문을 엽니다). 그렇지 않은 경우 다음 막대에 대해 절차가 반복됩니다.
하지만 MT4(5)에서는 이 시스템의 특성으로 인해 모든 것이 훨씬 쉽게 해결되지 않을까요?
위에서 말했듯이 소스를 스케치하여 구축할 것이 있습니다. 또한 차트에서 개체 데이터를 가져오는 방법에 대해 이미 어느 정도 지식이 있습니다. 아무도 당신을 위해 처음부터 모든 것을 해주길 원하지 않습니다. 따라서 전문가의 작업에 누락 된 것은 보완 될 수 있습니다 ...
Mikhail, 귀하와 @Artyom Trishkin의 도움이 큰 도움이 되었습니다!
이제 가격 차트와 발견된 개체(이 경우 추세선)의 교차점을 찾는 방법을 알아내야 합니다.
나는 다음과 같은 알고리즘을 상상한다.
1. 트렌드 라인의 읽은 좌표에 따라 트렌드 증가 계수는 선택된 TF의 1bar당 계산됩니다.
2. 현재 막대에 있는 추세선의 가격 좌표를 계산하고 선택된 TF 동안 차트가 이 지점을 교차한다는 사실을 추적합니다.
3. 사실이 발생한 경우, 본 이벤트의 처리를 진행합니다(예: 주문을 엽니다). 그렇지 않은 경우 다음 막대에 대해 절차가 반복됩니다.
하지만 MT4(5)에서는 이 시스템의 특성으로 인해 모든 것이 훨씬 쉽게 해결되지 않을까요?
찾고자 하는 것이 무엇인지 명확하지 않습니다. 막대의 가격이 추세선과 교차하는 지점은 무엇입니까? 이를 위해 막대에 있는 선의 값을 가져오는 함수가 있습니다. 그러나 나는 직선의 방정식을 사용할 것입니다:
거래, 자동 거래 시스템 및 거래 전략 테스트에 관한 포럼
초보자의 질문 MQL5 MT5 MetaTrader 5
Artyom Trishkin , 2020.05.02 12:27
직선 방정식을 사용합니다.
왼쪽에 포인트바의 수와 가격을 지정하고 , 오른쪽에 포인트바의 수와 가격을 표시하고 (이 점들을 기준으로 가상선을 그린다) 필요한 바를 표시 한다.
함수는 원하는 바의 가격을 반환합니다.
..... 이를 위해 막대에 있는 선의 값을 가져오는 함수가 있습니다. 그러나 나는 직선의 방정식을 사용할 것입니다:
Artyom, 하지만 여기에 더 자세히 부탁합니다.
내가 예전에 별로 주의를 기울이지 않았거나 문서가 수정된 건지...모르겠습니다.
그러나 나는 항상 ObjectGetDouble이 특정 막대에 있는 줄의 가격을 반환한다고 생각했습니다(정확히 가격을 말하는 것입니다). 그런 다음 나는 확인을 위해 작은 스크립트를 작성하기로 결정했으며 무엇을 보았습니까?
1. 값을 계산해야 하는 매개변수에 막대 번호가 없습니다.
2. 속성 식별자:
OBJPROP_PRICE
가격 좌표
이중 수정자=앵커 포인트 번호
그것은 단지 앵커 포인트입니다!
예, 대체로 코드에서 이 선을 그리면 이미 이러한 점이 있는 것입니다! 왜 그들을 인식해야 합니까? 그리고 어쨌든, 그것의 요점은 무엇입니까?
그리고이 라인의 가격 가치를 다른 곳에서 가져 오는 방법은 무엇입니까?
이
prop_modifier
【인】 지정된 속성의 수정자입니다. 첫 번째 옵션의 경우 기본 수정자 값은 0입니다. 대부분의 속성에는 수정자가 필요하지 않습니다. 피보나치 도구 및 Andrews Pitchfork 그래픽 개체의 수준 번호를 나타냅니다. 레벨 번호는 0부터 시작합니다.
의미도 없습니까? 팬 라인의 앵커 포인트를 찾고 있습니까? 날뛰다. 죄송합니다.
Artyom, 하지만 여기에 더 자세히 부탁합니다.
내가 예전에 별로 주의를 기울이지 않았거나 문서가 수정된 건지...모르겠습니다.
그러나 나는 항상 ObjectGetDouble이 특정 막대에 있는 줄의 가격을 반환한다고 생각했습니다(정확히 가격을 말하는 것입니다). 그런 다음 나는 확인을 위해 작은 스크립트를 작성하기로 결정했으며 무엇을 보았습니까?
1. 값을 계산해야 하는 매개변수에 막대 번호가 없습니다.
2. 속성 식별자:
OBJPROP_PRICE
가격 좌표
이중 수정자=앵커 포인트 번호
그것은 단지 앵커 포인트입니다!
예, 대체로 코드에서 이 선을 그리면 이미 이러한 점이 있는 것입니다! 왜 그들을 인식해야 합니까? 그리고 어쨌든, 그것의 요점은 무엇입니까?
그리고이 라인의 가격 가치를 다른 곳에서 가져 오는 방법은 무엇입니까?
이
prop_modifier
【인】 지정된 속성의 수정자입니다. 첫 번째 옵션의 경우 기본 수정자 값은 0입니다. 대부분의 속성에는 수정자가 필요하지 않습니다. 피보나치 도구 및 Andrews Pitchfork 그래픽 개체의 수준 번호를 나타냅니다. 레벨 번호는 0부터 시작합니다.
의미도 없습니까? 팬 라인의 앵커 포인트를 찾고 있습니까? 날뛰다. 죄송합니다.
나는 그런 물건으로 거의 일하지 않았습니다. 이 함수는 지정된 막대 시간에서 추세선에 대해 무엇을 반환합니까? 확인할 시간이 없어요. 작은 스크립트라도..
ObjectGetValueByTime()