커뮤니티

수식 부탁드립니다.

프로필 이미지
gaintoga
2015-07-28 23:17:06
154
글번호 88942
답변완료
안녕하세요. 늘 도움 주셔서 감사드립니다. 얼마전 다른 분께서 올리신 추세선 지표를 이용해서 (변경하지 않았습니다.) 옵션프리합을 관찰하는 지표를 만들어 보고 싶은데, 제 실력으로는 역부족이네요. 1.첨부한 사진에서 보이는 양합 가격 (var9) 콜합 가격 (var10) 풋합 가격 (var11)을 화면에 표시하고 싶습니다. 2. 추세선의 고점, 저점에 나타나는 가격을 / 해당 지점의 양합 가격(var9)으로 대체하여 표시하고 싶습니다. 먼저 감사드립니다. 좋은 하루 되세요~ input: C1(1), C2(1), P1(1), P2(1); var1 = data2(c); var2 = data3(c); var3 = data4(c); var4 = data5(c); var5 = data2(DayOpen); var6 = data3(DayOpen); var7 = data4(DayOpen); var8 = data5(DayOpen); var9 = ((var1*C1)+(var2*C2)+(var3*P1)+(var4*P2))-((var5*C1)+(var6*C2)+(var7*P1)+(var8*P2)); #프리시세 var10 = (((var5*C1)+(var6*C2))/(C1+C2)); #콜 시가합 var11 = (((var7*P1)+(var8*P2))/(P1+P2)); #풋 시가합 Var:j(0),lastHiVal(0),lastLoVal(0),turnPntBit(""),TL1(0),tx(0),T(0),trnd(0); Array:valArr[10](0),barArr[10](0),turnPntArr[10](""); For j = 0 To 9 { barArr[j] = barArr[j] + 1; } Condition1 = Highest(H,52) == H and lastHiVal <> H; Condition2 = Lowest(L,52) == L and lastLoVal <> L; If Condition1 Then lastHiVal = H; If Condition2 Then lastLoVal = L; 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{ Tx = Text_New(sDate[barArr[2]],sTime[barArr[2]],valArr[2],NumToStr(valArr[2],2)); Text_SetStyle(tx,2,2); TL1 = TL_New(sDate[barArr[2]],sTime[barArr[2]],valArr[2],sDate[barArr[1]],sTime[barArr[1]],valArr[1]); PlaySound("E:₩예스트레이더₩data₩Sound₩alert.wav"); } Else{ TL_SetEnd(TL1,sDate[barArr[1]],sTime[barArr[1]],valArr[1]); } } } TL_SetSize(TL1[1],3); TL_SetColor(TL1[1],RGB(20,255,255)); if turnPntArr[1][0] == "Hi" Then trnd = 1; if turnPntArr[1][0] == "Lo" Then trnd = -1; if Trnd == -1 and Trnd[1] == -1 and L == TL_GetValue(TL1,sdate,stime) and L < L[1] Then PlaySound("E:₩예스트레이더₩data₩Sound₩alert.wav"); if Trnd == 1 and Trnd[1] == 1 and H == TL_GetValue(TL1,sdate,stime) and H > H[1] Then PlaySound("E:₩예스트레이더₩data₩Sound₩alert.wav");
지표
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2015-07-28 10:22:12

안녕하세요 예스스탁입니다. 텍스트 출력함수는 날짜 시간 가격을 지정해 해당 위치에 텍스트를 출력합니다. 그림에 지정하신 위치는 수식으로 표현하기 어렵습니다. 각 고점과 저점이 출력될때 해당 위치에 양합/콜합/풋합으로 출력되게 작성했습니다. input: C1(1), C2(1), P1(1), P2(1); var1 = data2(c); var2 = data3(c); var3 = data4(c); var4 = data5(c); var5 = data2(DayOpen); var6 = data3(DayOpen); var7 = data4(DayOpen); var8 = data5(DayOpen); var9 = ((var1*C1)+(var2*C2)+(var3*P1)+(var4*P2))-((var5*C1)+(var6*C2)+(var7*P1)+(var8*P2)); #프리시세 var10 = (((var5*C1)+(var6*C2))/(C1+C2)); #콜 시가합 var11 = (((var7*P1)+(var8*P2))/(P1+P2)); #풋 시가합 Var:j(0),lastHiVal(0),lastLoVal(0),turnPntBit(""),TL1(0),tx1(0),tx2(0),tx3(0),T(0),trnd(0); Array:valArr[10](0),barArr[10](0),turnPntArr[10](""); For j = 0 To 9 { barArr[j] = barArr[j] + 1; } Condition1 = Highest(H,52) == H and lastHiVal <> H; Condition2 = Lowest(L,52) == L and lastLoVal <> L; If Condition1 Then lastHiVal = H; If Condition2 Then lastLoVal = L; 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{ Tx1 = Text_New(sDate[barArr[2]],sTime[barArr[2]],valArr[2]+PriceScale*2, "양합:"+NumToStr(var9[barArr[2]],2)+NewLine+"양합:"+NumToStr(var9[barArr[2]],2)+NewLine+"풋합:"+NumToStr(var11[barArr[2]],2)); Text_SetStyle(tx1,2,2); TL1 = TL_New(sDate[barArr[2]],sTime[barArr[2]],valArr[2],sDate[barArr[1]],sTime[barArr[1]],valArr[1]); PlaySound("E:₩예스트레이더₩data₩Sound₩alert.wav"); } Else{ TL_SetEnd(TL1,sDate[barArr[1]],sTime[barArr[1]],valArr[1]); } } } TL_SetSize(TL1[1],3); TL_SetColor(TL1[1],RGB(20,255,255)); if turnPntArr[1][0] == "Hi" Then trnd = 1; if turnPntArr[1][0] == "Lo" Then trnd = -1; if Trnd == -1 and Trnd[1] == -1 and L == TL_GetValue(TL1,sdate,stime) and L < L[1] Then PlaySound("E:₩예스트레이더₩data₩Sound₩alert.wav"); if Trnd == 1 and Trnd[1] == 1 and H == TL_GetValue(TL1,sdate,stime) and H > H[1] Then PlaySound("E:₩예스트레이더₩data₩Sound₩alert.wav"); plot1(var10); plot2(var11); 즐거운 하루되세요 > gaintoga 님이 쓴 글입니다. > 제목 : 수식 부탁드립니다. > 안녕하세요. 늘 도움 주셔서 감사드립니다. 얼마전 다른 분께서 올리신 추세선 지표를 이용해서 (변경하지 않았습니다.) 옵션프리합을 관찰하는 지표를 만들어 보고 싶은데, 제 실력으로는 역부족이네요. 1.첨부한 사진에서 보이는 양합 가격 (var9) 콜합 가격 (var10) 풋합 가격 (var11)을 화면에 표시하고 싶습니다. 2. 추세선의 고점, 저점에 나타나는 가격을 / 해당 지점의 양합 가격(var9)으로 대체하여 표시하고 싶습니다. 먼저 감사드립니다. 좋은 하루 되세요~ input: C1(1), C2(1), P1(1), P2(1); var1 = data2(c); var2 = data3(c); var3 = data4(c); var4 = data5(c); var5 = data2(DayOpen); var6 = data3(DayOpen); var7 = data4(DayOpen); var8 = data5(DayOpen); var9 = ((var1*C1)+(var2*C2)+(var3*P1)+(var4*P2))-((var5*C1)+(var6*C2)+(var7*P1)+(var8*P2)); #프리시세 var10 = (((var5*C1)+(var6*C2))/(C1+C2)); #콜 시가합 var11 = (((var7*P1)+(var8*P2))/(P1+P2)); #풋 시가합 Var:j(0),lastHiVal(0),lastLoVal(0),turnPntBit(""),TL1(0),tx(0),T(0),trnd(0); Array:valArr[10](0),barArr[10](0),turnPntArr[10](""); For j = 0 To 9 { barArr[j] = barArr[j] + 1; } Condition1 = Highest(H,52) == H and lastHiVal <> H; Condition2 = Lowest(L,52) == L and lastLoVal <> L; If Condition1 Then lastHiVal = H; If Condition2 Then lastLoVal = L; 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{ Tx = Text_New(sDate[barArr[2]],sTime[barArr[2]],valArr[2],NumToStr(valArr[2],2)); Text_SetStyle(tx,2,2); TL1 = TL_New(sDate[barArr[2]],sTime[barArr[2]],valArr[2],sDate[barArr[1]],sTime[barArr[1]],valArr[1]); PlaySound("E:₩예스트레이더₩data₩Sound₩alert.wav"); } Else{ TL_SetEnd(TL1,sDate[barArr[1]],sTime[barArr[1]],valArr[1]); } } } TL_SetSize(TL1[1],3); TL_SetColor(TL1[1],RGB(20,255,255)); if turnPntArr[1][0] == "Hi" Then trnd = 1; if turnPntArr[1][0] == "Lo" Then trnd = -1; if Trnd == -1 and Trnd[1] == -1 and L == TL_GetValue(TL1,sdate,stime) and L < L[1] Then PlaySound("E:₩예스트레이더₩data₩Sound₩alert.wav"); if Trnd == 1 and Trnd[1] == 1 and H == TL_GetValue(TL1,sdate,stime) and H > H[1] Then PlaySound("E:₩예스트레이더₩data₩Sound₩alert.wav");