우리는 첫 번째 막대를 찾았습니다. 이 막대가 형성되었을 때 이 막대의 최고값은 오늘의 최고값이 될 것입니다. 다음으로 우리는 다음 막대를 가져와 이전 막대보다 높으면 고점을 확인합니다. 그러면 이것이 오늘의 새로운 최고점입니다. 그리고 오늘의 마지막 바까지 계속됩니다.
#property script_show_inputs#property strict//+------------------------------------------------------------------+//| Входные параметры |//+------------------------------------------------------------------+inputENUM_TIMEFRAMES inpUserTimeframe=PERIOD_M15; // Пользовательский ТФ//+------------------------------------------------------------------+//| Script program start function |//+------------------------------------------------------------------+voidOnStart()
{
// Определяем время открытия текущего дняdatetime open_D1=iTime(_Symbol,PERIOD_D1,0);
// Определяем номер первого сформированного бара по пользовательскому ТФ за текущий деньint last_utf = iBarShift( _Symbol, inpUserTimeframe, open_D1, true );
if( last_utf == -1 )
{
Alert(EnumToString(inpUserTimeframe)+" ОШИБКА #",GetLastError(),": номер бара не определен! "+TimeToStr(open_D1));
return;
}
// Определяем максимум дняdouble dayHigh=0;
double high;
int highNum=0;
for(int i=1; i<=last_utf; i++) // Цикл по сформированным свечам за текущий день
{
high = iHigh( _Symbol, inpUserTimeframe, i ); // Максимум на i свечеif( high > dayHigh ) // Если максимум дня превышен
{
dayHigh = high; // Запоминаем новый максимум
highNum = i; // Запоминаем номер свечи
}
}
Alert(EnumToString(inpUserTimeframe)+": максимум дня = ",DoubleToString(dayHigh,_Digits)," обнаружен на свече #",highNum);
}
1. 매일 양초의 시작 시간을 결정하십시오.
2. 필요한 시간대 에 막대 수를 결정합니다 (15분마다 하루의 극한값을 확인하려는 경우 - M15 막대).
3. 숫자 막대에 대한 높은 데이터를 가져옵니다.
3. 루프에서 모든 높은 막대 값을 원하는 데이 캔들에 대한 dayHigh 변수와 비교합니다(초기 dayHigh = 0).
4. high > dayHigh인 경우 - dayHigh 변수에 새 값을 저장합니다.
이해가 됩니다. 감사합니다. 하지만 지금은 어렵습니다... 아니면 포인트 2, 각 TF에 대해 이 계산을 수행하고 촛불의 수를 찾기 위해 범위로 몰아야 합니까?
과거 초의 수를 결정하지 않고 현재 기간의 날짜를 찾아 해당 날짜의 모든 값을 정렬할 수 없습니까?
이해가 됩니다. 감사합니다. 하지만 지금은 어렵습니다... 아니면 포인트 2, 각 TF에 대해 이 계산을 수행하고 촛불의 수를 찾기 위해 범위로 몰아야 합니까?
과거 초의 수를 결정하지 않고 현재 기간의 날짜를 찾아 해당 날짜의 모든 값을 정렬할 수 없습니까?
하루 에 막대의 수 는 쉽게 결정할 수 있습니다. 예를 들어 15분 차트의 경우. 하루의 분 수를 15로 나눕니다(1440/15 = 96바 또는 그렇지 않으면 PERIOD_D1/PERIOD_M15 = 96).
하루 에 막대의 수 는 쉽게 결정할 수 있습니다. 예를 들어 15분 차트의 경우. 하루의 분 수를 15로 나눕니다(1440/15 = 96바 또는 그렇지 않으면 PERIOD_D1/PERIOD_M15 = 96).
예, 이것은 수학적으로 이해할 수 있지만 어떻게 기능합니까? 이것이 질문입니다! Time을 통해 현재 시간을 얻고 다음과 같이 가정 해 봅시다.
나는 새로운 날이 도착하면 재설정되고 하루 최대값을 재설정하고 그 전에 각 막대를 비교하기 전에 새 막대를 사용하여 각 TF에 대한 카운터를 만드는 것을 봅니다. 하지만 프로그래밍하는 방법은 무엇입니까?
당신은 그것을 해서는 안됩니다! TF에서 주어진 날짜의 막대 수가 동일하다는 사실을 결코 사실로 받아들일 수 없습니다!
예, 예를 들어 금요일은 더 일찍 마감될 수 있습니다...
따라서 날짜를 결정하고 촛불의 수를 고려하지 않고 하루의 최대값을 검색하기 위해 배열을 가져와야 합니다. 어떻게 해야 할까요?
예, 이것은 수학적으로 이해할 수 있지만 어떻게 기능합니까? 이것이 질문입니다! Time을 통해 현재 시간을 얻고 다음과 같이 가정 해 봅시다.
나는 새로운 날이 도착하면 재설정되고 하루 최대값을 재설정하고 그 전에 각 막대를 비교하기 전에 새 막대를 사용하여 각 TF에 대한 카운터를 만드는 것을 봅니다. 하지만 프로그래밍하는 방법은 무엇입니까?
이것이 하루의 시작에 해당하는 첫 번째 막대를 찾는 방법입니다.
이것이 하루의 시작에 해당하는 첫 번째 막대를 찾는 방법입니다.
예를 들어 다음 알고리즘을 얻습니다.
우리는 첫 번째 막대를 찾았습니다. 이 막대가 형성되었을 때 이 막대의 최고값은 오늘의 최고값이 될 것입니다. 다음으로 우리는 다음 막대를 가져와 이전 막대보다 높으면 고점을 확인합니다. 그러면 이것이 오늘의 새로운 최고점입니다. 그리고 오늘의 마지막 바까지 계속됩니다.