XQ怎麼畫多條橫線到CurrentBar

  •   17 
  • 最後發表   xiangin516  3 小時前
xiangin516 發文於   2026/01/17

請教各位高手跟小幫手

我想要畫壓力支撐的橫線到CurrentBar

用PlotLine發現舊天數的橫線會被新天數的橫線覆蓋

if ( (Condition1 and Condition3 and Condition4) or (Condition1 and Condition5) ) then

    begin

        position_1= 1;

        entry_price = close;

        print("(ENTRY) Date:", Date, " EntryPrice:", entry_price);

        plot1(low * 0.95, "entry");

PlotLine(2, CurrentBar, low, CurrentBar, low, "支撐", add:=1);

    end;

 

截圖圖片

我想要的線希望像下面這樣

請問該怎麼做到?

截圖圖片

先謝謝各位高手跟小幫手幫忙

排序方式: 標準 | 最新
虎科大許教授 發文於   2026/01/17

看看類似的做法是否符合你的需求。

value1=highest(h[1],3);
condition1=h>value1;
if condition1 then
    begin
        plotLine(1,1,value1,currentBar,value1,"三期最高價1");
        if value1<>value1[1] then
            plotLine(2,1,value1[1],currentBar,value1[1],"三期最高價2");
        if value1[1]<>value1[2] then
            plotLine(3,1,value1[2],currentBar,value1[2],"三期最高價3");
    end;

xiangin516 發文於   2026/01/17

感謝教授的回覆

教授似乎是先把k棒記錄下來再判斷要不要畫線

但我不知道該怎麼加進我的判斷條件裡

我需要在條件成立的每個k bar都畫一條橫線

麻煩教授幫忙解惑

謝謝

 

Value1 = GetField("成交量");

Value2 = GetField("成交量")[1];

Value3 = Average(volume, 5);//5交易日

Value4 = Average(volume, 10);//10交易日

Condition1 = (Value1 > Value3 and Value1 > Value4) and ((Value1 > Value3 * 1.6) or (Value1 > Value4 * 1.6));

Value5 = (GetField("收盤價") - GetField("開盤價")) / GetField("收盤價") * 100;

Condition3 = Value5 >= 2;

Condition4 = GetField("收盤價") >= (GetField("最高價") * 0.98);

Value5 = (GetField("收盤價") - GetField("最低價")) / GetField("收盤價") * 100;

Condition5 = Value5 >= 5;

if ( (Condition1 and Condition3 and Condition4) or (Condition1 and Condition5) ) then

    begin

        plot1(low * 0.95, "entry");

//PlotLine(2, 1, low, CurrentBar, low, "支撐", add:=1);

    end;

 

虎科大許教授 發文於   2026/01/18

Value1 = GetField("成交量");
Value2 = GetField("成交量")[1];
Value3 = Average(volume, 5);//5交易日
Value4 = Average(volume, 10);//10交易日
Condition1 = (Value1 > Value3 and Value1 > Value4) and ((Value1 > Value3 * 1.6) or (Value1 > Value4 * 1.6));
Value5 = (GetField("收盤價") - GetField("開盤價")) / GetField("收盤價") * 100;
Condition3 = Value5 >= 2;
Condition4 = GetField("收盤價") >= (GetField("最高價") * 0.98);
Value5 = (GetField("收盤價") - GetField("最低價")) / GetField("收盤價") * 100;
Condition5 = Value5 >= 5;
if ((Condition1 and Condition3 and Condition4) or (Condition1 and Condition5)) then
    begin
        value99 = low * 0.95;
        PlotLine(1, currentBar, value99, CurrentBar, value99, "支撐1");
        PlotLine(2, currentBar, value99[1], CurrentBar, value99[1], "支撐2");
        PlotLine(3, currentBar, value99[2], CurrentBar, value99[2], "支撐3");
    end;

xiangin516 發文於   2026/01/18

謝謝教授大力幫忙

橫線可以畫出來了

只是有個奇怪現象

value99 前幾個資料是對的, 之後會重複多次一樣的資料

比如粉紅圈圈這根k棒

應該要在Plot5(value99[3]), 但卻存到Plot10(value99[8])

Plot5(value99[3]) 到 Plot9(value99[7]) 跟 Plot4(value99[2]) 重複

不知道教授有沒有解決辦法?

謝謝

截圖圖片

 

if ( (Condition1 and Condition3 and Condition4) or (Condition1 and Condition5) ) then

    begin

value99 = low;

        plot(1, low * 0.95, "entry");

        PlotLine(2, 1, value99, CurrentBar, value99);

        PlotLine(3, 1, value99[1], CurrentBar, value99[1]);

        PlotLine(4, 1, value99[2], CurrentBar, value99[2]);

    PlotLine(5, 1, value99[3], CurrentBar, value99[3]);

PlotLine(6, 1, value99[4], CurrentBar, value99[4]);

PlotLine(7, 1, value99[5], CurrentBar, value99[5]);

PlotLine(8, 1, value99[6], CurrentBar, value99[6]);

PlotLine(9, 1, value99[7], CurrentBar, value99[7]);

PlotLine(10, 1, value99[8], CurrentBar, value99[8]);

    end;

虎科大許教授 發文於   2026/01/18

你直接執行我下面的程式,繪製指標後,去開啟Print出來的檔案,就會知道原因。

Value1 = GetField("成交量");
Value2 = GetField("成交量")[1];
Value3 = Average(volume, 5);//5交易日
Value4 = Average(volume, 10);//10交易日
Condition1 = (Value1 > Value3 and Value1 > Value4) and ((Value1 > Value3 * 1.6) or (Value1 > Value4 * 1.6));
Value5 = (GetField("收盤價") - GetField("開盤價")) / GetField("收盤價") * 100;
Condition3 = Value5 >= 2;
Condition4 = GetField("收盤價") >= (GetField("最高價") * 0.98);
Value5 = (GetField("收盤價") - GetField("最低價")) / GetField("收盤價") * 100;
Condition5 = Value5 >= 5;
if ((Condition1 and Condition3 and Condition4) or (Condition1 and Condition5)) then
    begin
        value99 = low{ * 0.95};
        PlotLine(1, 1, value99, CurrentBar, value99, "支撐1");
        PlotLine(2, 1, value99[1], CurrentBar, value99[1], "支撐2");
        PlotLine(3, 1, value99[2], CurrentBar, value99[2], "支撐3");
        PlotLine(4, 1, value99[3], CurrentBar, value99[3], "支撐4");
        PlotLine(5, 1, value99[4], CurrentBar, value99[4], "支撐5");
        PlotLine(6, 1, value99[5], CurrentBar, value99[5], "支撐6");
        PlotLine(7, 1, value99[6], CurrentBar, value99[6], "支撐7");
        PlotLine(8, 1, value99[7], CurrentBar, value99[7], "支撐8");
        PlotLine(9, 1, value99[8], CurrentBar, value99[8], "支撐9");
        PlotLine(10, 1, value99[9], CurrentBar, value99[9], "支撐10");
        print(date,value99,value99[1],value99[2],value99[3],value99[4],value99[5],value99[6],value99[7],value99[8],value99[9]);
    end;

 

發表回覆
Close