커뮤니티

문의드립니다.

프로필 이미지
카르마다
2024-09-23 04:34:48
558
글번호 183635
답변완료
1. 국선에서 5계약을 진입하는데 아래 청산식에서 최소수익 달성후 수익감소시 청산을 1개씩만 하고 싶은데 B_2 청산이 한번 나오고 그 이후 봉에서 다시 B_2 청산이 나옵니다. 매수든 매도든 1개 진입신호에서 아래 청산식은 딱 1개씩만 적용되게 하고 싶습니다. 수정 부탁 드립니다. var : 최소수익1(30),수익감소1(15); var : 최소수익2(50),수익감소2(25); var : HH(0),LL(0); if MarketPosition == 1 Then { HH = Highest(H,BarsSinceEntry); if HH >= EntryPrice+PriceScale*최소수익1 and HH < EntryPrice+PriceScale*최소수익2 Then ExitLong("B_1",AtStop,HH-PriceScale*수익감소1,"",1,1); if HH >= EntryPrice+PriceScale*최소수익2 Then ExitLong("B_2",AtStop,HH-PriceScale*수익감소2,"",1,1); } if MarketPosition == -1 Then { LL = lowest(L,BarsSinceEntry); if LL <= EntryPrice-PriceScale*최소수익1 and LL > EntryPrice-PriceScale*최소수익2 Then ExitShort("S_1",AtStop,LL+PriceScale*수익감소1,"",1,1); if LL <= EntryPrice-PriceScale*최소수익2 Then ExitShort("S_2",AtStop,LL+PriceScale*수익감소2,"",1,1); } 2. 그리고 atstop 대신에 atlimit를 쓰면 시뮬레이션에서 수익이 더 많이 나오던데 이유도 설명 부탁드립니다. 3. 음봉 또는 양봉이 연속해서 10개 나오면 현재 계약수에 관계없이 전량 청산하는 식도 부탁드립니다.
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2024-09-23 15:07:39

안녕하세요 예스스탁입니다. 1 var : 최소수익1(30),수익감소1(15); var : 최소수익2(50),수익감소2(25); var : HH(0),LL(0); var : BX1(False),BX2(False); var : SX1(False),SX2(False); if MarketPosition == 1 Then { HH = Highest(H,BarsSinceEntry); if CurrentContracts < CurrentContracts[1] Then { if LatestExitName(0) == "B_1" Then BX1 = true; if LatestExitName(0) == "B_2" Then BX2 = true; } if BX1 == true and HH >= EntryPrice+PriceScale*최소수익1 and HH < EntryPrice+PriceScale*최소수익2 Then ExitLong("B_1",AtStop,HH-PriceScale*수익감소1,"",1,1); if BX2 == true and HH >= EntryPrice+PriceScale*최소수익2 Then ExitLong("B_2",AtStop,HH-PriceScale*수익감소2,"",1,1); } Else { BX1 = False; BX2 = False; } if MarketPosition == -1 Then { LL = lowest(L,BarsSinceEntry); if CurrentContracts < CurrentContracts[1] Then { if LatestExitName(0) == "S_1" Then SX1 = true; if LatestExitName(0) == "S_2" Then SX2 = true; } if SX1 == False and LL <= EntryPrice-PriceScale*최소수익1 and LL > EntryPrice-PriceScale*최소수익2 Then ExitShort("S_1",AtStop,LL+PriceScale*수익감소1,"",1,1); if SX2 == False and LL <= EntryPrice-PriceScale*최소수익2 Then ExitShort("S_2",AtStop,LL+PriceScale*수익감소2,"",1,1); } Else { SX1 = False; SX2 = False; } 2 현재 청산식이 AtStop으로 수익이 감소할때 청산하게 되어 있는데 AtLimit으로 하면 단지 지정한 값이면 청산으로 익절과 비슷한 개념이 됩니다. 3 if MarketPosition == 1 and CountIf(C<O,10) == 10 Then ExitLong(); if MarketPosition == -1 and CountIf(C>O,10) == 10 Then ExitShort(); 즐거운 하루되세요 > 카르마다 님이 쓴 글입니다. > 제목 : 문의드립니다. > 1. 국선에서 5계약을 진입하는데 아래 청산식에서 최소수익 달성후 수익감소시 청산을 1개씩만 하고 싶은데 B_2 청산이 한번 나오고 그 이후 봉에서 다시 B_2 청산이 나옵니다. 매수든 매도든 1개 진입신호에서 아래 청산식은 딱 1개씩만 적용되게 하고 싶습니다. 수정 부탁 드립니다. var : 최소수익1(30),수익감소1(15); var : 최소수익2(50),수익감소2(25); var : HH(0),LL(0); if MarketPosition == 1 Then { HH = Highest(H,BarsSinceEntry); if HH >= EntryPrice+PriceScale*최소수익1 and HH < EntryPrice+PriceScale*최소수익2 Then ExitLong("B_1",AtStop,HH-PriceScale*수익감소1,"",1,1); if HH >= EntryPrice+PriceScale*최소수익2 Then ExitLong("B_2",AtStop,HH-PriceScale*수익감소2,"",1,1); } if MarketPosition == -1 Then { LL = lowest(L,BarsSinceEntry); if LL <= EntryPrice-PriceScale*최소수익1 and LL > EntryPrice-PriceScale*최소수익2 Then ExitShort("S_1",AtStop,LL+PriceScale*수익감소1,"",1,1); if LL <= EntryPrice-PriceScale*최소수익2 Then ExitShort("S_2",AtStop,LL+PriceScale*수익감소2,"",1,1); } 2. 그리고 atstop 대신에 atlimit를 쓰면 시뮬레이션에서 수익이 더 많이 나오던데 이유도 설명 부탁드립니다. 3. 음봉 또는 양봉이 연속해서 10개 나오면 현재 계약수에 관계없이 전량 청산하는 식도 부탁드립니다.