답변완료
문의 드립니다!
안녕하세요!
아래수식은 "중심"(d1plot2 = d1var2+d1var3*0.500;)을 기준으로 작성되었는데...
여기에 "0.000" 과 "1.000" 이 2개의 조건을 추가해서 기존과 똑같은 조건으로 작성 부탁드립니다
* 각 세로선의 색상과 굵기 그리고 알람신호도 사용자지정이 가능토록 부탁드립니다
항상 도와주심에 짐심으로 감사드립니다!!!
-----------------------------------------------------------------------------------
input : 색1(RED),굵기1(3);
input : 색2(BLUE),굵기2(3);
var : d1month(0,Data1),d1nday(0,Data1),d1week(0,Data1);
var : d1EX(false,Data1),d1cond1(False,Data1),d1HH(0,Data1),d1LL(0,Data1),d1plot2(0,Data1);
var : d1var1(0,data1),d1var2(0,data1),d1var3(0,data1),TL(0,Data1);
#Data1
d1month = data1(int(date/100)-int(date/10000)*100);
d1nday = data1(date - int(date/100)*100);
d1week = data1(DayOfWeek(date));
#선물만기
#if d1Month%3 == 0 and d1nday >= 8 and d1nday <= 14 and d1week == 4 then
if d1nday >= 8 and d1nday <= 14 and d1week == 4 then#옵션만기
d1EX = true;
Else
d1EX = false;
if d1EX == false and d1EX[1] == true Then
{
d1Cond1 = true;
d1HH = data1(H);
d1LL = data1(L);
}
if d1Cond1 == true then
{
if data1(H) > d1HH Then
d1HH = data1(H);
if data1(L) < d1LL Then
d1LL = data1(L);
d1var1 = d1HH;
d1var2 = d1LL;
d1var3 = d1var1-d1var2;
d1plot2 = d1var2+d1var3*0.500;
plot2(d1plot2,"중심");
}
if Data1(CrossUp(h,d1plot2) or CrossDown(l,d1plot2)) Then
{
tl = TL_New_Self(sDate,sTime,0,sDate,sTime,99999999);
TL_SetColor(tl,색1);
TL_SetSize(Tl,굵기1);
PlaySound("C:₩예스트레이더₩data₩Sound₩.wav");
}
if Data2(CrossUp(h,d1plot2) or CrossDown(l,d1plot2)) Then
{
tl = TL_New_Self(sDate,sTime,0,sDate,sTime,99999999);
TL_SetColor(tl,색2);
TL_SetSize(Tl,굵기2);
PlaySound("C:₩예스트레이더₩data₩Sound₩.wav");
}
2022-03-22
732
글번호 157379
지표
답변완료
수식 문의 드립니다.
질문번호 76457 관련입나다.
아래 수식을 적용하여 보니
지그재그챠트 고점에서 가격과 진폭(고저차)수치가
캔들과 겹쳐 잘 안보여서
캔들 고점위에서 가격은 안보이게 하고
진폭(고저차)수치만 보이게 하는 수식을 부탁드립니다.
.
nput:length(12),글자크기(20);
Var:j(0),lastHiVal(0),lastLoVal(0),sBar(0),eBar(0),TL1(0),
Text1(0),처리구분("");
Array:고점[10,2](0),저점[10,2](0); //가격,위치
처리구분 = "";
If Highest(H,length) == H and lastHiVal <> H and
Lowest(L,length) == L and lastLoVal <> L Then
{
If 저점[1,1] > L Then 처리구분 = "저점처리";
If 고점[1,1] < H Then 처리구분 = "고점처리";
}
Else If Highest(H,length) == H and lastHiVal <> H Then
처리구분 = "고점처리";
Else If Lowest(L,length) == L and lastLoVal <> L Then
처리구분 = "저점처리";
If 처리구분 == "고점처리" Then
{
lastHiVal = H;
If 고점[1,2] < 저점[1,2] Then
{
For j = 10 DownTo 2
{
고점[j,1] = 고점[j-1,1];
고점[j,2] = 고점[j-1,2];
}
}
If 고점[1,2] < 저점[1,2] or 고점[1,1] < H Then
{
고점[1,1] = H;
고점[1,2] = Index;
sBar = Index - 저점[1,2];
eBar = 0;
If TL_GetBeginDate(TL1) == sDate[sBar] and
TL_GetBeginTime(TL1) == sTime[sBar] Then
{
TL_Delete(TL1);
Text_Delete(Text1);
}
TL1 = TL_New(sDate[sBar],sTime[sBar],저점[1,1],
sDate[eBar],sTime[eBar],고점[1,1]);
Text1 = Text_New(sDate[eBar],sTime[eBar],고점[1,1],NumToStr(고점[1,1],2)
+NewLine+NumToStr((고점[1,1]-저점[1,1]),2));
Text_SetStyle(Text1, 3, 3);
Text_SetSize(text1,글자크기);
}
}
If 처리구분 == "저점처리" Then
{
lastLoVal = L;
If 저점[1,2] < 고점[1,2] then
{
For j = 10 DownTo 2
{
저점[j,1] = 저점[j-1,1];
저점[j,2] = 저점[j-1,2];
}
}
If 저점[1,2] < 고점[1,2] or 저점[1,1] > L then
{
저점[1,1] = L;
저점[1,2] = Index;
sBar = Index - 고점[1,2];
eBar = 0;
If TL_GetBeginDate(TL1) == sDate[sBar] and
TL_GetBeginTime(TL1) == sTime[sBar] Then
{
TL_Delete(TL1);
Text_Delete(Text1);
}
TL1 = TL_New(sDate[sBar],sTime[sBar],고점[1,1],
sDate[eBar],sTime[eBar],저점[1,1]);
Text1 = Text_New(sDate[eBar],sTime[eBar],저점[1,1],NumToStr(저점[1,1],2)
+NewLine+NumToStr((고점[1,1]-저점[1,1]),2));
Text_SetStyle(Text1, 3, 3);
Text_SetSize(text1,글자크기);
}
}
TL_SetSize(TL1,3);
TL_SetColor(TL1,lgreen);
2022-03-22
891
글번호 157374
지표
답변완료
수식 문의 드립니다.
안녕하세요
키움 수식입니다.
예스스팟으로 변환 한번 해보려고 하는데 아직 실력이 없어서 변환이 무리 인것 같아 도움요청 드립니다.
볼린저 상하단 돌파시 매수 매도 1차 진입 하고 Ntick 떨어지거나 오를경우 하나더 진입하는 수식입니다.
2차 진입 후 더 떨어지거나 오를 경우 추가로 3차진입을 하나 더 변수로 추가 하고 싶습니다. 더불어 주문수량을 2개이든 3개이든 변수로 넣고 싶습니다.
바쁘시겠지만 수식 작성 부탁드립니다.
감사합니다.
// 매수진입 [BuyA : Bolinger Band[20,2] 저가<=하한밴드, ]
[IOG = True]
param : BuyA_Leng(20) // 이동평균기간
, BuyA_DV(2) // 표준편차
, BuyA_ChoiceType(2) // 상한, 중간, 하한밴드 선택
, BB_Back(0)
, Ntick(100)
;
Var : TickSize( 0 );
TickSize = OneTick * PriceScale; // 호가 단위
if MarketPosition > 0 And c < EntryPrice - TickSize * Ntick And EntryPrice>0 Then Buy("B2");
if MarketPosition < 0 And c > EntryPrice + TickSize * Ntick And EntryPrice>0 Then Sell("S2");
var : BuyA_PriceVar(0), BuyA_Price1(0), BuyA_Price2(0), BuyA_Price3(0), BuyA_V3(0), BuyA_Result(FALSE);
BuyA_PriceVar = (High+Low+Open)/3;
BuyA_Price1 = BollBandUpUser(BuyA_PriceVar, BuyA_Leng, BuyA_DV);
BuyA_Price2 = SMA(BuyA_PriceVar, BuyA_Leng);
BuyA_Price3 = BollBandDownUser(BuyA_PriceVar, BuyA_Leng, BuyA_DV);
If BuyA_ChoiceType = 0 Then // 상한밴드 선택
Begin
BuyA_V3 = BuyA_Price1;
End
Else
If BuyA_ChoiceType = 1 Then // 중간밴드 선택
Begin
BuyA_V3 = BuyA_Price2;
End
Else // 하한밴드 선택
Begin
BuyA_V3 = BuyA_Price3;
End;
BuyA_Result = FALSE;
IF C <= BuyA_V3 Then
BuyA_Result = TRUE;
if ( BuyA_Result[BB_Back] ) And !IsEntryName("B1")
Then
Begin
Buy("B1");
End;
/////////////////////////////////////////////////////////////////////////////
// 매도진입 [SellA : Bolinger Band[20,2] 고가>=상한밴드, ]
[IOG = True]
param : SellA_Leng(20) // 이동평균기간
, SellA_DV(2) // 표준편차
, SellA_ChoiceType(0) // 상한, 중간, 하한밴드 선택
;
var : SellA_PriceVar(0), SellA_Price1(0), SellA_Price2(0), SellA_Price3(0), SellA_V3(0), SellA_Result(FALSE);
SellA_PriceVar = (High+Low+Open)/3;
SellA_Price1 = BollBandUpUser(SellA_PriceVar, SellA_Leng, SellA_DV);
SellA_Price2 = SMA(SellA_PriceVar, SellA_Leng);
SellA_Price3 = BollBandDownUser(SellA_PriceVar, SellA_Leng, SellA_DV);
If SellA_ChoiceType = 0 Then // 상한밴드 선택
Begin
SellA_V3 = SellA_Price1;
End
Else
If SellA_ChoiceType = 1 Then // 중간밴드 선택
Begin
SellA_V3 = SellA_Price2;
End
Else // 하한밴드 선택
Begin
SellA_V3 = SellA_Price3;
End;
SellA_Result = FALSE;
IF C >= SellA_V3 Then
SellA_Result = TRUE;
if ( SellA_Result[BB_Back] ) And !IsEntryName("S1")
Then
Begin
Sell("S1");
End;
2022-03-22
1232
글번호 157367
시스템