커뮤니티

감사합니다.

프로필 이미지
회원
2014-01-05 21:15:03
183
글번호 71062
답변완료
항상 질문만 드려서 죄송 합니다. 현재 사용하는 시스템에 추가 하려고 합니다. 1] 매수 조건: 60과 120 이 골든크로스난 캔들을 기준으로 2~10봉 사이만 진입 하려 합니다. 즉 골든 나기전은 역배열이므로 진입이 안되고 정배열 이후 2~10 캔들 사이 에서만 진입을 허용하고 10캔들이 넘어가면 진입을 하지 않는거죠 예를들어 2~10 캔들 사이에 양봉 또는 거래량 등등 조건을 임의로 넣고 그조건에 맞을때만 매수인데 10캔들이 지나면 임의의 조건에 맞아도 진입을 하지 않는겁니다. 결국은 위 조건에 해당 하지 않으면 역배열 이후 다시 정배열된후 10캔들 안에 조건에 맞아야 진입하고 를 반복 하는 겁니다. 과거 글을 보구 혼자 해봤는데 10캔들 이후도 매수를 하더라구요 위의 내용으로 60과 120 이 골든난 시점 이후 눌림목에 매수하는 식을 부탁드립니다. 즉 현재봉을 기준으로 2봉전이 골든이었거나,3봉전이 골든이었거나 ~6봉전 까지 (2봉부터 6봉까지)골든 이후 첫양봉이면 매수를 수식으로 부탁 드립니다. 2] 진입별 수식을 사용 하는데 랭귀지 도움말을 보구 수정 했습니다. 그런데 맞는지 잘 모르겠어요 잘못된 부분이 있으면 바로 잡아주세요. 이상이 없으면 사용해도 되는지 그리고 0.5포인트 하락하면 청산한다는 뜻으로 알고 있는데 고점대비 몇% 하락하면으로 바꿀수 있나요? 사용하던 수식: if MarketPosition == 1 and IsEntryName("매수1") ==true Then{ if CodeCategoryEx == 11 and BasePrice < 50000 Then xvol = int(int((MaxContracts*0.5)/10)*10); Else Xvol = int(MaxContracts*0.5); ExitLong("BL13",AtStop,EntryPrice-PriceScale*4); if CurrentContracts == MaxContracts and highest(H,BarsSinceEntry) >= EntryPrice*1.15 Then exitlong("BX32",AtStop,highest(H,BarsSinceEntry)*0.95); 수정한 수식: if MarketPosition == 1 and IsEntryName("매수1") ==true Then{ if CodeCategoryEx == 11 and BasePrice < 50000 Then xvol = int(int((MaxContracts*0.5)/10)*10); Else Xvol = int(MaxContracts*0.5); ExitLong("BL13",AtStop,EntryPrice-PriceScale*4); if CurrentContracts == MaxContracts and Highest(H,BarsSinceEntry)>=EntryPrice*1.15 Then ExitLong("bx32",AtStop,Highest(H,BarsSinceEntry)-0.5 ,"매수1"); 3] 차트로 갭보정해서 사용 하던 것인데 불편하여 수식에서 갭보정을 넣어 사용 하려 합니다. 도움 주시면 감사하겠습니다. Input : Period(20),shortPeriod(30), middlePeriod(60),longPeriod(120),verylongPeriod(240),LPercent(102.5); Input : p(20),p1(60),p2(120); INPUTS: LENGTH1(60); VARS : DEMA1(0); value1 = wma(C, shortPeriod); value2 = wma(C, middlePeriod); value3 = wma(C, longPeriod); value4 = WMA(C, Period); value5= (highest(H,9)+lowest(L,9))/2; //전환 value6 = (highest(H,26)+lowest(L,26))/2; //기준 value7= (value5+value6)/2; //선행스팬1 value8= (Highest(H,52)+Lowest(L,52))/2; //선행스팬2 value9 = countif(var7 >= 99.20 and var8 < 102,20); value10 = countif(var8 >= 99.20 and var9 < 102,20); value11 = countif(var9 >= 99.20 and var10 < 102,20); value12 = wma(C, verylongPeriod); value13= EMA(EMa(C,LENGTH1),LENGTH1); var : dis(0),dis1(0),dis2(0),value(0), Xvol(0); var1 = WMA(c,60); var2 = WMA(c,120); var3 = countif(var1>var2,70); //정배열 var4 = (C-C[1])/C[1]*100; var5 = countif(var4<1.5,130); //130캔들이 1.5% 미만으로 움직임 var6 = highest(C,130); // 130 캔들 종가중 최고가 var7 = Disparity(20); var8 = Disparity(60); var9 = Disparity(120); var10 = Ma(V,20); // 20개 거래량 var11 = countif(var1<var2,100); //역배열 var12 = countif(var1<var2,150); //역배열 var13 = countif(var2>var3,35); //정배열 var14= EMA(C,LENGTH1); var15= DayIndex[1]; DEMA1 = var14*2-value13 ;#dema 너무 많아서 죄송 합니다. 항상 감사드립니다.
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2014-01-06 10:03:24

안녕하세요 예스스탁입니다. 1. var : cond(0),Upcnt(0),Ycnt(0); var1 = ma(c,60); var2 = ma(c,120); if crossup(var1,var2) Then{ cond = 1; upcnt = 0; Ycnt = 0; } if CrossDown(var1,var2) Then cond = -1; if cond == 1 Then{ upcnt = upcnt+1; if upcnt > 2 and upcnt <= 6 Then if C > O Then{ Ycnt = Ycnt+1; if Ycnt == 1 Then buy(); } } 2 식에 문제는 없습니다. 고점대비 X%하락하면 청산하고자 하시면 아래와 같이 수정하시면 됩니다. input : X(-3); var : Xvol(0); if MarketPosition == 1 and IsEntryName("매수1") == true Then{ if CodeCategoryEx == 11 and BasePrice < 50000 Then xvol = int(int((MaxContracts*0.5)/10)*10); Else Xvol = int(MaxContracts*0.5); ExitLong("BL13",AtStop,EntryPrice-PriceScale*4); if CurrentContracts == MaxContracts and Highest(H,BarsSinceEntry) >= EntryPrice*1.15 Then ExitLong("bx32",AtStop,Highest(H,BarsSinceEntry)*(1+X/100)); } 3. Input : Period(20),shortPeriod(30), middlePeriod(60),longPeriod(120),verylongPeriod(240),LPercent(102.5); Input : p(20),p1(60),p2(120); INPUTS: LENGTH1(60); VARS : DEMA1(0); var : dis(0),dis1(0),dis2(0),value(0), Xvol(0); var : sumGap(0), gap(0), GO(0), GH(0), GL(0), GC(0); if date!=date[1] then { // 날짜가 변경되는 봉에서 gap = Open-Close[1]; // 일간갭 sumGap = sumGap+gap; // 일간갭 누적 } GO = O - sumGap; // 시가에서 갭누적값을 차감 GH = H - sumGap; // 고가에서 갭누적값을 차감 GL = L - sumGap; // 저가에서 갭누적값을 차감 GC = C - sumGap; // 종가에서 갭누적값을 차감 value1 = wma(GC, shortPeriod); value2 = wma(GC, middlePeriod); value3 = wma(GC, longPeriod); value4 = WMA(GC, Period); value5= (highest(GH,9)+lowest(GL,9))/2; //전환 value6 = (highest(GH,26)+lowest(GL,26))/2; //기준 value7= (value5+value6)/2; //선행스팬1 value8= (Highest(GH,52)+Lowest(GL,52))/2; //선행스팬2 value9 = countif(var7 >= 99.20 and var8 < 102,20); value10 = countif(var8 >= 99.20 and var9 < 102,20); value11 = countif(var9 >= 99.20 and var10 < 102,20); value12 = wma(GC, verylongPeriod); value13= EMA(EMa(GC,LENGTH1),LENGTH1); var1 = WMA(GC,60); var2 = WMA(GC,120); var3 = countif(var1>var2,70); //정배열 var4 = (GC-GC[1])/GC[1]*100; var5 = countif(var4<1.5,130); //130캔들이 1.5% 미만으로 움직임 var6 = highest(GC,130); // 130 캔들 종가중 최고가 var7 = Disparity(20); var8 = Disparity(60); var9 = Disparity(120); var10 = Ma(V,20); // 20개 거래량 var11 = countif(var1<var2,100); //역배열 var12 = countif(var1<var2,150); //역배열 var13 = countif(var2>var3,35); //정배열 var14= EMA(GC,LENGTH1); var15= DayIndex[1]; DEMA1 = var14*2-value13 ;#dema 즐거운 하루되세요 > HI_h6***** 님이 쓴 글입니다. > 제목 : 감사합니다. > 항상 질문만 드려서 죄송 합니다. 현재 사용하는 시스템에 추가 하려고 합니다. 1] 매수 조건: 60과 120 이 골든크로스난 캔들을 기준으로 2~10봉 사이만 진입 하려 합니다. 즉 골든 나기전은 역배열이므로 진입이 안되고 정배열 이후 2~10 캔들 사이 에서만 진입을 허용하고 10캔들이 넘어가면 진입을 하지 않는거죠 예를들어 2~10 캔들 사이에 양봉 또는 거래량 등등 조건을 임의로 넣고 그조건에 맞을때만 매수인데 10캔들이 지나면 임의의 조건에 맞아도 진입을 하지 않는겁니다. 결국은 위 조건에 해당 하지 않으면 역배열 이후 다시 정배열된후 10캔들 안에 조건에 맞아야 진입하고 를 반복 하는 겁니다. 과거 글을 보구 혼자 해봤는데 10캔들 이후도 매수를 하더라구요 위의 내용으로 60과 120 이 골든난 시점 이후 눌림목에 매수하는 식을 부탁드립니다. 즉 현재봉을 기준으로 2봉전이 골든이었거나,3봉전이 골든이었거나 ~6봉전 까지 (2봉부터 6봉까지)골든 이후 첫양봉이면 매수를 수식으로 부탁 드립니다. 2] 진입별 수식을 사용 하는데 랭귀지 도움말을 보구 수정 했습니다. 그런데 맞는지 잘 모르겠어요 잘못된 부분이 있으면 바로 잡아주세요. 이상이 없으면 사용해도 되는지 그리고 0.5포인트 하락하면 청산한다는 뜻으로 알고 있는데 고점대비 몇% 하락하면으로 바꿀수 있나요? 사용하던 수식: if MarketPosition == 1 and IsEntryName("매수1") ==true Then{ if CodeCategoryEx == 11 and BasePrice < 50000 Then xvol = int(int((MaxContracts*0.5)/10)*10); Else Xvol = int(MaxContracts*0.5); ExitLong("BL13",AtStop,EntryPrice-PriceScale*4); if CurrentContracts == MaxContracts and highest(H,BarsSinceEntry) >= EntryPrice*1.15 Then exitlong("BX32",AtStop,highest(H,BarsSinceEntry)*0.95); 수정한 수식: if MarketPosition == 1 and IsEntryName("매수1") ==true Then{ if CodeCategoryEx == 11 and BasePrice < 50000 Then xvol = int(int((MaxContracts*0.5)/10)*10); Else Xvol = int(MaxContracts*0.5); ExitLong("BL13",AtStop,EntryPrice-PriceScale*4); if CurrentContracts == MaxContracts and Highest(H,BarsSinceEntry)>=EntryPrice*1.15 Then ExitLong("bx32",AtStop,Highest(H,BarsSinceEntry)-0.5 ,"매수1"); 3] 차트로 갭보정해서 사용 하던 것인데 불편하여 수식에서 갭보정을 넣어 사용 하려 합니다. 도움 주시면 감사하겠습니다. Input : Period(20),shortPeriod(30), middlePeriod(60),longPeriod(120),verylongPeriod(240),LPercent(102.5); Input : p(20),p1(60),p2(120); INPUTS: LENGTH1(60); VARS : DEMA1(0); value1 = wma(C, shortPeriod); value2 = wma(C, middlePeriod); value3 = wma(C, longPeriod); value4 = WMA(C, Period); value5= (highest(H,9)+lowest(L,9))/2; //전환 value6 = (highest(H,26)+lowest(L,26))/2; //기준 value7= (value5+value6)/2; //선행스팬1 value8= (Highest(H,52)+Lowest(L,52))/2; //선행스팬2 value9 = countif(var7 >= 99.20 and var8 < 102,20); value10 = countif(var8 >= 99.20 and var9 < 102,20); value11 = countif(var9 >= 99.20 and var10 < 102,20); value12 = wma(C, verylongPeriod); value13= EMA(EMa(C,LENGTH1),LENGTH1); var : dis(0),dis1(0),dis2(0),value(0), Xvol(0); var1 = WMA(c,60); var2 = WMA(c,120); var3 = countif(var1>var2,70); //정배열 var4 = (C-C[1])/C[1]*100; var5 = countif(var4<1.5,130); //130캔들이 1.5% 미만으로 움직임 var6 = highest(C,130); // 130 캔들 종가중 최고가 var7 = Disparity(20); var8 = Disparity(60); var9 = Disparity(120); var10 = Ma(V,20); // 20개 거래량 var11 = countif(var1<var2,100); //역배열 var12 = countif(var1<var2,150); //역배열 var13 = countif(var2>var3,35); //정배열 var14= EMA(C,LENGTH1); var15= DayIndex[1]; DEMA1 = var14*2-value13 ;#dema 너무 많아서 죄송 합니다. 항상 감사드립니다.