예스스탁
예스스탁 답변
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;
}