커뮤니티

수식수정좀부탁드립니다

프로필 이미지
백억이
2021-09-06 20:55:44
747
글번호 152062
답변완료
아래지표중 일괄매도 변수조건조정좀할수잇게해주세요 지금진입조건이 엔벨로프20-3하단진입이고 일괄매도가20-3중앙선돌파시일괄매도로되잇잔아요 이일괄매도조건을예를들어 30-5상향선상향돌파시 일괄매도 이런식으로 조건수정좀하게해주세요 Input : Period(20), Percent(3); input : M1(10000),M2(10000),M3(20000),M4(40000),M5(80000),M6(160000),M7(320000),M8(640000),M9(1280000),M10(2560000); var : center(0),UPline(0),DNline(0); center = ma(C, Period); UPline = EnvelopeUp(Period, Percent); Dnline = EnvelopeDown(Period, Percent); if MarketPosition == 0 and CrossDown(C,DnLine) Then Buy("b1",OnClose,DEF,M1/C); if MarketPosition == 1 Then { if CurrentEntries == 1 Then Buy("b2",AtLimit,AvgEntryPrice*0.98,M2/min(nextbaropen,AvgEntryPrice*0.98)); if CurrentEntries == 2 Then Buy("b3",AtLimit,AvgEntryPrice*0.95,M3/min(nextbaropen,AvgEntryPrice*0.95)); if CurrentEntries == 3 Then Buy("b4",AtLimit,AvgEntryPrice*0.90,M4/min(nextbaropen,AvgEntryPrice*0.90)); if CurrentEntries == 4 Then Buy("b5",AtLimit,AvgEntryPrice*0.85,M5/min(nextbaropen,AvgEntryPrice*0.85)); if CurrentEntries == 5 Then Buy("b6",AtLimit,AvgEntryPrice*0.80,M6/min(nextbaropen,AvgEntryPrice*0.80)); if CurrentEntries == 6 Then Buy("b7",AtLimit,AvgEntryPrice*0.75,M7/min(nextbaropen,AvgEntryPrice*0.75)); if CurrentEntries == 7 Then Buy("b8",AtLimit,AvgEntryPrice*0.70,M8/min(nextbaropen,AvgEntryPrice*0.70)); if CurrentEntries == 8 Then Buy("b9",AtLimit,AvgEntryPrice*0.65,M9/min(nextbaropen,AvgEntryPrice*0.65)); if CurrentEntries == 9 Then Buy("b10",AtLimit,AvgEntryPrice*0.60,M10/min(nextbaropen,AvgEntryPrice*0.60)); if CrossUp(c,center) Then <<<<<<<요기이매도조건변수기간수정좀하게해주세요 ExitLong(); if CurrentContracts > CurrentContracts[1] Then { if LatestEntryName(0) == "b4" Then Var4 = LatestEntryPrice(0); if LatestEntryName(0) == "b5" Then Var5 = LatestEntryPrice(0); if LatestEntryName(0) == "b6" Then Var6 = LatestEntryPrice(0); if LatestEntryName(0) == "b7" Then Var7 = LatestEntryPrice(0); if LatestEntryName(0) == "b8" Then Var8 = LatestEntryPrice(0); if LatestEntryName(0) == "b9" Then Var9 = LatestEntryPrice(0); if LatestEntryName(0) == "b10" Then Var10 = LatestEntryPrice(0); } if CurrentContracts < CurrentContracts[1] Then { if LatestExitName(0) == "bx4" Then Var4 = 0; if LatestExitName(0) == "bx5" Then Var5 = 0; if LatestExitName(0) == "bx6" Then Var6 = 0; if LatestExitName(0) == "bx7" Then Var7 = 0; if LatestExitName(0) == "bx8" Then Var8 = 0; if LatestExitName(0) == "bx9" Then Var9 = 0; if LatestExitName(0) == "bx10" Then Var10 = 0; } if var4 > 0 Then ExitLong("bx4",AtLimit,Var4*1.05,"b4"); if var5 > 0 Then ExitLong("bx5",AtLimit,Var5*1.05,"b5"); if var6 > 0 Then ExitLong("bx6",AtLimit,Var6*1.05,"b6"); if var7 > 0 Then ExitLong("bx7",AtLimit,Var7*1.05,"b7"); if var8 > 0 Then ExitLong("bx8",AtLimit,Var8*1.05,"b8"); if var9 > 0 Then ExitLong("bx9",AtLimit,Var9*1.05,"b9"); if var10 > 0 Then ExitLong("bx10",AtLimit,Var10*1.05,"b10"); } Else { var4 = 0; var5 = 0; var6 = 0; var7 = 0; var8 = 0; var9 = 0; var10 = 0; }
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2021-09-07 09:35:23

안녕하세요 예스스탁입니다. 진입과 청산에 사용되는 엔벨로프를 별도로 분리해 드립니다. 청산에 사용되는 엔벨로프는 xPeriod(30), xPercent(5)로 기간 및 % 지정하시면 됩니다. 상/중/하단선은 외부변수로 지정하지 못합니다. 수식안에서 직접 변수명을 교체하셔야 합니다. Input : Period(20), Percent(3); Input : xPeriod(30), xPercent(5); input : M1(10000),M2(10000),M3(20000),M4(40000),M5(80000),M6(160000),M7(320000),M8(640000),M9(1280000),M10(2560000); var : center(0),UPline(0),DNline(0); var : xcenter(0),xUPline(0),xDNline(0); center = ma(C, Period); UPline = EnvelopeUp(Period, Percent); Dnline = EnvelopeDown(Period, Percent); xcenter = ma(C, xPeriod); xUPline = EnvelopeUp(xPeriod, xPercent); xDnline = EnvelopeDown(xPeriod, xPercent); if MarketPosition == 0 and CrossDown(C,DnLine) Then Buy("b1",OnClose,DEF,M1/C); if MarketPosition == 1 Then { if CurrentEntries == 1 Then Buy("b2",AtLimit,AvgEntryPrice*0.98,M2/min(nextbaropen,AvgEntryPrice*0.98)); if CurrentEntries == 2 Then Buy("b3",AtLimit,AvgEntryPrice*0.95,M3/min(nextbaropen,AvgEntryPrice*0.95)); if CurrentEntries == 3 Then Buy("b4",AtLimit,AvgEntryPrice*0.90,M4/min(nextbaropen,AvgEntryPrice*0.90)); if CurrentEntries == 4 Then Buy("b5",AtLimit,AvgEntryPrice*0.85,M5/min(nextbaropen,AvgEntryPrice*0.85)); if CurrentEntries == 5 Then Buy("b6",AtLimit,AvgEntryPrice*0.80,M6/min(nextbaropen,AvgEntryPrice*0.80)); if CurrentEntries == 6 Then Buy("b7",AtLimit,AvgEntryPrice*0.75,M7/min(nextbaropen,AvgEntryPrice*0.75)); if CurrentEntries == 7 Then Buy("b8",AtLimit,AvgEntryPrice*0.70,M8/min(nextbaropen,AvgEntryPrice*0.70)); if CurrentEntries == 8 Then Buy("b9",AtLimit,AvgEntryPrice*0.65,M9/min(nextbaropen,AvgEntryPrice*0.65)); if CurrentEntries == 9 Then Buy("b10",AtLimit,AvgEntryPrice*0.60,M10/min(nextbaropen,AvgEntryPrice*0.60)); if CrossUp(c,xUPline) Then ExitLong(); if CurrentContracts > CurrentContracts[1] Then { if LatestEntryName(0) == "b4" Then Var4 = LatestEntryPrice(0); if LatestEntryName(0) == "b5" Then Var5 = LatestEntryPrice(0); if LatestEntryName(0) == "b6" Then Var6 = LatestEntryPrice(0); if LatestEntryName(0) == "b7" Then Var7 = LatestEntryPrice(0); if LatestEntryName(0) == "b8" Then Var8 = LatestEntryPrice(0); if LatestEntryName(0) == "b9" Then Var9 = LatestEntryPrice(0); if LatestEntryName(0) == "b10" Then Var10 = LatestEntryPrice(0); } if CurrentContracts < CurrentContracts[1] Then { if LatestExitName(0) == "bx4" Then Var4 = 0; if LatestExitName(0) == "bx5" Then Var5 = 0; if LatestExitName(0) == "bx6" Then Var6 = 0; if LatestExitName(0) == "bx7" Then Var7 = 0; if LatestExitName(0) == "bx8" Then Var8 = 0; if LatestExitName(0) == "bx9" Then Var9 = 0; if LatestExitName(0) == "bx10" Then Var10 = 0; } if var4 > 0 Then ExitLong("bx4",AtLimit,Var4*1.05,"b4"); if var5 > 0 Then ExitLong("bx5",AtLimit,Var5*1.05,"b5"); if var6 > 0 Then ExitLong("bx6",AtLimit,Var6*1.05,"b6"); if var7 > 0 Then ExitLong("bx7",AtLimit,Var7*1.05,"b7"); if var8 > 0 Then ExitLong("bx8",AtLimit,Var8*1.05,"b8"); if var9 > 0 Then ExitLong("bx9",AtLimit,Var9*1.05,"b9"); if var10 > 0 Then ExitLong("bx10",AtLimit,Var10*1.05,"b10"); } Else { var4 = 0; var5 = 0; var6 = 0; var7 = 0; var8 = 0; var9 = 0; var10 = 0; } 즐거운 하루되세요 > 백억이 님이 쓴 글입니다. > 제목 : 수식수정좀부탁드립니다 > 아래지표중 일괄매도 변수조건조정좀할수잇게해주세요 지금진입조건이 엔벨로프20-3하단진입이고 일괄매도가20-3중앙선돌파시일괄매도로되잇잔아요 이일괄매도조건을예를들어 30-5상향선상향돌파시 일괄매도 이런식으로 조건수정좀하게해주세요 Input : Period(20), Percent(3); input : M1(10000),M2(10000),M3(20000),M4(40000),M5(80000),M6(160000),M7(320000),M8(640000),M9(1280000),M10(2560000); var : center(0),UPline(0),DNline(0); center = ma(C, Period); UPline = EnvelopeUp(Period, Percent); Dnline = EnvelopeDown(Period, Percent); if MarketPosition == 0 and CrossDown(C,DnLine) Then Buy("b1",OnClose,DEF,M1/C); if MarketPosition == 1 Then { if CurrentEntries == 1 Then Buy("b2",AtLimit,AvgEntryPrice*0.98,M2/min(nextbaropen,AvgEntryPrice*0.98)); if CurrentEntries == 2 Then Buy("b3",AtLimit,AvgEntryPrice*0.95,M3/min(nextbaropen,AvgEntryPrice*0.95)); if CurrentEntries == 3 Then Buy("b4",AtLimit,AvgEntryPrice*0.90,M4/min(nextbaropen,AvgEntryPrice*0.90)); if CurrentEntries == 4 Then Buy("b5",AtLimit,AvgEntryPrice*0.85,M5/min(nextbaropen,AvgEntryPrice*0.85)); if CurrentEntries == 5 Then Buy("b6",AtLimit,AvgEntryPrice*0.80,M6/min(nextbaropen,AvgEntryPrice*0.80)); if CurrentEntries == 6 Then Buy("b7",AtLimit,AvgEntryPrice*0.75,M7/min(nextbaropen,AvgEntryPrice*0.75)); if CurrentEntries == 7 Then Buy("b8",AtLimit,AvgEntryPrice*0.70,M8/min(nextbaropen,AvgEntryPrice*0.70)); if CurrentEntries == 8 Then Buy("b9",AtLimit,AvgEntryPrice*0.65,M9/min(nextbaropen,AvgEntryPrice*0.65)); if CurrentEntries == 9 Then Buy("b10",AtLimit,AvgEntryPrice*0.60,M10/min(nextbaropen,AvgEntryPrice*0.60)); if CrossUp(c,center) Then <<<<<<<요기이매도조건변수기간수정좀하게해주세요 ExitLong(); if CurrentContracts > CurrentContracts[1] Then { if LatestEntryName(0) == "b4" Then Var4 = LatestEntryPrice(0); if LatestEntryName(0) == "b5" Then Var5 = LatestEntryPrice(0); if LatestEntryName(0) == "b6" Then Var6 = LatestEntryPrice(0); if LatestEntryName(0) == "b7" Then Var7 = LatestEntryPrice(0); if LatestEntryName(0) == "b8" Then Var8 = LatestEntryPrice(0); if LatestEntryName(0) == "b9" Then Var9 = LatestEntryPrice(0); if LatestEntryName(0) == "b10" Then Var10 = LatestEntryPrice(0); } if CurrentContracts < CurrentContracts[1] Then { if LatestExitName(0) == "bx4" Then Var4 = 0; if LatestExitName(0) == "bx5" Then Var5 = 0; if LatestExitName(0) == "bx6" Then Var6 = 0; if LatestExitName(0) == "bx7" Then Var7 = 0; if LatestExitName(0) == "bx8" Then Var8 = 0; if LatestExitName(0) == "bx9" Then Var9 = 0; if LatestExitName(0) == "bx10" Then Var10 = 0; } if var4 > 0 Then ExitLong("bx4",AtLimit,Var4*1.05,"b4"); if var5 > 0 Then ExitLong("bx5",AtLimit,Var5*1.05,"b5"); if var6 > 0 Then ExitLong("bx6",AtLimit,Var6*1.05,"b6"); if var7 > 0 Then ExitLong("bx7",AtLimit,Var7*1.05,"b7"); if var8 > 0 Then ExitLong("bx8",AtLimit,Var8*1.05,"b8"); if var9 > 0 Then ExitLong("bx9",AtLimit,Var9*1.05,"b9"); if var10 > 0 Then ExitLong("bx10",AtLimit,Var10*1.05,"b10"); } Else { var4 = 0; var5 = 0; var6 = 0; var7 = 0; var8 = 0; var9 = 0; var10 = 0; }