커뮤니티

함수요청

프로필 이미지
흰둥이아빠
2022-07-14 17:26:04
1429
글번호 160751
답변완료
안녕하세요? 아래글번호 78065번 재질문입니다. 답글로 작성주신 스크립트를 적용하면 각각 돌린 시스템과 신호가 다르게 뜹니다. 시스템 A와 시스템 B를 각각 동시에 돌린 것과 시스템 C 한개를 돌린 것과 신호와 손익이 같도록 작성 요청드립니다. 시스템 A = 글번호 77970번에서 작성주신 스크립트 시스템 B = 글번호 77955번에서 작성주신 스크립트입니다. /시스템 A var : T(0),S(0),mav(0); mav = ma(c,20); if Bdate != Bdate[1] Then { T = 0; S = 0; if L[1] > mav[1] and H < mav Then Sell("s",AtMarket); if H[1] < mav[1] and L > mav Then Buy("b",AtMarket); } if MarketPosition == -1 Then { if CrossUp(c,mav) Then ExitShort("sx",AtMarket); if L < DayLow(0)[1] and L[1] != DayLow(0)[1] Then { var1 = var1+1; if var1 == 3 Then ExitShort("sx1"); } } Else var1 = 0; if MarketPosition == 1 Then { if CrossDown(c,mav) Then ExitLong("bx",AtMarket); if H > DayHigh(0)[1] and H[1] != DayHigh(0)[1] Then { var2 = var2+1; if var2 == 3 Then ExitLong("bx1"); } } Else Var2 = 0; SetStopEndofday(151500); /시스템B var : T(0),S(0),mav(0); mav = ma(c,20); if Bdate != Bdate[1] Then { T = 0; S = 0; if L > mav Then T = -1; if H < mav Then T = 1; } if T == -1 and CrossDown(C,mav) Then { S = S+1; if S == 2 Then Sell(); } if T == 1 and CrossUp(C,mav) Then { S = S+1; if S == 2 Then Buy(); } if MarketPosition == 1 and Bdate == Bdate[1] and C < DayLow(0)[1] Then ExitLong("bx",AtMarket); if MarketPosition == -1 and Bdate == Bdate[1] and C > DayHigh(0)[1] Then ExitShort("sx",AtMarket); SetStopEndofday(151500);
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2022-07-15 12:52:44

안녕하세요 예스스탁입니다. 수식내용을 더이상 수정해 드릴방법이 없습니다. 올려주신 내용 다시 적용해 리포트를 보았지만 신호등 모두 동일하게 발생하고 있습니다. 첨부된 그림에서 S1이 A식, S2가 B식, S3가 통합식 리포트입니다. 손익이나 거래횟수등이 A식과 B식 합산값이 모두 동일합니다. 리포트의 항목중에는 거래가 추가되면 달라질수 밖에 없는 값들도 있습니다. 즐거운 하루되세요 > 흰둥이아빠 님이 쓴 글입니다. > 제목 : 함수요청 > 안녕하세요? 아래글번호 78065번 재질문입니다. 답글로 작성주신 스크립트를 적용하면 각각 돌린 시스템과 신호가 다르게 뜹니다. 시스템 A와 시스템 B를 각각 동시에 돌린 것과 시스템 C 한개를 돌린 것과 신호와 손익이 같도록 작성 요청드립니다. 시스템 A = 글번호 77970번에서 작성주신 스크립트 시스템 B = 글번호 77955번에서 작성주신 스크립트입니다. /시스템 A var : T(0),S(0),mav(0); mav = ma(c,20); if Bdate != Bdate[1] Then { T = 0; S = 0; if L[1] > mav[1] and H < mav Then Sell("s",AtMarket); if H[1] < mav[1] and L > mav Then Buy("b",AtMarket); } if MarketPosition == -1 Then { if CrossUp(c,mav) Then ExitShort("sx",AtMarket); if L < DayLow(0)[1] and L[1] != DayLow(0)[1] Then { var1 = var1+1; if var1 == 3 Then ExitShort("sx1"); } } Else var1 = 0; if MarketPosition == 1 Then { if CrossDown(c,mav) Then ExitLong("bx",AtMarket); if H > DayHigh(0)[1] and H[1] != DayHigh(0)[1] Then { var2 = var2+1; if var2 == 3 Then ExitLong("bx1"); } } Else Var2 = 0; SetStopEndofday(151500); /시스템B var : T(0),S(0),mav(0); mav = ma(c,20); if Bdate != Bdate[1] Then { T = 0; S = 0; if L > mav Then T = -1; if H < mav Then T = 1; } if T == -1 and CrossDown(C,mav) Then { S = S+1; if S == 2 Then Sell(); } if T == 1 and CrossUp(C,mav) Then { S = S+1; if S == 2 Then Buy(); } if MarketPosition == 1 and Bdate == Bdate[1] and C < DayLow(0)[1] Then ExitLong("bx",AtMarket); if MarketPosition == -1 and Bdate == Bdate[1] and C > DayHigh(0)[1] Then ExitShort("sx",AtMarket); SetStopEndofday(151500);