fbpx

มือใหม่ Amibroker

  • ผู้สร้าง
    กระทู้
  • #5759
    Avatarนิรนาม
    ไม่เปิดใช้

    สวัสดีครับคุณมด ได้เริ่มอ่านบทความจาก mangmao มาประมาณ 1 อาทิตย์ และชื่อชอบ style การเล่นหุ้น Turtle Trade จึงตัดสินใจ ซื้อซีดี Super Trend มาดู หลังจากได้ดูซีดี Super Trend จบไป 2 รอบ

    จึงมีคำถามขึ้นมาเยอะแยะเต็มไปหมด รบกวนด้วยนะครับ บางคำถามอาจจะดูแปลกๆ แต่ค่อนข้างงงครับ

    1. โปรแกรม Amibroker ต้องทำการเขียน Indicator เองใช่ไหมครับ ถ้าไม่มีใน Ami

    2. จากนำเข้าข้อมูลลง Ami ผมได้โหลดข้อมูลจาก Meta มาจาก ASP แต่นำเข้า Database ไม่ได้ครับ จะแปลงข้อมูลผ่าน The Downloader ก็หาตัวลิ้งค์โหลดไม่เจอครับ

    3. พี่มดใช้วิธีการ Scan หุ้นที่ Breakout 20 วัน ของตลาด SET อย่างไรครับ ? หรือ ต้องดูหุ้นที่มีการเคลื่อนไหวในตลาด แล้วเปิดดูทีละตัว

    4. Position Unit ในของหุ้นแต่ละตัว เราเป็นคนกำหนดใช่ไหมครับ ว่าหุ้นแต่ละตัวจะซื้อกี่ % ของพอร์ต และจะซื้อไม้แรกกี่ % ของเงินลงทุน

    5. ผมนำ ATR มาใช้ในการซื้อหุ้นไม้ที่ 2 ถึงไม้ที่ 6 แต่สงสัยว่า ATR ที่นำมาใช้ มีค่า 0.15 แล้วพอเริ่มซื้อไม้ที่สอง ATR เพิ่มขึ้นเป็น 0.18 เราใช้ ATR ในครั้งแรกมาคิดคำนวณในการซื้อหุ้นไม้ต่อไป หรือ ต้องเปลี่ยนค่า ATR ทุกครั้งครับ ?

    6. จาก Turtle Trader ในการ Exits ใช้ในการหลุด low ของหุ้นย้อนหลัง 10 และ 20 วันตาม System 2 จึงอยากทราบว่าคุณมด ใช้ Indicator ตัวใดในการประเมินการ Exits ครับ?

    คำถามหลายข้อและอาจจะเข้าใจยาก แต่ถามด้วยความงงๆครับ เลยคำถามอาจจะดูงงๆ

    รบกวนด้วยครับ

    ขอบคุณครับ

กำลังดู 12 ข้อความตอบกลับ - 1 ผ่านทาง 12 (ของทั้งหมด 12)
  • ผู้เขียน
    ข้อความตอบกลับ
  • #5771
    Avatarนิรนาม
    ไม่เปิดใช้

    สอบถามเพิ่มเติมครับ

    การที่จะนำเข้าข้อมูลจาก

    http://inv2.asiaplus.co.th/cms/index2.php?sc=asp_res_present&tab=dm&ln=t

    ได้ข้อมูลทีละวัน ถ้าผมจะนำเข้าข้อมูลย้อนหลัง 2 ปีผมก็ต้องดาว์นโหลดย้อนหลังไปใช่ไหมครับ ?

    แต่สงสัยว่าถ้าแบบนั้นผมจะนำเข้า Database ยังไงครับ หมายถึงตอนแปลงไฟล์ ไฟล์มันไม่ทับกันเหรอครับ

    #5770
    Avatarนิรนาม
    ไม่เปิดใช้

    ตอบให้บางข้อครับ
    1. ใช่ครับ ถ้าไม่มีต้องเขียนเองหมด
    2. ลองดู Siamchart ครับ มีตั้งแต่ปี 1990
    3. อันนี้ผมก็รอคำตอบจากคุณมดเหมือนกันครับ คิดวิธีเขียนไม่ออก
    4. ถูกครับ แต่เราสามารถปรับค่าให้แต่ละตัวไม่เท่ากันได้ครับ ใช้ฟังก์ชั่น SetPositionSize ช่วย เช่น

    PosSize = RSI(14)/100 ; // RSI มากซื้อมาก RSI น้อยซื้อน้อย
    SetPositionSize(PosSize, spsPercentOfEquity) ; // เซ็ตให้ซื้อเป็นกี่ % ของ Equity

    5. ต้องใช้ ATR 0.18 ครับ เพราะคอนเซ็ปคือเรากำหนดปริมาณหุ้นจากความผันผวน ดังนั้นต้องใช้ความผันผวนล่าสุด ไม่ใช้ความผันผวนเริ่มแรก
    6. หมายถึงถ้าหลุด Low 10/20 แล้ว เมื่อใดถึงจะ Trigger คำสั่งขายใช่ไหมครับ ถ้าใช่ เมื่อหลุดคือต้องขายเลยครับ การหลุด Low 10/20 ในระบบ Turtle มันหมายถึงหุ้นได้หยุดการสร้างเทรนขาขึ้นไปแล้วครับ สังเกตุดีๆจะพบว่ามันเบรกไฺฮมาตลอด ไม่เคยมาสัมผัสโลว์เลย แต่อยู่ๆก็มาสัมผัสโลว์ 10/20 วัน นั่นแปลว่าหมดแรงแล้ว ให้ขายเอาไปซื้อตัวอื่นที่กำลังสร้างนิวไฮดีกว่าครับ

    #5769
    Avatarนิรนาม
    ไม่เปิดใช้

    ขอบคุณครับสำหรับคำตอบ สอบถามเพิ่มเติมครับ อย่างข้อมูลดิบที่เอามาลงใน Meta ถ้าต้องการข้อมูลย้อนหลัง 2 ปี ผมต้องดาว์นโหลด และ ลงทีละวัน จนครบ 2 ปีเลยเหรอครับ ?

    คือสงสัยว่าถ้าแบบนั้นจะนานมากเลยกว่าจะครบ

    เพราะหลังจากเข้าไปใน Siamchart ก็ต้องเป็นผู้สนับสนุนก่อนจึงจะได้ไฟล์ EOD แต่ก็สงสัยว่าเป็น EOD ที่ย้อนหลังหมดเลยใช่ไหม (รวบยอดเป็นไฟล์เดียว 2 ปี)

    สำหรับการ Trigger คำสั่งขาย ที่คุณ Coppuck ตอบมาผมสงสัยเพิ่มว่าเป็นการขายทั้งหมดที่ซื้อมาเลยใช่ไหมครับ? (เมื่อหลุด Low10/20)

    หรือเป็นการขายแบบปิรามิด แล้วหากเป็นปิรามิด จะมีการขายไม้ที่สองอย่างไรครับ

    แล้วถ้าผมใช้ ATR Tailing เป็น indicator ช่วยในการขายอีกตัว ควบคู่ไปด้วยได้ไหมครับ ? จะมีการสับสนหรือไม่

    #5768
    Avatarนิรนาม
    ไม่เปิดใช้

    เจอข้อมูลของ EOD ย้อนหลังแล้วครับ

    #5767
    Avatarนิรนาม
    ไม่เปิดใช้

    EOD Siamchart รวบยอดทีเดียว 30 ปีมั้งครับ เป็นไฟล์ .csv หลายพันไฟล์

    ส่วนการขาย Turtle จะแนะนำให้ขายหมดเลยครับ อยากขายแบบปิรามิดก็ได้ครับ เราไม่จำเป็นต้องทำตามทั้งหมด เพียงแต่สิ่งที่เขาแนะนำอย่างที่บอกไป คือให้ขายหุ้นที่หยุดทำนิวไฮแล้วไปเข้าตัวอื่นดีกว่าครับ ไม่ต้องกลัวขายหมูเพราะถ้าตัวนี้มันจะกลับมาเด้งใหม่ เดี๋ยวระบบก็เห็นมันเองครับเพราะมันจะเบรกไฺฮแล้วเราก็จะกลับไปซื้อเอง

    ATR Trailing ดีครับ ผมใช้แล้วพบว่าเพิ่ม CAR และลด MaxDD ได้ดีครับ ไม่สับสนด้วย ที่มันดีและไม่สับสนเพราะมันลงรอยกับสมการ LLV นั่นแหละครับ พื้นฐานมาจากที่เดียวกัน เพียงแต่ต่างกันที่รายละเอียด

    #5766
    Avatarนิรนาม
    ไม่เปิดใช้

    คุณ Coppuck สุดยอดอีกแล้ว ตอบได้ใจจริงๆ ขอบคุณครับ!

    ผมเสริมที่ยังไม่ได้ตอบ

    3. พี่มดใช้วิธีการ Scan หุ้นที่ Breakout 20 วัน ของตลาด SET อย่างไรครับ ? หรือ ต้องดูหุ้นที่มีการเคลื่อนไหวในตลาด แล้วเปิดดูทีละตัว

    ผมใช้คำสั่งเขียน Filter ให้ Amibroker ทำการ Explore ให้ครับไม่ได้ดูทีละตัว ส่วนการจะเขียนสูตรอ้างอิงดึงเอา Array จากตัว SET ให้ใช้คำสั่ง Foreign("SET","C") ครับโดยเปลี่ยนค่า C เป็น O, H, L แทนก็ได้ขึ้นอยู่กับ Array ที่เราต้องการจะใช้จากตัว SET Index ครับ

    ยกตัวอย่างง่ายๆเช่น Filter = cross(Foreign("SET","h"),ref(hhv(Foreign("SET","h"),-1)) and c>ma(C,50);

    เท่านี้ในวันที่ SET มีสัญญาณ Breakout เวลา Explore เราก็จะได้หุ้นตัวที่อยู่เหนือค่าเฉลี่ย 50 วันของมันออกมาแล้วครับ

    5. ผมนำ ATR มาใช้ในการซื้อหุ้นไม้ที่ 2 ถึงไม้ที่ 6 แต่สงสัยว่า ATR ที่นำมาใช้ มีค่า 0.15 แล้วพอเริ่มซื้อไม้ที่สอง ATR เพิ่มขึ้นเป็น 0.18 เราใช้ ATR ในครั้งแรกมาคิดคำนวณในการซื้อหุ้นไม้ต่อไป หรือ ต้องเปลี่ยนค่า ATR ทุกครั้งครับ ?

    ให้ใช้ค่า ATR ล่าสุดเพื่อปรับ Position Size ไปตามความผันผวนของตลาดที่กำลังเป็นไปครับ

    7. แล้วถ้าผมใช้ ATR Tailing เป็น indicator ช่วยในการขายอีกตัว ควบคู่ไปด้วยได้ไหมครับ ? จะมีการสับสนหรือไม่

    ลอง Test ดูนะครับ ส่วนใหญ่ก็จะช่วยได้ดีครับในกรณีที่มันไม่แคบหรือกว้างไปกว่า Trailing ตัวเดิมมากเกินครับ แต่ในกรณีระบบอื่นต้องดูอีกทีว่ามันจะเข้ากับ Entry ของระบบนั้นๆด้วยหรือไม่แค่ไหนครับ ^_^

    ปล. ถ้าจะเอากฏของ Turtle มาใช้ทั้งหมดแบบละเอียดในตลาดไทยไม่ค่อย Work ครับเพราะผมเคย Test ดูอย่างละเอียดแล้ว (แม้แต่ในตลาดเมกาตอนนี้ก็ไม่ค่อย Work แล้วครับเพราะคนมันใช้กันเยอะ+ตลาดมีประสิทธิภาพมากขึ้นด้วย) ประเด็นที่สำคัญคือพยายามเอาแนวคิดซึ่งเป็นหัวใจจากระบบ Turtle มาต่อยอดดูแล้วจะเห็นทางไปได้อีกไกลครับ ไม่ว่าจะเป็นการเล่นกับ Price Action เพียวๆ เรื่องของ Volatility Position Sizing หรือการมองผลกำไรเป็นค่า N Units แทนที่จะเป็นบาทหรือเป็น % ครับ

    #5765
    Avatarนิรนาม
    ไม่เปิดใช้

    ขอบคุณครับพี่มด เรื่องการเขียนสูตรยังไงผมอาจจะต้องรบกวนอีกรอบครับ 🙂

    ตอนนี้สงสัยเรื่องของการเข้า BREAKOUT 20 day

    สมมุติหุ้น A ตอนนี้ราคา 10 บาท ขึ้นมาจาก Trend ที่พักตัว 8 บาท

    ถ้าตอนนี้ผมมไม่มีหุ้นตัวนี้อยู่ แต่หุ้นกำลัง Bullish และทำการ Break 20 วัน ณ ราคา 10.50 แบบนี้ผมต้องเข้าซื้อตามระบบใช่ไหมครับ?

    หรือ จะเข้าเฉพาะช่วงที่เป็นการ Break 20 วันหรือ 55 วันในช่วงแรกของ Trend

    เพราะมันเป็นไปได้ ที่ผมจะเข้าช่วงปลายของ Trend

    #5764
    Avatarนิรนาม
    ไม่เปิดใช้

    เรื่องว่าจะเข้าเฉพาะไม้แรกหรือไม้หลังๆด้วยขึ้นอยู่กับ Preference เรื่องความเสี่ยงและผลตอบแทนของเราครับ เราเลือกได้แม้กระทั่งจะ Scale-In เป็น Pyramid เข้าไปเรื่อยๆก็ได้ แต่ทั้งนี้ความเสี่ยงหรือ Drawdown มักจะเพิ่มขึ้นตามผลตอบแทนไปด้วยครับ

    #5763
    Avatarนิรนาม
    ไม่เปิดใช้

    ตอนนี้ลง Ami โหลด Database และเริ่มลง Foumula ที่โหลดจากแหล่งต่างๆที่ต้องใช้มาลงแล้วครับ

    แต่ติดตรงที่ว่า
    Filter = cross(Foreign(“SET”,”h”),ref(hhv(Foreign(“SET”,”h”),-1)) and c>ma(C,50);

    ที่คุณมดบอกไว้ คือการเพิ่ม Fomula และเลือก Analysis แล้วก็ Explore ใช่หรือไม่ครับ ?

    ผมลองดูแล้วแต่ขึ้น error ครับ เลยต้องสอบถามว่าจากตัวสูตรที่ให้มา ต้องแก้ไขอย่างไรให้เข้ากับตัวของผมได้

    #5762
    Avatarนิรนาม
    ไม่เปิดใช้

    สอบถามเพิ่มเติมครับ ถ้าผมจะ Explore หาหุ้นเฉพาะใน SET เท่ากับผมต้องสร้าง Watch List ขึ้นมาใหม่ โดยเอาเฉพาะที่เราต้องการใช่ไหมครับ?

    เพราะไม่อย่างนั้นเวลา explore ก็จะมีหุ้นฝรั่ง หรือ option ออกมาเต็มไปหมด

    #5761
    Avatarนิรนาม
    ไม่เปิดใช้

    ได้ทำการลงข้อมูลและใช้ formula

    _SECTION_BEGIN("graph");
    SetChartOptions(0,chartShowArrows|chartShowDates);
    gxs=Param("GRAPH spaceing",10,5,50,5);
    GraphXSpace = gxs;
    strWeekday = StrMid("SunMonTueWedThuFriSat", SelectedValue(DayOfWeek())*3,3);
    _SECTION_END();
    _SECTION_BEGIN("NMA ");
    k = Optimize("K",Param("K",1.75,1,5,0.25),1,5,0.25);
    Per= Optimize("atr",Param("atr",10,3,30,1),3,30,1);
    j=(O+H+L+C)/4;
    nm= (H-L);
    rfsctor = WMA(nm, PER);
    revers = K * rfsctor;
    Trend = 1;
    NW[0] = 0;
    for(i = 1; i < BarCount; i++)
    {
    if(Trend[i-1] == 1)
    {
    if(j[i] NW[i-1])
    {
    NW[i] = j[i] - Revers[i];
    }
    else
    {
    NW[i] = NW[i-1];
    }
    }
    }
    if(Trend[i-1] == -1)
    {
    if(j[i] > NW[i-1])
    {
    Trend[i] = 1;
    NW[i] = j[i] - Revers[i];
    }
    else
    {
    Trend[i] = -1;
    if((j[i] + Revers[i]) BG2a ,UpCandle,IIf(Close < BR2a,DownCandle,Consolidation));
    SetBarFillColor( IIf(O BG2a,EncodeColor(colorLime)+" UP",WriteIf(CloseM5,EncodeColor(colorLime)+" UP",WriteIf(Cm5M15,EncodeColor(colorLime)+" UP",WriteIf(Cm15M30,EncodeColor(colorLime)+" UP",WriteIf(Cm30H1,EncodeColor(colorLime)+" UP",WriteIf(CH1H4,EncodeColor(colorLime)+" UP",WriteIf(Ch4BGH ,UpCandle,IIf(ac < BRH,DownCandle,Consolidation));
    SetBarFillColor( IIf(aO BGH,EncodeColor(colorLime)+" UP",WriteIf(aCH5,EncodeColor(colorLime)+" UP",WriteIf(cH5H15,EncodeColor(colorLime)+" UP",WriteIf(cH15H30,EncodeColor(colorLime)+" UP",WriteIf(cH30H1A,EncodeColor(colorLime)+" UP",WriteIf(Ch1AH4,EncodeColor(colorLime)+" UP",WriteIf(Ch4HBG ,colorAqua,IIf(Hac HBG,EncodeColor(colorLime)+" UP",WriteIf(Hac M5H,EncodeColor(colorLime)+" UP",WriteIf(cM5HM15H,EncodeColor(colorLime)+" UP",WriteIf(cM15HM30H,EncodeColor(colorLime)+" UP",WriteIf(cM30HH1H,EncodeColor(colorLime)+" UP",WriteIf(Ch1HH4H,EncodeColor(colorLime)+" UP",WriteIf(cH4H<HH4H,EncodeColor(colorRed)+" DN",EncodeColor(colorGrey50)+" ~~" ));

    //============
    //=====Title================================================================================================
    _SECTION_BEGIN("Title");
    if( Status("action") == actionIndicator )
    (
    Title = EncodeColor(colorBlack)+ " " + " - " + Name() + " - " + EncodeColor(colorRed)+ Interval(2) + EncodeColor(colorBlue) +
    " - " + Date() +" - "+ strWeekday +" - "+"n" +EncodeColor(colorGreen) +"Op-"+O+" "+"Hi-"+H+" "+"Lo-"+L+" "+
    "Cl-"+C+" "+ "Vol= "+ WriteVal(V)+"n----------------------"+
    EncodeColor(colorTan)+ Com+
    EncodeColor(colorGreen)+Comm2+"n---------system-------------"+"n"+
    EncodeColor(colorBlue)+
    WriteIf (Buy AND Ref(shrt,-1), " GO LONG / Reverse Signal at "+C+" ","")+
    WriteIf (Buy AND Ref(NOTrade,-1), " GO LONG at "+C+" ","")+EncodeColor(colorRed)+
    WriteIf (Sell AND Ref(NOTrade,-1), " GO Short at "+C+" ","")+
    WriteIf (Sell AND Ref(Long,-1), " EXIT LONG / Reverse Signal at "+C+" ","")+
    WriteIf (Cover, " cover "+C+" ",""));

    _SECTION_END();
    _SECTION_BEGIN("Background text");
    SetChartOptions(0,chartShowArrows|chartShowDates);
    C11=ParamColor("up panel",colorDarkOliveGreen );
    C12=ParamColor("dn panel",colorDarkGrey );
    C13=Param("fonts",20,10,30,1 );
    C14=Param("left-right",2.1,1.0,5.0,0.1 );
    C15=Param("up-down",12,1,20,1 );
    Miny = Status("axisminy");
    Maxy = Status("axismaxy");
    lvb = Status("lastvisiblebar");
    fvb = Status("firstvisiblebar");
    pxwidth = Status("pxwidth");
    pxheight = Status("pxheight");
    GfxSetBkMode( 0 );
    GfxSetOverlayMode(1);
    GfxGradientRect(0,0,pxwidth, pxheight, C11, C12 );
    GfxSelectFont("Tahoma", Status("pxheight")/C13 );
    GfxSetTextAlign( 6 );
    GfxTextOut( Name(), Status("pxwidth")/C14, Status("pxheight")/C15 );
    GfxSelectFont("Tahoma", Status("pxheight")/C13*0.5 );
    GfxTextOut( "ATR Stop&Reverse", Status("pxwidth")/C14, Status("pxheight")/C15*2.5 );
    GfxSelectFont("Tahoma", Status("pxheight")/C13*0.5 );
    GfxTextOut( " ", Status("pxwidth")/C14, Status("pxheight")/C15*4 );
    _SECTION_END();

    _SECTION_BEGIN("Volume");
    Plot( Volume, _DEFAULT_NAME(), ParamColor("Color", colorBlueGrey ), ParamStyle( "Style", styleHistogram | styleOwnScale | styleThick, maskHistogram ), 2 );
    _SECTION_END();

    #5760
    Avatarนิรนาม
    ไม่เปิดใช้

    ซึ่งได้ก๊อปมาจากเว็บของ โฉลกอีกทีครับ แต่ก็มีหุ้นหลายตัวที่ข้อมูลเป็นแบบในรูปภาพครับ

    บางตัวเป็นบางวัน บางตัวเป็นทุกวัน

    ข้อมูลผมเอามาจาก siam chart ครับ

    ไม่ทราบว่าเกิดจาก formula หรือ เกิดจากฐานข้อมูลครับ

    ขอบคุณครับ

กำลังดู 12 ข้อความตอบกลับ - 1 ผ่านทาง 12 (ของทั้งหมด 12)
  • คุณต้องเข้าสู่ระบบเพื่อตอบกลับกระทู้นี้