커뮤니티

함수요청

프로필 이미지
흰둥이아빠
2023-09-19 17:19:17
1048
글번호 172581
답변완료
안녕하세요? 아래 스크립트는 글번호 83793번에서 답변 주신 것을 응용하였습니다. 1번 신호는 2번 신호보다 우선하여 나오게 하고 싶습니다. 즉 s1은 b2에 우선합니다. b1은 s2에 우선합니다. s1이 발생하지 않았는데 b2가 먼저 나오게 하지 않게 하고자 합니다. s1이 발생된 후에는 b2가 나올 수 있습니다. b1이 발생하지 않았는데 s2가 먼저 나오게 하지 않게 하고자 합니다. b1이 발생된 후에는 s2가 나올 수 있습니다. 당일 매수는 최대 1번, 매도도 1번, 도합 2번까지 진입이 가능하게 하고자 합니다. var : entry(0); var1 = ma(c,100); if Bdate != Bdate[1] Then { entry = 0; value1 = var1; } if (MarketPosition != 0 and MarketPosition != MarketPosition[1]) or (MarketPosition == MarketPosition[1] and TotalTrades > TotalTrades[1]) Then entry = entry+1; if DayIndex < 7 Then1 { Var2 = DayHigh; Var3 = DayLow; } if entry < 1 Then { if MarketPosition >= 0 and DayOpen < DayClose(1) and value1 > DayOpen Then { if DayIndex >= 7 and CrossDown(C,Var3) Then Sell("s1",AtMarket); if CrossUp(C,Var2) Then Buy("b2",AtMarket); if CrossDown(c,var1)and var1 < Var3 Then ExitLong("Cx",AtMarket); } } if MarketPosition <= 0 and DayOpen > DayClose(1) and value1 < DayOpen Then { if DayIndex >= 7 and CrossUp(C,Var2) Then Buy("b1",AtMarket); if CrossDown(C,Var3) Then Sell("s2",AtMarket); if CrossUp(c,var1) and var1 > Var2 Then ExitShort("Px",AtMarket); } SetStopEndofday(151900);
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2023-09-20 11:19:38

안녕하세요 예스스탁입니다. var : b(0),s(0); var1 = ma(c,100); if Bdate != Bdate[1] Then { b = 0; s = 0; value1 = var1; } if DayIndex < 7 Then { Var2 = DayHigh; Var3 = DayLow; } if MarketPosition == 1 and MarketPosition != MarketPosition[1] Then b = b+1; if MarketPosition == -1 and MarketPosition != MarketPosition[1] Then s = s+1; if MarketPosition >= 0 and DayOpen < DayClose(1) and value1 > DayOpen Then { if s < 1 and DayIndex >= 7 and CrossDown(C,Var3) Then Sell("s1",AtMarket); if b < 1 and s == 1 and CrossUp(C,Var2) Then Buy("b2",AtMarket); if CrossDown(c,var1)and var1 < Var3 Then ExitLong("Cx",AtMarket); } if MarketPosition <= 0 and DayOpen > DayClose(1) and value1 < DayOpen Then { if b < 1 and DayIndex >= 7 and CrossUp(C,Var2) Then Buy("b1",AtMarket); if s < 1 and b == 1 and CrossDown(C,Var3) Then Sell("s2",AtMarket); if CrossUp(c,var1) and var1 > Var2 Then ExitShort("Px",AtMarket); } SetStopEndofday(151900); 즐거운 하루되세요 > 흰둥이아빠 님이 쓴 글입니다. > 제목 : 함수요청 > 안녕하세요? 아래 스크립트는 글번호 83793번에서 답변 주신 것을 응용하였습니다. 1번 신호는 2번 신호보다 우선하여 나오게 하고 싶습니다. 즉 s1은 b2에 우선합니다. b1은 s2에 우선합니다. s1이 발생하지 않았는데 b2가 먼저 나오게 하지 않게 하고자 합니다. s1이 발생된 후에는 b2가 나올 수 있습니다. b1이 발생하지 않았는데 s2가 먼저 나오게 하지 않게 하고자 합니다. b1이 발생된 후에는 s2가 나올 수 있습니다. 당일 매수는 최대 1번, 매도도 1번, 도합 2번까지 진입이 가능하게 하고자 합니다. var : entry(0); var1 = ma(c,100); if Bdate != Bdate[1] Then { entry = 0; value1 = var1; } if (MarketPosition != 0 and MarketPosition != MarketPosition[1]) or (MarketPosition == MarketPosition[1] and TotalTrades > TotalTrades[1]) Then entry = entry+1; if DayIndex < 7 Then1 { Var2 = DayHigh; Var3 = DayLow; } if entry < 1 Then { if MarketPosition >= 0 and DayOpen < DayClose(1) and value1 > DayOpen Then { if DayIndex >= 7 and CrossDown(C,Var3) Then Sell("s1",AtMarket); if CrossUp(C,Var2) Then Buy("b2",AtMarket); if CrossDown(c,var1)and var1 < Var3 Then ExitLong("Cx",AtMarket); } } if MarketPosition <= 0 and DayOpen > DayClose(1) and value1 < DayOpen Then { if DayIndex >= 7 and CrossUp(C,Var2) Then Buy("b1",AtMarket); if CrossDown(C,Var3) Then Sell("s2",AtMarket); if CrossUp(c,var1) and var1 > Var2 Then ExitShort("Px",AtMarket); } SetStopEndofday(151900);