답변완료
Setstoploss 수식 적용 관련하여 질문드립니다.
if ATR(5) > 3 and ma(ATR(5),5) > ma(ATR(5),5)[2] then {
If MarketPosition() <> -1 Then
buy("l-buy", AtStop , c + (0.5 * ATR(5)));
}
if MarketPosition() <> -1 Then {
SetStopTrailing(0.4, 1.3, PercentStoP,1);
}
질문 1. 일봉선물 차트에서 위 시스템식을 적용하면,
1-1 지정가 매수가 된다음
1-2 SetStopTrailing 으로 매수청산이 수행되는 것을 확인하였습니다.
가. 그런데 어떤 봉에서는 별도의 매수신호 없이 종가기준으로 매수상태로 바뀌어 져 있음을 확인되어 당황스럽고 자동매매에 문제가 있음을 확인하여 문의드립니다.
나. 이런 문제를 해결하기위하여 1-2의 SetStopTrailing 으로 매수청산되는 가격을 알고 싶습니다. 매수청산되는 가격을 찾는 수식 알려주세요
다시말하면 매수청산되는 가격을 변수에 저장하고 싶습니다.
다. 또한 일봉차트에서 3시30분에 매수청산가격보다 0.7% 높을 경우에 재매수할 수 있는 수식도 알려주세요
( 차트신호를 일치시키기 위한 별도수식 추가해야 자동매매가 가능하기 때문입니다.)
도와 주심에 항상 감사드립니다.
2021-01-05
594
글번호 145100
시스템
답변완료
문위 드립니다
1,,양봉종가에 매도신호
2,,,음봉종가에 매수신호
3, 파라볼릭종가 지표를 시용해서
매수면 음봉에 매수신호,,,,매도면 양봉에 매도신호 부탁드려요
부탁드려요
2021-01-05
501
글번호 145099
시스템
답변완료
지그재그 번호설정
안녕하세요 관리자님 우선 감사의 말씀 드립니다.
아래 지그재그 식에
제가 원하는 지그재그 hi나 lo를 1번으로 지정해서 표시 되면서
시스템에서도 몇번에서는 매수 몇번에서는 매도 주문이 들어 가게 만들고 싶은데요
가능 한지 가능하면 어떻게 해야 되는지 부탁 드립니다.
감사 합니다.
Input:chngRate(0.1);
Var:j(0),lastHiVal(0),lastLoVal(0),turnPntBit(""),TL1(0);
Array:valArr[10](0),barArr[10](0),turnPntArr[10]("");
For j = 0 To 9
{
barArr[j] = barArr[j] + 1;
}
Condition1 = Min(valArr[1],valArr[2]) * (1 + (chngRate/100)) < H and lastHiVal < H;
Condition2 = Max(valArr[1],valArr[2]) * (1 - (chngRate/100)) > L and (lastLoVal > L || lastLoVal == 0);
If Condition1 Then { lastHiVal = H; lastLoVal = 0; }
If Condition2 Then { lastLoVal = L; lastHiVal = 0; }
turnPntBit = "";
If Condition1 and Condition2 Then
{
If Max(valArr[1],valArr[2]) < H and Min(valArr[1],valArr[2]) > L Then
turnPntBit = "HiLo";
Else If Max(valArr[1],valArr[2]) < H Then turnPntBit = "Hi";
Else If Min(valArr[1],valArr[2]) > L Then turnPntBit = "Lo";
}
Else If Condition1 Then turnPntBit = "Hi";
Else If Condition2 Then turnPntBit = "Lo";
If turnPntBit <> "" Then
{
If turnPntBit == "HiLo" Then
{
valArr[1] = IFF(turnPntArr[1] == "Hi",H,L);
barArr[1] = 0;
TL_SetEnd(TL1,sDate[barArr[1]],sTime[barArr[1]],valArr[1]);
If turnPntArr[1] == "Hi" Then
turnPntBit = "Lo";
Else
turnPntBit = "Hi";
}
If turnPntBit <> turnPntArr[1] Then
{
for j = 8 downto 1
{
valArr[j+1] = valArr[j];
barArr[j+1] = barArr[j];
turnPntArr[j+1] = turnPntArr[j];
}
}
If turnPntBit <> turnPntArr[1] or
(turnPntBit == turnPntArr[1] and
((turnPntBit == "Hi" and valArr[1] < H) or
(turnPntBit == "Lo" and valArr[1] > L))) Then
{
valArr[1] = IFF(turnPntBit == "Hi",H,L);
barArr[1] = 0;
turnPntArr[1] = turnPntBit;
If turnPntArr[1][1] <> turnPntArr[1][0] Then
{
TL1 = TL_New(sDate[barArr[2]],sTime[barArr[2]],valArr[2],sDate[barArr[1]],sTime[barArr[1]],valArr[1]);
if turnPntArr[1][0]=="Hi" Then{
buy();
}
if turnPntArr[1][0] =="Lo" Then{
sell();
}
}
Else
TL_SetEnd(TL1,sDate[barArr[1]],sTime[barArr[1]],valArr[1]);
}
}
TL_SetSize(TL1,1);
if turnPntArr[1][0] == "Hi" Then
TL_SetColor(TL1,RED);
Else
TL_SetColor(TL1,BLUE);
2021-01-04
675
글번호 145097
지표
답변완료
시스템 수정
안녕하세요
동일한 시스템으로 자주 질문드려 죄송합니다.
수식에 대한 이해도가 떨어지다보니
정확히 어떤부분에 문제가 있어서 제가 의도한 대로 동작하지 않는지
찾아내기가 쉽지 않네요
매수 4,5,6 매수신호 이후에 제가 원하는 위치에서 매수 4,5,6이 나오지 않아서,,
아마 매수 4,5,6 신호 이후에는 더 하락해야 매수가 되도록 설정되어 있는것이
아닌가 싶은데요,,, 그것이 맞다면 변경부탁드릴게요
감사합니다.
INPUT : 매수(0), 매도조건(1);
var : cond(False),LP(0);
var1 = ma(C,3);
var2 = ma(C,5);
var3 = ma(C,10);
var4 = ma(C,60);
value1 = 0;
if value1 == 0 and C < Var4 and CrossDown(c,var3) and cond == False Then
{
if MarketPosition == 0 or (MarketPosition == 1 and C < LP and Condition1 == False) Then
{
value1 = 1;
Buy("매수3");
}
}
if value1 == 0 and C < var4 and CrossDown(c,var2) and cond == False Then
{
if MarketPosition == 0 or (MarketPosition == 1 and C < LP and Condition1 == False) Then
{
value1 = 1;
Buy("매수2");
}
}
if value1 == 0 and C < Var4 and CrossDown(c,var1) and cond == False Then
{
if MarketPosition == 0 or (MarketPosition == 1 and C < LP and Condition1 == False) Then
{
value1 = 1;
Buy("매수1");
}
}
if MarketPosition == 1 Then
{
if 매수 == 1 Then
Cond = true;
if CurrentContracts > CurrentContracts[1] and LatestEntryName(0) == "매수1" Then
{
LP = LatestEntryPrice(0);
Condition1 = true;
}
if CurrentContracts > CurrentContracts[1] and LatestEntryName(0) == "매수2" Then
{
LP = LatestEntryPrice(0);
Condition2 = true;
}
if CurrentContracts > CurrentContracts[1] and LatestEntryName(0) == "매수3" Then
{
LP = LatestEntryPrice(0);
Condition3 = true;
}
if CurrentContracts > CurrentContracts[1] and LatestEntryName(0) == "매수4" Then
{
LP = LatestEntryPrice(0);
Condition4 = true;
}
if CurrentContracts > CurrentContracts[1] and LatestEntryName(0) == "매수5" Then
{
LP = LatestEntryPrice(0);
Condition5 = true;
}
if CurrentContracts > CurrentContracts[1] and LatestEntryName(0) == "매수6" Then
{
LP = LatestEntryPrice(0);
Condition6 = true;
}
if Condition3 == true Then
{
if Condition4 == False Then
Buy("매수4",AtLimit,LP*0.97);
if Condition4 == true and Condition5 == False Then
Buy("매수5",AtLimit,LP*0.95);
if Condition4 == true and Condition5 == true and Condition6 == False Then
Buy("매수6",AtLimit,LP*0.90);
}
if 매도조건 == 1 Then
{
ExitLong("bx1",AtLimit,AvgEntryPrice*1.05,"",Floor(MaxContracts*0.2),1);
ExitLong("bx2",AtLimit,AvgEntryPrice*1.08,"",Floor(MaxContracts*0.5),1);
ExitLong("bx3",AtLimit,AvgEntryPrice*1.10);
}
if 매도조건 == 2 Then
{
ExitLong("bx",AtLimit,AvgEntryPrice*1.15);
}
}
Else
{
Condition1 = False;
Condition2 = False;
Condition3 = False;
}
2021-01-04
720
글번호 145096
시스템
답변완료
시스템수식 변환부탁드립니다.
아래 수식을 2가지 조건으로 변환부탁드립니다.
1. 빨강추세선이 아래(black) 검정저항선에 터치한 다음 다음봉 시초가 진입
파랑추세선이 위(magenta) 저항선에 터치한 다음 다음봉 시초가 진입
빨강추세선이 위(magenta) 저항선에 터치할때 청산
파랑추세선이 아래(black) 검정저항선에 터치할때 청산
2. 봉 기준으로 진입은 아래(black)는 매수, 위(magenta)는 매도 터치시 다음봉 시초가 진입
청산은 반대방향으로 위(magenta) 터치시 매도, 아래(black) 터치시 매수로 바로 청산
input : left(15), right(10), Period(100);
var : swing_low(0),swing_high(0),Dir(0);
swing_low = SwingLow(1, Low, left, right, Left+Right+1);
swing_high = SwingHigh(1, High, left, right,Left+Right+1);
if (Dir >= 0 and swing_low != -1 ) Then
{
Dir = -1;
var11 = sdate[right];
var12 = STime[right];
var13 = Low[right];
var21 = var11[1];
var22 = var12[1];
var23 = var13[1];
var31 = var21[1];
var32 = var22[1];
var33 = var23[1];
if var23 > 0 Then
{
TL_SetExtRight(value1,False);
Value1 = TL_New(var21,var22,var23,var11,var12,var13);#최근 저점-저점 추세선
TL_SetExtRight(value1,true);
TL_SetColor(value1,BLACK);
TL_SetSize(value1,2);
}
if var53 > 0 Then
{
value5 = TL_New(var51,var52,var53,var11,var12,var13);#고점-저점 추세선
TL_SetColor(value5,BLUE);
TL_SetSize(value5,3);
}
}
if (Dir <= 0 and swing_high != -1 ) Then{
Dir = 1;
var51 = sdate[right];
var52 = STime[right];
var53 = high[right];
var61 = var51[1];
var62 = var52[1];
var63 = var53[1];
var71 = var61[1];
var72 = var62[1];
var73 = var63[1];
if var63 > 0 Then
{
TL_SetExtRight(value3,False);
value3 = TL_New(var61,var62,var63,var51,var52,var53);#최근 고점-고점 추세선
TL_SetExtRight(value3,true);
TL_SetColor(value3,MAGENTA);
TL_SetSize(value3,2);
}
if var53 > 0 Then
{
value5 = TL_New(var11,var12,var13,var51,var52,var53);#저점-고점 추세선
TL_SetColor(value5,RED);
TL_SetSize(value5,3);
}
}
if MarketPosition <= 0 and C > TL_GetValue(value1,sDate,sTime) and C[1] < TL_GetValue(value1,sDate[1],sTime[1]) Then
Buy();
if MarketPosition >= 0 and C < TL_GetValue(value3,sDate,sTime) and C[1] > TL_GetValue(value3,sDate[1],sTime[1]) Then
Sell();
2021-01-04
705
글번호 145094
시스템