커뮤니티

지표식 변환 부탁드립니다.

프로필 이미지
목포댁
2022-04-28 10:55:19
1124
글번호 158405
답변완료
수고하십니다. 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) ; }
지표
답변 1
프로필 이미지

예스스탁 예스스탁 답변

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) ; }