전략이 필요한 사람은 누구입니까? 많은 무료 - 페이지 50

 

"Journal by Bar"와 "Journal by Position" 사이에는 차이가 없습니다. 그들은 정보를 다른 방식으로만 표시합니다.


*그리고 데이터 막대 필터는 "위치별 저널"을 "필터링"합니다.* "가장 오래된 'm' 막대" 앞에 항목이 없기 때문에 그렇게 보입니다. "Journal by Bars"는 프로그램에 로드되기 때문에 막대를 표시하지만 "가장 오래된" 막대에서는 거래가 실행되지 않습니다.


"데이터 막대 필터" 및 "날짜 필터"가 바로 필터입니다. 지정된 간격 동안 시장 진입을 허용(또는 금지)하는 데 사용됩니다. 이것은 전략 논리를 변경하지 않습니다.


"논리 종료 조건" 슬롯에서 "데이터 막대 필터" 또는 "날짜 필터"를 사용할 수 없습니다. 그것은 전략 출구 논리를 바꿀 것입니다.

 
Miroslav_Popov писал(а) >>

"Journal by Bar"와 "Journal by Position" 사이에는 차이가 없습니다. 그들은 정보를 다른 방식으로만 표시합니다.

*그리고 데이터 막대 필터는 "위치별 저널"을 "필터링"합니다.* "가장 오래된 'm' 막대" 앞에 항목이 없기 때문에 그렇게 보입니다. "Journal by Bars"는 프로그램에 로드되기 때문에 막대를 표시하지만 "가장 오래된" 막대에서는 거래가 실행되지 않습니다.

"데이터 막대 필터" 및 "날짜 필터"가 바로 필터입니다. 지정된 간격 동안 시장 진입을 허용(또는 금지)하는 데 사용됩니다. 이것은 전략 논리를 변경하지 않습니다.

"논리 종료 조건" 슬롯에서 "데이터 막대 필터" 또는 "날짜 필터"를 사용할 수 없습니다. 이는 전략 종료 논리를 변경합니다.

나는 이 모든 것을 완벽하게 이해했다.

이 "변태"를 적용하려고 시도했습니다.

1. 좌우 최적화 영역을 제한합니다.

2. 최적화 영역을 벗어난 전략의 동작을 확인합니다.

3. 그라데이션 곡선은 그래프의 상대적으로 실제 부분을 보는 데 방해가 되지 않았습니다. (항목 1 - 역사의 플롯 참조, 왼쪽 및 오른쪽으로 제한됨)

4. 버튼 누름 횟수 최소화.

(네, 사실, 히스토리의 일부를 더 자세히 "볼" 필요가 종종 있습니다. 동시에 별도의 (전체 차트) "잔액/주식 차트" 창을 여는 것은 편리하지 않습니다)

Data Horizont의 "다음보다 오래된 데이터 제거"에 체크 표시가 있는 버그를 수정하기 전에 이 모든 작업을 수행하십시오.

저것들. Data Horizon 수정을 기다리는 붐! !!!

 

위치 로그의 첫 번째 막대 ... 12 54 . IMHO는 변경되어서는 안 됩니다.


Forex Strategy Builder는 최소 300개의 바를 원합니다. UTB 15 54 - 300 = 12 54

 
/// <summary>
/// Data Horizon - Cuts some data
/// </summary>
int DataHorizon ( )
{
	if ( iBars < MINIMUMBARS ) return 0 ;

	int   iTempBars     = iBars ;
	int   iTempStartBar = 0 ;
	int   iTempEndBar   = iBars - 1 ;
	bool bChange       = false ;

	// Set the maximum nuber of bars
	if ( iBars > iMaxBars & & iMaxBars > = MINIMUMBARS )
	{    // We need to cut out the oldest bars
		iTempBars     = iMaxBars ;
		iTempStartBar = iBars - iMaxBars ;
		bChange       = true ;
	}
	

	// Set the starting date
	DateTime dtStartingDate = new DateTime ( iStartYear , iStartMonth , iStartDay ) ;
	if ( bUseStartDate & & aBar [ iTempStartBar ] . Time < dtStartingDate )
	{    // We need to cut out the oldest bars
		for ( int iBar = iTempStartBar ; iBar < iTempBars - MINIMUMBARS ; iBar + + )
		{
			if ( aBar [ iBar ] . Time > = dtStartingDate )
			{
				iTempStartBar = iBar ;
				iTempBars     = iTempEndBar - iTempStartBar + 1 ;
				bChange       = true ;
				break ;
			}
		}
	}

	// Set the end date
	DateTime dtEndingDate   = new DateTime ( iEndYear , iEndMonth , iEndDay ) ;
	if ( bUseEndDate & & aBar [ iTempEndBar ] . Time > dtEndingDate )
	{    // We need to cut out the newest bars
		for ( int iBar = iTempStartBar + MINIMUMBARS ; iBar < iTempEndBar ; iBar + + )
		{
			if ( aBar [ iBar ] . Time > = dtEndingDate )
			{
				iTempEndBar = iBar - 1 ;
				iTempBars   = iTempEndBar - iTempStartBar + 1 ;
				bChange     = true ;
				break ;
			}
		}
	}

	// Cut the data
	if ( bChange )
	{
		Bar [ ] aBarCopy = new Bar [ iBars ] ;
		aBar . CopyTo ( aBarCopy , 0 ) ;

		aBar = new Bar [ iTempBars ] ;
		for ( int iBar = iTempStartBar ; iBar < = iTempEndBar ; iBar + + )
			aBar [ iBar - iTempStartBar ] = aBarCopy [ iBar ] ;

		iBars    = iTempBars ;
		dtTime = aBar [ iTempBars - 1 ] . Time ;
		bCut   = true ;
	}

	return 0 ;
}

최소값 = 300

iMaxBars - "Data Horizon"에서 설정한 것

 

:( 코드를 제대로 게시할 수 없습니다. 선행 탭을 제거합니다.

 
Miroslav_Popov писал(а) >>

// Set the starting date
DateTime dtStartingDate = new DateTime(iStartYear, iStartMonth, iStartDay);
if (bUseStartDate && aBar[iTempStartBar].Time < dtStartingDate)
{ // We need to cut out the oldest bars
for (int iBar = iTempStartBar; iBar < iTempBars - MINIMUMBARS; iBar++)
{
if (aBar[iBar].Time >= dtStartingDate)
{
iTempStartBar = iBar;
iTempBars = iTempEndBar - iTempStartBar + 1;
bChange = true;
break;
}
}
}

저것들. (텍스트 형식이 아닌 "아이콘" Ctrl+Alt+M을 사용해야 함)

 if ( bUseStartDate & & aBar [ iTempStartBar ] . Time < dtStartingDate )
{ // We need to cut out the oldest bars
 for ( int iBar = iTempStartBar ; iBar < iTempBars - MINIMUMBARS ; iBar + + )
 {
  if ( aBar [ iBar ] . Time > = dtStartingDate )
  {
   iTempStartBar = iBar ;
   iTempBars = iTempEndBar - iTempStartBar + 1 ;
   bChange = true ;
   break ;
  }
 }
}

첫 번째 ifelse 는 어디에 있습니까?

또는 원하는

if (bUseStartDate && aBar[iTempStartBar].Time < dtStartingDate)
 iTempStartBar = Какая_там_функция_пересчета_времени_в_бары(dtStartingDate)

마찬가지로 "종료일"

 

**첫 번째 ifelse 는 어디에 있습니까?**

다음과 같은 경우 데이터를 잘라냅니다.

1. 확인란이 선택되어 있습니다. bUseStartDate == true

2. 선택한 날짜는 과거 데이터의 시작 이후(최신)입니다. aBar[iTempStartBar].Time < dtStartingDate


반대의 경우에는 단순히 절단이 없습니다.


-------

편집하다:

2008년 9월 30일 이전 날짜는 제거할 수 없습니다. 제거하면 막대가 300개 미만으로 남게 되기 때문입니다. (일일 차트)


(int iBar = iTempStartBar; iBar < iTempBars - MINIMUMBARS ; iBar++)

 
Miroslav_Popov писал(а) >>

**첫 번째 ifelse 는 어디에 있습니까?**

네. 서둘러, 미안. :(

H4에서 전략을 생성하려면 2.5개월(300/6=50일 - 막대 없는 휴일 ~ 2.5개월) 미만의 기간을 사용할 수 없지만 전략 확인 간격(OOS)이 시작되어야 합니다. 현재 날짜로부터 늦어도 2.5개월 이전(편리하지 않음, 조정된 전략이 그렇게 오래 지속되는지 의심스럽고 "어제 최적화된 전략이 오늘 어떻게 작동하는지"를 보는 것이 더 흥미롭기 때문에 편리하지 않습니다.) 교차 섹션" 또는 .. .파일에 빈 막대 추가(컴퓨터 시간이 확인되지 않기를 바랍니다)

:)

요약 - 저는 항상 막대의 수를 최대로 설정하고(생성이 고정되지 않도록) 날짜와 함께 최적화/검증 간격을 설정합니다.

 

. добавлять пустые бары в файл (надеюсь, что время компьютера не проверяется)


그것은 그들을 잡을 것입니다. 체크 표시 제거 "시장" - "데이터 확인"

 
voltair >> :

올바른 선택을 하려면 어떤 정보가 필요합니까? 탐구해야 할 것은 무엇입니까?

글쎄요, 예를 들어... 다른 유형의 시장에서 전략이 어떻게 작동하는지, 글쎄요, 지금도... 저는 종종 1년에 2 이상의 이익을 보았고, 마지막 달에는 드레인이 있었고 추세가 계속됩니다.