답변완료
문의드립니다.
안녕하세요? 수고가 많으세요.
첨부한 엑셀파일에 A,B,C 종목은 종가를 기준으로 하여 300일 데이터를 작성 하였습니다.
(종목A는 CJ, 종목B는 CJ CGV, 종목C는 CJ제일제당 이고 주식선물, 수정하지 않은 데이터입니다.)
A는 Data1, B는 Data2, C는 Data3로 하여 종목 B와 종목 C를 합성하고 새로운 주가 데이터를 만들고 (합성종목(B와 C)의 초기값은 A종목의 첫번째 값(Cell B5)) "e" (Cell J)의 값을 생성하여 보조지표로 작성 할 예정 입니다.
엑셀파일에 빨간색으로 표시된 부분(Cell H2, Cell E5, Cell F5)은 외부 입력변수로 처리 하겠습니다.
Cell E와 Cell F의 수익률은 각각 종목 B와 종목 C의 Log수익률(Ln(나중값) - Ln(이전값))입니다.
Cell G의 합성 수익률은 종목 B와 C의 Log수익률에 가중치(Cell E5, F5)를 곱하여 생성합니다.
Cell H의 합성주가는 Cell G에서 생성된 합성 수익률을 가지고 합성주가를 생성합니다.((1+합성수익률(Cell G))*이전 합성주가).
Cell I의 Spread는 종목A(Cell B)의 Log값에 합성주가(Cell H)와 Beta(Cell H2)를 곱하여 뺀값입니다( Ln(종목A) - Ln(합성주가) * Beta)
Cell J2의 균형점(귤색)은 Cell I의 Spread 전체값의 평균입니다.
Cell J의 "e" 값은 Spread값에 균형점을 뺀값입니다.(spread - 균형점)
수고스러우시겠지만 수식 작성좀 부탁 드립니다.
2019-10-22
185
글번호 133032
지표
답변완료
부탁드립니다.
안녕하세요 작성해주신 수식 감사합니다.
몇가지만 추가 부탁드립니다.
최초 ★(누적 -120) 이후 익절로 인한 SetStopTrailing 위 tx 가 "0"이 될때 까지
매수매도(B1, S1, B2, S2) 위에 ■를 표시 하고 싶습니다.
"0"이후 다시 ★ 발생되면 ■ 표시 반복합니다.
목적은 스팟을 이용하여 "■"표시된 매수매도(B1, S1, B2, S2)만 인식하여 진입하기 위함입니다.
그럼 부탁드립니다.
예)
B2 --> SetStopTrailing : 0
B1 --> SetStopLoss : -40
B2 --> SetStopLoss : -80
S1 --> SetStopLoss : -120 ★ # -120시작, 매수 매도에 ■ 표시
B2 ■ --> SetStopLoss : -160 ★
B1 ■ --> SetStopTrailing :-130 ★
B2 ■ --> SetStopTrailing :-100
S1 ■ --> SetStopTrailing :-70
B1 ■ --> SetStopTrailing :-40
B1 ■ --> SetStopTrailing :-10
S2 ■ --> SetStopTrailing : 0 # 0 끝, 다음 매수 매도에 ■ 표시 종료
B1 --> SetStopTrailing : -40
B2 --> SetStopLoss : -80
S1 --> SetStopLoss : -120 ★ # -120시작, 매수 매도에 ■ 표시
B2 ■
Input : 손절(20),익절(15),익절하락(3);
input : P1(30), P2(120), p3(240);
input : StartTime(090000),EndTime(050000);
var : tx(0),X(false);
var: Tcond(false);
var1 = ma(C, P1);
var2 = ma(C, P2);
var3 = ma(C, P3);
######## 진입제한
if (sdate != sdate[1] and stime >= StartTime) or
(sdate == sdate[1] and stime >= StartTime and stime[1] < StartTime)Then
{
Tcond = true;
}
if (sdate != sdate[1] and stime >= Endtime) or
(sdate == sdate[1] and stime >= Endtime and stime[1] < Endtime)Then
{
Tcond = false;
}
## 진입
if Tcond == true and marketposition == 0
and crossup(var1,var2) Then {
buy("B1");
}
if Tcond == true and marketposition == 0
and crossdown(var1,var2) Then {
sell("S1");
}
if Tcond == true and marketposition == 0
and crossup(var2,var3) and var3[1] < var3 Then {
buy("B2");
}
if Tcond == true and marketposition == 0
and crossdown(var3,var4) and var3[1] > var3 Then {
sell("S2");
}
## 청산
if MarketPosition == 1 then {
SetStopTrailing(익절하락,익절,PointStop);
SetStopLoss(손절,PointStop);
}
if MarketPosition == -1 Then {
SetStopTrailing(익절하락,익절,PointStop);
SetStopLoss(손절,PointStop);
}
if ((sdate != sdate[1] and stime >= Endtime) or
(sdate == sdate[1] and stime >= Endtime and stime[1] < Endtime)) Then {
if MarketPosition == 1 Then {
ExitLong("BE6");
}
if MarketPosition == -1 Then {
ExitShort("SE6");
}
}
var : tt(0);
if TotalTrades > TotalTrades[1] then
{
if IsExitName("StopLoss",1) == true then
{
tt = tt - 40;
if tt >= 0 Then
tt = 0;
if tt > -120 then
{
tx = Text_New(ExitDate(1),ExitTime(1),h[BarsSinceExit(1)],NumToStr(tt,0));
Text_SetSize(tx,20);
}
else
{
tx = Text_New(ExitDate(1),ExitTime(1),h[BarsSinceExit(1)],NumToStr(tt,0)+"★");
Text_SetSize(tx,20);
}
}
if IsExitName("StopTrailing",1) == true then
{
tt = tt + 30;
if tt >= 0 Then
{
tt = 0;
X = true;
}
tx = Text_New(ExitDate(1),ExitTime(1),h[BarsSinceExit(1)],NumToStr(tt,0));
Text_SetSize(tx,20);
Text_Setstyle(tx,2,2);
//Text_SetSize 폰트 사이즈
//Text_Setstyle 좌우상하 정렬
}
}
2019-10-22
124
글번호 133030
시스템
답변완료
검색식 부탁드립니다.
분봉상 아래선 돌파시 검색식 문의드립니다.
(max(nPredayhigh(25),nPredayhigh(24),nPredayhigh(23),
nPredayhigh(22),nPredayhigh(21),nPredayhigh(20),nPredayhigh(19),
nPredayhigh(18),nPredayhigh(17),nPredayhigh(16),nPredayhigh(15),
nPredayhigh(14),nPredayhigh(13),nPredayhigh(12),nPredayhigh(11),
nPredayhigh(10),nPredayhigh(9),nPredayhigh(8),nPredayhigh(7),
nPredayhigh(6),nPredayhigh(5),nPredayhigh(4),nPredayhigh(3),
nPredayhigh(2),nPredayhigh(1),PreDayHigh(),DayHigh())+min(nPredaylow(25),nPredaylow(24),nPredaylow(23),
nPredaylow(22),nPredaylow(21),nPredaylow(20),nPredaylow(19),
nPredaylow(18),nPredaylow(17),nPredaylow(16),nPredaylow(15),
nPredaylow(14),nPredaylow(13),nPredaylow(12),nPredaylow(11),
nPredaylow(10),nPredaylow(9),nPredaylow(8),nPredaylow(7),
nPredaylow(6),nPredaylow(5),nPredaylow(4),nPredaylow(3),
nPredaylow(2),nPredaylow(1),PreDayLow(),DayLow()))/2
2019-10-22
152
글번호 133028
검색
답변완료
답해주신 수식 문의 드립니다
if MarketPosition == 0 Then
buy("b",AtStop,C+PriceScale*10,10);
=> 위에서 AtStop뒤에 C는 무언가요?
buy("b"에서 b에 종목 번호를 넣으면 되나요?
PriceScale*10,10 =>는 10호가,10주
이렇게 되는 건가요?
if MarketPosition == 1 Then
{
if CurrentContracts > CurrentContracts[1] Then
var1 = LatestEntryPrice(0);
if CurrentContracts < CurrentContracts[1] Then
var1 = LatestExitPrice(0);
위 if 문은 10주 매수한 가격에서 10호가 상승하면
추가 10주매수하고 매수한 가격에서 10호가 하락하면
아래의 ExitLong로 매도 하란 말인가요?
bb와bx는 종목인가요 매수할 금액인가요?
종목명은 숫자로 넣는거 같던데 어느 부분에 있는건지?
너무 기본이 없어 어찌 여쭤야 될지 모르겠습니다
그럼에도 무모한 질문에
친절히 답변해 주셔서 감사합니다
buy("bb",AtStop,var1+PriceScale*40,10);
ExitLong("bx",AtStop,var1-PriceScale*10,"",10,2);
}
2019-10-22
121
글번호 133027
시스템
답변완료
Print에서 시간부분 개선 요청드려요
안녕하세요?
Print(saveFilename,",%s,%f",SymbolCode,Value1);
위 Print관련 밤 12시의 시간대 값이 아래와 같이 나옵니다.
엑셀에서 불러오면 시간으로 인식이 안됩니다.
엑셀에서 시간으로 인식할수 있도록 시간출력부분 개선을 요청드립니다.
2019-10-09 23:58:00 ,CL_1,52.490000
2019-10-09 23:59:00 ,CL_1,52.490000
2019-10-10 : : 0 ,CL_1,52.490000
2019-10-10 : 1:00 ,CL_1,52.490000
2019-10-10 : 2:00 ,CL_1,52.500000
2019-10-10 : 3:00 ,CL_1,52.500000
2019-10-10 : 4:00 ,CL_1,52.500000
2019-10-10 : 5:00 ,CL_1,52.500000
2019-10-10 : 6:00 ,CL_1,52.500000
2019-10-10 : 7:00 ,CL_1,52.510000
2019-10-10 : 8:00 ,CL_1,52.500000
2019-10-10 : 9:00 ,CL_1,52.490000
2019-10-10 :10:00 ,CL_1,52.510000
2019-10-10 :11:00 ,CL_1,52.500000
2019-10-10 :12:00 ,CL_1,52.510000
2019-10-10 :13:00 ,CL_1,52.530000
2019-10-22
117
글번호 133026
지표