기능 목표: 지정된 기간 동안 지표"볼린저 밴드"의 외부 선 사이의 평균 거리를 점 단위로 계산합니다.
문제의 본질 : 어떤 이유로 동일한 가격 값이 지표의 다른 버퍼에 기록되어이 막대의 모든 라인의 실제 값과 일치하지 않기 때문에 지정된 막대의 지표 라인에서 가격의 실제 값을 얻을 수 없습니다. 결과적으로 알 수없는 일부 가격 값이 다른 버퍼 (다른 요청시)에 기록되어 함수의 전체 추가 작업이 무효화됩니다. 또한이 함수와 정확히 동일한 방법을 사용하여 다른 지표에서 지표를 얻을 수 있었지만 여기서는 작동하지 않습니다....
int Bollinger_Bands(int _Average_Period, int _Number)
{
double Buffer_BASE_LINE[]; // Массив Буффера Линии BASE_LINEdouble Buffer_UPPER_BAND[]; // Массив Буффера Линии UPPER_BANDdouble Buffer_LOWER_BAND[]; // Массив Буффера Линии LOWER_BANDint Bar_Cash = _Average_Period; // Количество плучаемых значений от индикатораint Bands_Handel = 0; // Хендл индикатора Bollinger_Bands//---//double Base_Line = 0; // Значение линии BASE_LINEdouble Upper_Line = 0; // Значение линии UPPER_BANDdouble Lower_Line = 0; // Значение линии LOWER_BAND//---//double Band_Size_Buffer[];// Буфер расчётных значений разницы между линиями индикатора
int Band_Size_Total = 0;// Итог среднего значения расстояния между линиями в пунктах
ENUM_APPLIED_PRICE applied_price = PRICE_CLOSE; // тип цены //---//ArrayResize(Band_Size_Buffer,_Average_Period+1);
ArrayResize(Buffer_UPPER_BAND,_Average_Period+1);
ArrayResize(Buffer_LOWER_BAND,_Average_Period+1);
//---//
Bands_Handel = iBands(_Symbol,PERIOD_CURRENT,20,2,0,applied_price);
//---// CopyBuffer(Bands_Handel,0,_Number,_Average_Period,Buffer_BASE_LINE); ArraySetAsSeries(Buffer_BASE_LINE,true);
CopyBuffer(Bands_Handel,1,_Number,_Average_Period,Buffer_UPPER_BAND); ArraySetAsSeries(Buffer_UPPER_BAND,true);
CopyBuffer(Bands_Handel,2,_Number,_Average_Period,Buffer_LOWER_BAND); ArraySetAsSeries(Buffer_LOWER_BAND,true);
//---////---// Тут получение значений для выбранного номера бара из переменной которая передаётся в функцию (использовал как проверку получения данных по линиям)
Base_Line = NormalizeDouble(Buffer_BASE_LINE[_Number], _Digits); //Alert("Base_Line[",_Number,"] = ",Base_Line);
Upper_Line = NormalizeDouble(Buffer_UPPER_BAND[_Number], _Digits); //Alert("Upper_Line[",_Number,"] = ",Upper_Line);
Lower_Line = NormalizeDouble(Buffer_LOWER_BAND[_Number], _Digits); //Alert("Lower_Line[",_Number,"] = ",Lower_Line);//---////---// ** А это расчёт среднего расстояния между внешними линиями Боллинджера за указанный период. Получается 0 потому что одно число отнимается само от себя.for(int i=_Average_Period; i>=0; i--) {
//---//
Upper_Line = NormalizeDouble(Buffer_UPPER_BAND[i], _Digits); //Alert("Upper_Line[",i,"] = ",Upper_Line);
Lower_Line = NormalizeDouble(Buffer_LOWER_BAND[i], _Digits); //Alert("Lower_Line[",i,"] = ",Lower_Line);//---//
Band_Size_Buffer[i] = NormalizeDouble( ((Upper_Line - Lower_Line) / _Point), 2); //Alert("Band_Size_Buffer[",i,"] = ",Band_Size_Buffer[i]);
}//---//
Band_Size_Total = (int) MathMean(Band_Size_Buffer);
//---//return(Band_Size_Total);
}
Nauris Zukas 표준 라이브러리 사용과 혼동이 있습니다. 표준 라이브러리를 사용하여 주문을 연 후 티켓을 받으려면 어떻게 해야 하나요? 서버 응답이 이미 여기에 수신되었는지 확인할 수 있나요? 서버의 응답을 기다리는 동안 터미널이 중단되나요? 이해가 되지 않습니다.
거래를 받고, 포지션 ID를 가져와서 이 ID로 기록에서 주문과 거래를 가져와서 주문과 거래 가격을 IN으로 읽습니다.
간단합니다! 그러나 저장된 가격으로 두 번째 옵션은 주문을 보내는 동안 글로벌 수준에서 주문을 보낸 다음 OnTradeTransaction에서 거래 가격을 가져옵니다...이것은 저에게 명확하지 않습니다. 주문을 보내는 동안 (주문에) 연결되지 않은 가격을 저장하는 이유는 무엇입니까?
간단히 말해서, 저는 이렇게 할 것입니다 - 거래를 가져온 다음 다른 모든 것을 가져옵니다.
Adam Dee "볼린저 밴드" 지표의 외부 선 사이의 평균 거리를 포인트 단위로 계산합니다.
문제의 본질 : 어떤 이유로 동일한 가격 값이 지표의 다른 버퍼에 기록되어이 막대의 모든 라인의 실제 값과 일치하지 않기 때문에 지정된 막대의 지표 라인에서 가격의 실제 값을 얻을 수 없습니다. 결과적으로 알 수없는 일부 가격 값이 다른 버퍼 (다른 요청시)에 기록되어 함수의 전체 추가 작업이 무효화됩니다. 또한이 함수와 정확히 동일한 방법을 사용하여 다른 지표에서 지표를 얻을 수 있었지만 여기서는 작동하지 않습니다....
볼린저는 SMA +- N * 표준 편차입니다.
표준 편차와 SMA에 대한 자체 지표가 있습니다. 그러나 그것들 없이도 모두 계산됩니다. 참고서를 가져 가면 여기에 공식이 있습니다. 여기에서 기본값에 따라 현재 4 시그마에 해당하는 "선 사이의 평균 포인트 거리"를 찾을 수 있습니다. 그리고 평균 (어느 기간 동안?), 계산하는 데 신경을 쓰시나요?
이것은 분명합니다! 그러나 주문을 보내는 동안 글로벌 수준에서 가격을 저장 한 다음 거래 가격을 얻기 위해 OnTradeTransaction에서 가격을 저장하는 두 번째 옵션은 명확하지 않습니다... 이것은 저에게 명확하지 않습니다. 주문을 전송하는 동안 (주문에) 연결되지 않은 가격을 저장하는 이유는 무엇입니까?
간단히 말해, 거래를 받은 다음 다른 모든 것을 가져오는 방식입니다.
이것은 모든 것이 제 시간에있을 때 차분한 거래에 대해 말했습니다... 이것을 고려하지 않고...
안녕하세요, 모든 전문가와 방법을 아는 사람!
지표에서 데이터를 가져 오는 데 문제가 있습니다-누가 할 수 있는지 도와주세요....
기능 목표: 지정된 기간 동안 지표"볼린저 밴드"의 외부 선 사이의 평균 거리를 점 단위로 계산합니다.
문제의 본질 : 어떤 이유로 동일한 가격 값이 지표의 다른 버퍼에 기록되어이 막대의 모든 라인의 실제 값과 일치하지 않기 때문에 지정된 막대의 지표 라인에서 가격의 실제 값을 얻을 수 없습니다. 결과적으로 알 수없는 일부 가격 값이 다른 버퍼 (다른 요청시)에 기록되어 함수의 전체 추가 작업이 무효화됩니다.
또한이 함수와 정확히 동일한 방법을 사용하여 다른 지표에서 지표를 얻을 수 있었지만 여기서는 작동하지 않습니다....
표준 라이브러리 사용과 혼동이 있습니다.
표준 라이브러리를 사용하여 주문을 연 후 티켓을 받으려면 어떻게 해야 하나요?
서버 응답이 이미 여기에 수신되었는지 확인할 수 있나요? 서버의 응답을 기다리는 동안 터미널이 중단되나요? 명확하지 않습니다.
MQ4에서는 모든 것이 간단했습니다:
표준 라이브러리를 사용하여 주문을 연 후 티켓을 받으려면 어떻게 해야 하나요?
서버 응답이 이미 여기에 수신되었는지 확인할 수 있나요? 서버의 응답을 기다리는 동안 터미널이 중단되나요? 이해가 되지 않습니다.
MQ4에서는 모든 것이 간단했습니다:
온트레이드트랜잭션() 이벤트 처리를 사용하는 것이 좋습니다.
온트레이드트랜스잭션() 이벤트 핸들러를 사용하는 것이 좋습니다.
고마워요! 그런 다음 몇 가지 함수를 다시 실행해야 합니다.
mql5에서 슬리피지를 계산하는 함수를 어디선가 본 적이 있을까요?
고마워요! 그럼 몇 가지 기능을 다시 실행해야겠네요.
mql5에서 미끄러짐을 계산하는 함수를 어디선가 본 적이 있나요?
왜 찾아야 하나요? 온트레이드트랜잭션에서는 주문이 들어온 이벤트를 포착하고 주문 가격을 읽은 다음 거래를 포착하고 거래 가격을 읽고 이 가격의 차액을 구합니다.
글로벌 수준에서 변수를 생성하고 주문을 보낼 때 가격을 쓰고 OnTradeTransaction에서 거래 가격을 가져올 수도 있습니다 ...
Alexey Viktorov #:
글로벌 수준에서 변수를 생성하고 주문이 전송될 때 가격을 입력한 다음 OnTradeTransaction.... 에서 거래 가격을 가져올 수도 있습니다.
이 옵션은 확실히 없습니다. 많은 주문을 보낼 경우 티켓 없이 가격이 필요한데 OnTradeTransaction은 어떻게 처리하나요?
이 옵션은 확실히 없습니다. 많은 주문을 보낼 경우 티켓 없이 가격을 책정할 수 있나요? 온트레이드트랜잭션은 이를 어떻게 처리하나요?
포지션 ID에 따라 문제없이 정렬됩니다.
거래를 받고, 포지션 ID를 가져와서 이 ID로 기록에서 주문과 거래를 가져와서 주문과 거래 가격을 IN으로 읽으면 됩니다.
설명서를 읽어보세요. 거기에서 많은 흥미로운 것을 찾을 수 있습니다.
Alexey Viktorov #:
거래를 받고, 포지션 ID를 가져와서 이 ID로 기록에서 주문과 거래를 가져와서 주문과 거래 가격을 IN으로 읽습니다.
간단합니다! 그러나 저장된 가격으로 두 번째 옵션은 주문을 보내는 동안 글로벌 수준에서 주문을 보낸 다음 OnTradeTransaction에서 거래 가격을 가져옵니다...이것은 저에게 명확하지 않습니다. 주문을 보내는 동안 (주문에) 연결되지 않은 가격을 저장하는 이유는 무엇입니까?
간단히 말해서, 저는 이렇게 할 것입니다 - 거래를 가져온 다음 다른 모든 것을 가져옵니다.
문제의 본질 : 어떤 이유로 동일한 가격 값이 지표의 다른 버퍼에 기록되어이 막대의 모든 라인의 실제 값과 일치하지 않기 때문에 지정된 막대의 지표 라인에서 가격의 실제 값을 얻을 수 없습니다. 결과적으로 알 수없는 일부 가격 값이 다른 버퍼 (다른 요청시)에 기록되어 함수의 전체 추가 작업이 무효화됩니다.
또한이 함수와 정확히 동일한 방법을 사용하여 다른 지표에서 지표를 얻을 수 있었지만 여기서는 작동하지 않습니다....
볼린저는 SMA +- N * 표준 편차입니다.
표준 편차와 SMA에 대한 자체 지표가 있습니다. 그러나 그것들 없이도 모두 계산됩니다. 참고서를 가져 가면 여기에 공식이 있습니다. 여기에서 기본값에 따라 현재 4 시그마에 해당하는 "선 사이의 평균 포인트 거리"를 찾을 수 있습니다.
그리고 평균 (어느 기간 동안?), 계산하는 데 신경을 쓰시나요?
사실상 표준 편차의 평균을 알고 싶을 것입니다.
이것은 분명합니다! 그러나 주문을 보내는 동안 글로벌 수준에서 가격을 저장 한 다음 거래 가격을 얻기 위해 OnTradeTransaction에서 가격을 저장하는 두 번째 옵션은 명확하지 않습니다... 이것은 저에게 명확하지 않습니다. 주문을 전송하는 동안 (주문에) 연결되지 않은 가격을 저장하는 이유는 무엇입니까?
간단히 말해, 거래를 받은 다음 다른 모든 것을 가져오는 방식입니다.
이것은 모든 것이 제 시간에있을 때 차분한 거래에 대해 말했습니다... 이것을 고려하지 않고...
트레이딩, 자동매매 시스템 및 테스트 트레이딩 전략에 관한 포럼
초보자의 질문 MQL5 MT5 메타트레이더 5
나우리스 주카스, 2022.06.11 17:49
이 옵션은 확실히 나왔습니다. 많은 주문을 보낼 경우 티켓이 없는 경우 가격은 얼마인가요, 온트레이드트랜잭션은 어떻게 처리하나요?