커뮤니티

다시 질문드립니다 ㅠㅠ

프로필 이미지
sdfxwe
2011-05-12 02:22:55
556
글번호 38515
답변완료
안녕하세요 수고가 많으십니다!! 제가 어제도 여쭈었는데 그땐 이것이 사용자 함수가 포함되어있어서 바꿔주실수가 없다고 하셨는데 위의 것이 _IsNewBar_1m 이 파일이고 Inputs: Interval(NumericSimple); Variables: IsNewBar(false), Hour(0), Minute(0), CheckTime(0), PrevTime(0); IsNewBar = false; if Date <> Date[1] then begin Hour = IntPortion(TimeToMinutes(Time) / 60); Minute = TimeToMinutes(Time) - Hour * 60; if Mod(Minute, Interval) = 0 then CheckTime = MinutesToTime(Hour * 60 + (IntPortion(Minute / Interval) - 1) * Interval) else CheckTime = MinutesToTime(Hour * 60 + IntPortion(Minute / Interval) * Interval); end; if Time <> PrevTime then begin PrevTime = Time; while Time >= CalcTime(CheckTime, Interval) begin if Time[1] > CheckTime then IsNewBar = true; CheckTime = CalcTime(CheckTime, Interval); end; end; 밑의 이 파일이 _SlowD_1m입니다. 이렇게 있으면 변환할수 있지 않을까요???;; 이게 안된다면 사용자함수? 를 지정할 수 있는 방법을 좀 알려주시거나 아니면 사용자함수 부분은 빼고라도 변환을 좀 부탁드립니다!! Inputs: Interval(NumericSimple), Length(NumericSimple); Variables: Factor(.5), BarCount(0), Counter(0); Arrays: FastDArray[2](0), SlowDArray[2](0); if _IsNewBar_1m(Interval) then begin BarCount = BarCount + 1; for Counter = 2 downto 1 begin FastDArray[Counter] = FastDArray[Counter - 1]; SlowDArray[Counter] = SlowDArray[Counter - 1]; end; if BarCount <= 1 then begin FastDArray[0] = FastK(Length * Interval); SlowDArray[0] = FastDArray[0]; end else begin FastDArray[0] = FastDArray[1] + (Factor * (FastK(Length * Interval) - FastDArray[1])); SlowDArray[0] = ((SlowDArray[1] * 2) + (FastDArray[1] + (Factor * (FastK(Length * Interval) - FastDArray[1])))) / 3; end; end; if BarCount > 0 then _SlowD_1m = SlowDArray[0] else _SlowD_1m = 0;
시스템
답변 2
프로필 이미지

예스스탁 예스스탁 답변

2011-05-12 15:58:05

안녕하세요 예스스탁입니다. 사용자 함수 파일로 첨부해서 올려드립니다. 랭귀지의 오류가 없게만 만들었습니다. 즐거운 하루되세요 > sdfxwe 님이 쓴 글입니다. > 제목 : 다시 질문드립니다 ㅠㅠ > 안녕하세요 수고가 많으십니다!! 제가 어제도 여쭈었는데 그땐 이것이 사용자 함수가 포함되어있어서 바꿔주실수가 없다고 하셨는데 위의 것이 _IsNewBar_1m 이 파일이고 Inputs: Interval(NumericSimple); Variables: IsNewBar(false), Hour(0), Minute(0), CheckTime(0), PrevTime(0); IsNewBar = false; if Date <> Date[1] then begin Hour = IntPortion(TimeToMinutes(Time) / 60); Minute = TimeToMinutes(Time) - Hour * 60; if Mod(Minute, Interval) = 0 then CheckTime = MinutesToTime(Hour * 60 + (IntPortion(Minute / Interval) - 1) * Interval) else CheckTime = MinutesToTime(Hour * 60 + IntPortion(Minute / Interval) * Interval); end; if Time <> PrevTime then begin PrevTime = Time; while Time >= CalcTime(CheckTime, Interval) begin if Time[1] > CheckTime then IsNewBar = true; CheckTime = CalcTime(CheckTime, Interval); end; end; 밑의 이 파일이 _SlowD_1m입니다. 이렇게 있으면 변환할수 있지 않을까요???;; 이게 안된다면 사용자함수? 를 지정할 수 있는 방법을 좀 알려주시거나 아니면 사용자함수 부분은 빼고라도 변환을 좀 부탁드립니다!! Inputs: Interval(NumericSimple), Length(NumericSimple); Variables: Factor(.5), BarCount(0), Counter(0); Arrays: FastDArray[2](0), SlowDArray[2](0); if _IsNewBar_1m(Interval) then begin BarCount = BarCount + 1; for Counter = 2 downto 1 begin FastDArray[Counter] = FastDArray[Counter - 1]; SlowDArray[Counter] = SlowDArray[Counter - 1]; end; if BarCount <= 1 then begin FastDArray[0] = FastK(Length * Interval); SlowDArray[0] = FastDArray[0]; end else begin FastDArray[0] = FastDArray[1] + (Factor * (FastK(Length * Interval) - FastDArray[1])); SlowDArray[0] = ((SlowDArray[1] * 2) + (FastDArray[1] + (Factor * (FastK(Length * Interval) - FastDArray[1])))) / 3; end; end; if BarCount > 0 then _SlowD_1m = SlowDArray[0] else _SlowD_1m = 0;
프로필 이미지

sdfxwe

2011-05-12 21:49:15

정말 감사합니다 제가 그 사용자 함수를 스토캐스틱 크로스 로직에 적용을 시키려고 하는데요 밑은 스토캐스틱 크로스 로직이구요 Input : Period(5), Period1(3), Period2(3); value1 = StochasticsK(Period,Period1); value2 = StochasticsD(Period,Period1,Period2); # 매도 If Crossdown(value1, value2) Then { sell(); } # 매도청산 If Crossup(value1, value2) Then { buy(); } 위에서 사용자 함수로 만들어 주셨던 검색식을 이제 이 로직에 적용시켜 사용하려고 하는데 어떻게 수식을 써서 사용자함수를 적용 시켜야 할까요?;;;;