여기 내가 항상 사용하는 편리한 스크립트가 있습니다. 시장의 움직임을 측정하는 데 도움이 되도록 10핍마다 기준선을 그립니다. 화면 오른쪽에 있는 가격을 보고 이것저것 알아보느라 정말 답답해서 스크립트를 만들었습니다. 스크립트는 초보자가 개체 그리기를 연습하는 데 유용할 수 있습니다.
스크립트가 아닌 CI로 만들고, 종가가 아닌 0에서 계산하고, 차트의 보이는 부분(WinPriceMax() 및 그 자매)에만 그리기, 가격이 한도를 초과하면 업데이트(귀하의 경우 라인 간격 = 10핍) ), OBJ_HLINE 대신 OBJ_RECTANGLE을 사용합니다.
열려 있는 모든 차트에서 동기화됩니다.
:디
또는 . . . 지표로 만드십시오. . 코드가 조금 더 필요하므로 새 막대가 시작될 때만 새로 고쳐집니다. . .
int deinit() { for ( int ix = 0 ; ix < nLines; ix++) // delete my horizontal lines { ObjectDelete ( "tensLines" +ix); } return ( 0 ); } int start() { int nLines = 40 ; // Number of total line to draw double lineInterval = 0.0010 ; // Interval between lines double normPrice = NormalizeDouble (Close[ 1 ], 3 ); // Current price is rounded to nearest "10" for ( int ix = 0 ; ix < nLines; ix++) // Loop span number of times { if ( ObjectFind ( "tensLines" +ix) < 0 ) ObjectCreate ( "tensLines" +ix, OBJ_HLINE , 0 , 0 , normPrice+((ix-(nLines/ 2 ))*lineInterval)); // Place half above and half below the current price else ObjectSet ( "tensLines" +ix, OBJPROP_PRICE1, normPrice+((ix-(nLines/ 2 ))*lineInterval)); ObjectSet ( "tensLines" +ix, OBJPROP_COLOR , DarkSlateGray ); // Make the lines look better } return ( 0 ); //All done }
스크립트가 아닌 CI로 만들고, 종가가 아닌 0에서 계산하고, 차트의 보이는 부분(WinPriceMax() 및 그 자매)에만 그리기, 가격이 한도를 초과하면 업데이트(귀하의 경우 라인 간격 = 10핍) ), OBJ_HLINE 대신 OBJ_RECTANGLE을 사용합니다.
열려 있는 모든 차트에서 동기화됩니다.
:디
이것은 " OBJ_HLINE 대신 O BJ_RECTANGLE " 부분을 제외하고 모두 의미가 있습니다. 왜 직사각형인가?
또는 . . . 지표로 만드십시오. . 코드가 조금 더 필요하므로 새 막대가 시작될 때만 새로 고쳐집니다. . .
네, 물론입니다. 훨씬 좋습니다. 말해봐, ObjectDelete와 같은 것에 대해 일종의 "와일드카드"를 사용할 수 있는 방법이 있습니까? 다음과 같이 하고 싶습니다. ObjectDelete ( "tensLines"* ); 즉, "tensLines"로 시작하는 모든 것을 삭제하십시오.
나는 당신이 막대와 함께 이것을 배치하는 방식을 실제로 좋아합니다. 눈이 편합니다. 당신은 "어쨌든 오른쪽에 가격이 보이지 않는다"고 말합니다. 나는 종종 매수 또는 매도의 두 가지 선택으로 내가 50-50의 기회를 가지지만 80%의 확률로 틀렸는 지 궁금했습니다. ;-)
여기도 마찬가지...
:디
나는 당신이 막대와 함께 이것을 배치하는 방식을 실제로 좋아합니다. 눈이 편합니다. 당신은 "어쨌든 오른쪽에 가격이 보이지 않는다"고 말합니다. 나는 종종 매수 또는 매도의 두 가지 선택으로 내가 50-50의 기회를 가지지만 80%의 확률로 틀렸는지 궁금했습니다. ;-)
onewithzachy, 이제 막 O BJ_RECTANGLE 스타일 차트를 설정하는 중입니다. " WindowsBarsPerChart() 및 아마도 WindowsFirstVisibleBar()"를 언급했습니다. 화면의 왼쪽에서 오른쪽으로 막대를 실행하는 방법을 찾는 데 여전히 어려움을 겪고 있습니다. 하지만 레이아웃은 마음에 듭니다! 이 작업을 수행하는 방법에 대한 단서가 있습니까?
안녕하세요 미스터독입니다.
단순한.
1. 한 막대에서 다른 막대까지의 시간 거리를 구합니다. 현재 막대 시간에서 이전 막대 시간을 빼거나 기간에 60초를 곱하여 이를 얻을 수 있습니다. 월요일에 시간 차이가 있으므로 후자를 선택합니다.
datetime Bar_Time_Gap; // or integer type Bar_Time_Gap = Time [ 0 ] - Time [ 1 ]; // or Time [7] - Time [8] or whatever Bar_Time_Gap = Period ()* 60 ;
2. WindowsFirstVisibleBar()는 맨 왼쪽 막대입니다. 해당 막대에서 그리기 시작하거나 더 나은 방법은 해당 막대의 왼쪽 n에서 시작하는 것입니다. 예를 들어 왼쪽으로 5개의 막대가 있습니다. WindowsFirstVisibleBar() 의 반환값 이 20이라고 가정합니다. 즉, 맨 왼쪽 막대가 막대 [20]이고 막대 [25]부터 그리기 시작합니다. 나는 실제로 [바 - 1]에서 그립니다.
datetime Start; Start = Time [ WindowFirstVisibleBar () + 5 ]; //which is the same ... Start = Time [ WindowFirstVisibleBar ()] - 5 * Bar_Time_Gap; //... with this one
3. WindowsBarsPerChart()는 차트의 막대 수입니다 . WindowsBarsPerChart() 의 반환값 이 35이고 WindowsFirstVisibleBar()가 20이라고 가정해 보겠습니다. 따라서 [0] 막대에서 시작 하여 오른쪽에 약 15개의 막대 빈 공간이 있습니다. 사각형의 끝을 빈 공간의 바로 오른쪽 막대로 그리 거나, 막대의 오른쪽 n에서 시작하여 오른쪽으로 5개 막대를 그리십시오 .
datetime End; int Right_Bar = WindowBarsPerChart () - WindowFirstVisibleBar () + 5 ; End = Time[ 0 ] + Right_Bar * Bar_Time_Gap;
새 막대가 오면 이 오른쪽 막대가 왼쪽으로 이동하므로 직사각형의 끝이 표시되고 다시 그려야 합니다.
나는 이것을 빨리 썼기 때문에 여기에서 실수하지 않기를 바랍니다.
:디
여기 내가 항상 사용하는 편리한 스크립트가 있습니다. 시장의 움직임을 측정하는 데 도움이 되도록 10핍마다 기준선을 그립니다. 화면 오른쪽에 있는 가격을 보고 이것저것 알아보느라 정말 답답해서 스크립트를 만들었습니다. 스크립트는 초보자가 개체 그리기를 연습하는 데 유용할 수 있습니다.