예스스탁
예스스탁 답변
2022-03-22 12:35:35
안녕하세요
예스스탁입니다.
올려주신식은 지표식입니다.
검증해 보았지만 오류가 없습니다.
편집창 종류 확인하시기 바랍니다.
즐거운 하루되세요
> 브루펜 님이 쓴 글입니다.
> 제목 : 수식 수정 부탁드립니다.
> 페어트레이딩 관련 수식인데요, 예스랭귀지 편집기에서 검증을 해보니 수많은 오류가 뜨네요
오류가 뜨는 부분 수정 부탁드립니다.
수식은 아래와 같습니다.
감사합니다.
---아 래----
//===♠페어트레이딩_
INPUT : ※수량이음수이면_매도(0);
INPUT : 진입_일자(20190325), 진입_시간(193000);
INPUT : D1_진입가(2808.25), D2_진입가(25553);
INPUT : D1_수량(1), D2_수량(-1.4); // 실재 매매시는 2개와 3개
INPUT : ※_수수료는_편도(5);
INPUT : D1_수수료(5), D2_수수료(5), 환율(1180);
INPUT : 손익원화환산1(1); // 달러 표시 손익일 경우 환산 여부 지정
INPUT : 손익_상단(1572), 손익_하단(-1914);
//=== 변수 선언 ===
var : D1현재가(0), D2현재가(0);
//=== 현재가 지정 ===
D1현재가 = Data1(c);
D2현재가 = Data2(c);
//=== 틱단위와 틱가치 대입 ===
var : D1틱단위(0), D1틱가치(0);
var : D2틱단위(0), D2틱가치(0);
D1틱단위 = data1(PriceScale);
D2틱단위 = data2(PriceScale);
D1틱가치 = data1(PointValue);
D2틱가치 = data2(PointValue);
//=== 손익 산출 ===
var : D1손익(0), D2손익(0), 손익소계(0), 순손익(0);
var : D1수수료(0), D2수수료(0), 수수료소계(0);
//==== _손익 산출
D1손익 = ((D1현재가 - D1_진입가) / D1틱단위 * D1틱가치 * D1_수량);
D2손익 = ((D2현재가 - D2_진입가) / D2틱단위 * D2틱가치 * D2_수량);
손익소계 = D1손익 + D2손익;
D1수수료 = abs(D1_수량 * D1_수수료 * 2); //왕복
D2수수료 = abs(D2_수량 * D2_수수료 * 2);
수수료소계 = D1수수료 + D2수수료;
순손익 = 손익소계 - 수수료소계;
//===원화 환산. 금액 단위 천원
iF 손익원화환산1 == 1 Then 순손익 = (순손익 * 환율) / 1000;
//===== 손익 이평선 =====
Input : 소이평값(5), 중이평값(20), 대이평값(60);
var : 소이평(0), 중이평(0), 대이평(0);
소이평 = ma(순손익, 소이평값);
중이평 = ma(순손익, 중이평값);
대이평 = ma(순손익, 대이평값);
//=== 손익의 10 구간 계산
var : 중간선(0), 십등분(0);
var : 이부선(0), 사부선(0), 육부선(0), 팔부선(0), 방향색(0);
중간선 = (손익_상단 + 손익_하단) / 2;
십등분 = (손익_상단 - 손익_하단) / 10;
이부선 = 손익_하단 + 십등분*2;
사부선 = 손익_하단 + 십등분*4;
육부선 = 손익_하단 + 십등분*6;
팔부선 = 손익_하단 + 십등분*8;
//==== 방향표시바 색지정
if 순손익 >= 손익_상단 then
방향색 = RGB(0, 0, 217); // 진청
if 순손익 < 손익_상단 and 순손익 >= 팔부선 then
방향색 = RGB(0, 128, 255); // 연청
if 순손익 < 팔부선 and 순손익 >= 육부선 then
방향색 = RGB(0, 230, 230); //하늘색
if 순손익 < 육부선 and 순손익 >= 사부선 then
방향색 = RGB(0, 204, 0); //녹색
if 순손익 < 사부선 and 순손익 >= 이부선 then
방향색 = RGB(255, 128, 0); //주황
if 순손익 < 이부선 and 순손익 >= 손익_하단 then
방향색 = RGB(255, 128, 192); //연핑크
if 순손익 < 손익_하단 then
방향색 = RGB(255, 0, 255); //진핑크
//========지표의 출력 ==============
//--지정일 지정시간 이후 지표 출력을 위한 것
if Condition1 == false and
sDate >= 진입_일자 and
sTime >= 진입_시간 Then Condition1 = true;
if Condition1 == true Then {
plot13(순손익, "순손익");
plot16(소이평, "소이평");
plot17(중이평, "중이평");
plot18(대이평, "대이평");
}
//==== 손익 상단 하단 출력 및 음성 안내 =========
Input : 음성안내ON1(1);
If 손익_상단 <= 순손익 Then {
plot21(손익_상단, "손익_상단선");
If 음성안내ON1 == 1 Then
playsound("C:₩____Mysound₩11₩풀룻Flute.WAV");
}
If 손익_하단 >= 순손익 Then {
plot22(손익_하단, "손익_하단선");
If 음성안내ON1 == 1 Then
playsound("C:₩____Mysound₩11₩풀룻Flute.WAV");
}
if 순손익 >= 이부선 and 순손익 <= 사부선 Then
plot23(중간선, "중간선");
//==== 방향바 출력 =======
plot24(0, "■방향바", 방향색);
/*
//==== 데이터 검증영역 =====
plot41(D1손익, "D1 손익");
plot42(D2손익, "D2 손익");
plot43(손익소계, "손익소계");
plot44(수수료소계, "수수료합계");
Plot51(D1틱단위, "D1틱단위");
Plot52(D1틱가치, "D1틱가치");
Plot53(D2틱단위, "D2틱단위");
Plot54(D2틱가치, "D2틱가치");
Plot61(D1_진입가, "●D1진입가");
Plot62(D2_진입가, "○D2진입가");
Plot63(D1_수량, "■D1수량");
Plot64(D2_수량, "□D2수량");
Plot65(D1_수수료, "▲D1_수수료");
Plot66(D2_수수료, "△D2_수수료");
plot67(손익_상단, "@@손익_상단");
plot68(손익_하단, "@@손익_하단");