답변완료
전환 추세선 쓰리바닥
Input : 전환(0.25);
Var:j(0),jj(0),HH(0),LL(0),hiBar(0),loBar(0),최종꼭지점(""),처리구분(""), TL1(0),TX1(0),tx(0);
Array:고[10,4](0),저[10,4](0);
Plot1(0);
HH = H;
LL = L;
If Index == 0 Then
{
고[1,1] = HH;
고[1,2] = 0;
고[1,3] = sDate;
고[1,4] = sTime;
저[1,1] = LL;
저[1,2] = 0;
저[1,3] = sDate;
저[1,4] = sTime;
}
If Index > 0 Then
{
hiBar = hiBar + 1;
loBar = loBar + 1;
}
If HH[hiBar] < HH Then hiBar = 0;
If LL[loBar] > LL Then loBar = 0;
Condition1 = 저[1,1]+전환 <= HH and hiBar == 0;
Condition2 = 고[1,1]-전환 >= LL and loBar == 0;
처리구분 = "";
If Condition1 and Condition2 Then
{
If 최종꼭지점 == "저점" Then
{
If 저[1,1] > LL Then 처리구분 = "저점처리";
Else 처리구분 = "고점처리";
}
Else If 최종꼭지점 == "고점" Then
{
If 고[1,1] < HH Then 처리구분 = "고점처리";
Else 처리구분 = "저점처리";
}
}
Else If Condition1 Then 처리구분 = "고점처리";
Else If Condition2 Then 처리구분 = "저점처리";
If 처리구분 == "고점처리" Then
{
If 최종꼭지점 == "저점" Then
{
Text_Delete(tx);
For j = 10 DownTo 2
{
For jj = 1 To 4
{
고[j,jj] = 고[j-1,jj];
}
}
고[1,1] = HH[hiBar];
고[1,2] = Index - hiBar;
고[1,3] = sDate[hiBar];
고[1,4] = sTime[hiBar];
hiBar = -1;
loBar = -1;
TL1 = TL_New(저[1,3],저[1,4],저[1,1],고[1,3],고[1,4],고[1,1]);
TL_SetSize(TL1,2);
TL_SetColor(TL1,RED);
}
Else If 고[1,1] < HH[hiBar] Then
{
고[1,1] = HH[hiBar];
고[1,2] = Index - hiBar;
고[1,3] = sDate[hiBar];
고[1,4] = sTime[hiBar];
hiBar = -1;
loBar = -1;
TL_SetEnd(TL1,고[1,3],고[1,4],고[1,1]);
Text_SetString(TX1,NumToStr(고[1,1]-저[1,1],2));
Text_SetLocation(TX1,고[1,3],고[1,4],고[1,1]);
}
최종꼭지점 = "고점";
}
If 처리구분 == "저점처리" Then
{
If 최종꼭지점 == "고점" Then
{
For j = 10 DownTo 2
{
For jj = 1 To 4
{
저[j,jj] = 저[j-1,jj];
}
}
저[1,1] = LL[loBar];
저[1,2] = Index - loBar;
저[1,3] = sDate[loBar];
저[1,4] = sTime[loBar];
hiBar = -1;
loBar = -1;
TL1 = TL_New(고[1,3],고[1,4],고[1,1],저[1,3],저[1,4],저[1,1]);
TL_SetSize(TL1,2);
TL_SetColor(TL1,BLUE);
}
Else If 저[1,1] > LL[loBar] Then
{
저[1,1] = LL[loBar];
저[1,2] = Index - loBar;
저[1,3] = sDate[loBar];
저[1,4] = sTime[loBar];
hiBar = -1;
loBar = -1;
TL_SetEnd(TL1,저[1,3],저[1,4],저[1,1]);
Text_SetString(TX1,NumToStr(저[1,1]-고[1,1],2));
Text_SetLocation(TX1,저[1,3],저[1,4],저[1,1]);
}
최종꼭지점 = "저점";
Text_Delete(tx);
if sTime >= 93000 and 저[1,1] <= DayLow+0.1 and 저[1,1] >= DayLow-0.25 Then
{
tx = text_new(저[1,3],저[1,4],저[1,1]+PriceScale*5,"●");
Text_SetStyle(tx,2,2);
Text_SetColor(tx,Magenta);
Text_SetSize(tx,20);
}
}
하락추세선 3개의 저점이 0.15p(3틱) 내에서 쓰리바닥 형성시 동그라미 표시. 감사합니다.
2023-04-27
1079
글번호 168541
지표
답변완료
수정부탁드립니다.
작성해주신 시스템식이 매도만 진입합니다.
매수도 진입할수 잇도록 수정 부탁드립니다.
///////////////////////////////////////////
input : P1(20),P2(60),조정틱(5),감시틱수(10);
var : mav1(0),mav2(0),T(0),B(0),S(0);
mav1 = ma(C,P1);
mav2 = ma(C,P2);
if CrossUp(mav1,mav2) Then
{
T = 1;
B = C;
}
if CrossDown(mav1,mav2) Then
{
T = -1;
S = C;
}
if T == 1 and S > 0 Then
Buy("b",AtStop,S+PriceScale*조정틱);
if T == -1 Then
Sell("S",AtStop,S-PriceScale*조정틱);
if MarketPosition == 1 Then
{
B = 0;
if highest(H,BarsSinceEntry) >= EntryPrice+감시틱수 Then
ExitLong("bx",AtStop,EntryPrice);
}
if MarketPosition == -1 Then
{
S = 0;
if Lowest(L,BarsSinceEntry) <= EntryPrice-감시틱수 Then
ExitShort("sx",AtStop,EntryPrice);
}
2023-04-27
894
글번호 168538
시스템
답변완료
문의드립니다
제가 하니 도저히 계속 의도한대로 안되서 다시 도움을 청합니다 ㅠㅠ
Data1 : 분봉차트
Data2 : 일봉차트
제가 의도한 매수식은 아래와 같습니다
<첫진입>
1분봉 차트에서,
15시10분 이후로 장 마감때까지, '일봉 상 20일간 최고가(종가기준)'보다 현재가가 상승하면 즉시 매수
<피라미딩>
1분봉 차트에서,
1번 : 15시10분 이후로 장 마감때까지, 이전 진입 가격보다 10%이상 상승하면 즉시 매수
(이때 진입수량 = 이전 진입 금액*0.9 / 종가)
2번 : 장 마감했을때 마지막 분봉(15시31분봉)의 종가(그날의 종가)가,
이전 진입 가격보다 10%이상 상승한 상태면, 당일에 15시31분봉에 매수 예비신호 표시
(이때 진입수량 = 이전 진입 금액*0.9 / 종가)
(15시31분봉에 예비신호 표시 위해 onclose 사용함)
아래는 그동안 도움주신 내용들로 제가 모아서 정리한것인데,
아래의 식을 합치니 피라미딩부분이 제대로 돌아가지가 않습니다 ㅠ
------------------------------
input :
invest_money(1000000), //첫 진입 금액
cut_ratio(0.9); // 매 진입시마다, 이전 진입 금액의 90%만 진입하기 위함
var : ex_money(0); //이전 진입금액
if MarketPosition == 0 then
{
if sTime >= 151000 and NextBarSdate == sDate Then
{
Buy("첫진입",AtStop,Data2(highest(c,20)), Floor(invest_money/C) );
}
}
ex_money = LatestEntryPrice(0)*(CurrentContracts-CurrentContracts[1])
이전진입금액 = 이전 진입 가격 * 이전 진입 수량
매회 피라미딩시의 수량 = Floor((ex_money * cut_ratio)/ c)
매회 피라미딩시의 수량 = 이전진입금액 * 0.9 / 종가
위의 '이전진입금액'과, '피라미딩시의 수량'을 제가 위 첫진입과, 아래 피라미딩1번,피라미딩2번 식에 합치니, 피라미딩이 아예 안되거나 당최 계속 이상하게 나타납니다 ㅠ
if MarketPosition == 1 Then
{
if sTime >= 151000 and NextBarSdate == sDate Then
Buy("피라미딩1번", AtStop,LatestEntryPrice(0)*1.1);
if stime >= 153000 and C > LatestEntryPrice(0)*1.1 Then
Buy("피라미딩2번", OnClose);
}
작성 좀 부탁드리겠습니다.
아무리 뜯어봐도 어디서 구멍이 났는지 모르겠네요 ㅠ
매번 감사드립니다
2023-04-27
1155
글번호 168530
시스템