커뮤니티
다시 질문드립니다 ㅠㅠ
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();
}
위에서 사용자 함수로 만들어 주셨던 검색식을
이제 이 로직에 적용시켜 사용하려고 하는데
어떻게 수식을 써서 사용자함수를 적용 시켜야 할까요?;;;;