예스스탁
예스스탁 답변
2022-04-28 11:57:03
안녕하세요
예스스탁입니다.
CTL이 한봉전,두봉전을 (1),(2)와 같이 지정합니다.
함수에서 매개변수 지정하는 부분과 형식이 같으므로
CTL수식에서 함수 뒤에 (1)이 어떤 의미인지 확인하고 변환하셔야 합니다.
내용상 파악해 [1]을 사용할지 (1)로 사용할지 판별하셔야 합니다.
1
I_MarketPosition, I_AvgEntryPrice ,I_CurrentContracts
예스랭귀지에는 위 3개만 제공되고 있습니다.
i_가 붙는 함수는 차트에 적용된 시스템이 있는 상태에서
지표에서 사용하기 시스템의 정보를 사용하기 위한 함수들입니다.
예스랭귀지에서는 i_netprofit이 없어 해당식을 지표로 구현할수는 없습니다.
시스템식에서는 netprofit함수 이용하시면 됩니다.
2
Input : len(0.37), atrlen(20), len1(2.7), consec(1), contlimit(200) ;
var : cond1(False),cond2(False),CurrentEntryNum(0);
Var1 = dayhigh(1)-daylow(1);
Cond1= sdate == exitdate(1) And MarketPosition(1) == 1;
Cond2= sdate == exitdate(1) And MarketPosition(1) == -1;
If Index == 1 Then
{
Var10 = 1;
Var11 = 0;
}
CurrentEntryNum = iff(MarketPosition == 0,TotalTrades, TotalTrades+1 );
If currentEntrynum > 1 Then
{
If MarketPosition == 0 And MarketPosition(0)[1] <> 0 Then
{
#If NetProfit > NetProfit[1] Then #1. 마틴게일
If NetProfit < NetProfit[1] Then #2. 역마틴게일
Var11=0 ;
Else
Var11=var11+1;
}
}
If Var11 >= consec And MarketPosition == 0 And MarketPosition[1] <> 0 Then
{
#Var10=Var10*2; #‘3. 직전계약수 대비 2배로 증가
Var10=Var10+1; #‘4. 직전계약수 대비 1계약 추가
}
If Var11<consec Then
Var10 = 1;
If Var10>contlimit Then
Var10=contlimit ;
If stime < 150000 Then
{
If Cond1==False Then
buy("매수",Atstop,DayOpen+var1*len,Var10);
If Cond2==False Then
sell("매도",Atstop,DayOpen-var1*len,var10);
}
If MarketPosition <> 0 Then
{
exitlong("매수추적스탑",Atstop,Highest(high,BarsSinceEntry+1)-atr(atrlen)*len1);
exitshort("매도추적스탑",Atstop,Lowest(low,BarsSinceEntry+1)+atr(atrlen)*len1);
}
즐거운 하루되세요
> 목포댁 님이 쓴 글입니다.
> 제목 : 지표식 변환 부탁드립니다.
> 수고하십니다.
1.
아래 CTL 1번 지표식을 YTL로 변환 부탁드립니다
대체 함수를 못 찾겠던데, 가능한 지 모르겠습니다.
또, YTL에서 I_MarketPosition, I_AvgEntryPrice ,I_CurrentContracts
3가지 함수외에 다른 I_계열함수가 있는지요?
2.
CTL 2번 시스템식을 YTL로 변환하였는데, 거래발생을 안합니다.
검토 부탁드립니다.
CTL 1번 지표식
Input: capital(50,000,000)
Var1=capital+i_netprofit(1)
If i_position=0 And i_position(1)<>0 Then
If Var1<>0 And i_netprofit-i_netprofit(1)<0 Then
Var2=(i_netprofit(1)-i_netprofit)/var1
End If
If Var2>var3 Then
Var3=var2
End If
End If
CTL 2번 시스템식
/*
CTL
<수식 6-2> DD_RangeBreak(v2.3): 마틴게일, 역마틴게일 전략
영역: 전략
이름: DD_ RangeBreak(v2.2)
Input : len(0.37), atrlen(20), len1(2.7), consec(1), contlimit(200)
Var1=highd(1)-lowd(1)
Cond1= tdate=exitdate(1) And position(1)=1
Cond2= tdate=exitdate(1) And position(1)=-1
If barnum =1 Then
Var10=1
Var11=0
End If
If currentEntrynum>1 Then
If i_position=0 And i_position(1)<>0 Then
# If i_netprofit > i_netprofit(1) Then ‘1. 마틴게일
If i_netprofit < i_netprofit(1) Then ‘2. 역마틴게일
Var11=0
Else
Var11=var11+1
End If
End If
End If
If Var11>=consec And i_position=0 And i_position(1)<>0 Then
# Var10=Var10*2 ‘3. 직전계약수 대비 2배로 증가
Var10=Var10+1 ‘4. 직전계약수 대비 1계약 추가
End If
If Var11<consec Then
Var10=1
End If
If Var10>contlimit Then
Var10=contlimit
End If
If ttime<1500 Then
If Cond1=False Then
Call buy("매수",Atstop,Var10,opend+var1*len)
End If
If Cond2=False Then
Call sell("매도",Atstop,Var10,opend-var1*len)
End If
End If
If position<>0 Then
Call exitlong("매수추적스탑",Atstop,hhv(1,high,barnumsinceEntry+1)-atr(atrlen)*len1)
Call exitshort("매도추적스탑",Atstop,llv(1,low,barnumsinceEntry+1)+atr(atrlen)*len1)
End If
#======================================================#
# YTL
#수식 6-2 DD_RangeBreak(v2.3): 마틴게일, 역마틴게일 전략
#영역: 전략
#======================================================#
*/
Input : len(0.37), atrlen(20), len1(2.7), consec(1), contlimit(200) ;
Var : CurrentEntryNum(0) ;
Var1=DayHigh(1)-DayLow(1) ;
Condition1= Date==ExitDate(1) And MarketPosition(1)==1 ;
Condition2= Date==ExitDate(1) And MarketPosition(1)==-1 ;
If Index == 1 Then { // barnum index
Var10=1 ;
Var11=0 ;
}
CurrentEntryNum = iff(MarketPosition == 0,TotalTrades, TotalTrades+1 );
If currentEntrynum>1 Then {
If MarketPosition==0 And MarketPosition(1)<>0 Then {
# If NetProfit > NetProfit[1] Then //‘1. 마틴게일
If NetProfit < NetProfit[1] Then //‘2. 역마틴게일
Var11=0 ;
Else
Var11=var11+1 ;
}
}
If Var11 >= consec And MarketPosition == 0 And MarketPosition(1) <> 0 Then {
# Var10=Var10*2 ; //‘3. 직전계약수 대비 2배로 증가
Var10=Var10+1 ; //‘4. 직전계약수 대비 1계약 추가
}
If Var11<consec Then {
Var10=1 ;
}
If Var10>contlimit Then {
Var10=contlimit ;
}
If sTime<150000 Then {
If Condition1=False Then {
Buy("매수",Atstop,DayOpen+var1*len,Var10) ;
}
If Condition2=False Then {
Sell("매도",Atstop,DayOpen-var1*len,Var10) ;
}
}
If MarketPosition<>0 Then {
exitlong("매수추적스탑",Atstop,NthHighest(1,high,BarsSinceEntry+1)-atr(atrlen)*len1) ;
exitshort("매도추적스탑",Atstop,NthLowest(1,low,BarsSinceEntry+1)+atr(atrlen)*len1) ;
}