人人爽天天爽夜夜爽qc-人人爽天天爽夜夜爽曰-人人天天爱天天做天天摸-人人天天夜夜-色网站在线-色网站在线看

您現(xiàn)在的位置:程序化交易>> 期貨公式>> (MC)multicharts>> MC知識>>正文內(nèi)容

@Alex,請幫忙看看下面代碼是不是有問題? [MC]

  • MC用戶求助:

    采用tick周期

    目的是價(jià)格比13.10低0.04就買入,比13.10高0.05就賣出

    以買入為例:

    如果買入成功后,13.10變成13.06,比13.06高0.05賣出,比13.06低0.04買入,以此類推;

    vars:mpab(0),order_status(0),order_no(1),cen(13.10),up(0.05),down(0.04);{mpab記錄實(shí)盤證券帳號的總股數(shù),order_status記錄成交狀態(tài),cen代表當(dāng)前參考價(jià)格,up,down分別為上下波動}

    if MarketPosition_at_Broker > 0 then

    ? ? mpab = MarketPosition_at_Broker;

    ?

    if mpab[2] > 0 then {試驗(yàn)發(fā)現(xiàn),無論給mpab什么值,發(fā)生了mpab = MarketPosition_at_Broker后,總是mpab[1]=0,所以參考bar設(shè)為3,mpab[2] >0 保證解決了初始0值的問題,如果初始是0,則condition1一開始都是成立的}

    ?

    begin?

    condition1 = mpab > mpab[1];

    condition2 = mpab < mpab[1];

    condition3 = mpab = mpab[1];

    condition4 = close - cen >= up;

    condition5 = cen - close >= down;

    if condition3 and order_status = 0 then

    begin

    ? ? if condition4 then

    ? ? begin

    ? ? ? ? sell 200 shares from entry(text(order_no)) next bar at market;

    ? ? ? ? print("----sell----");

    ? ? ? ? order_no = order_no -1;

    ? ? ? ? order_status = 1;

    ? ? end;

    ? ??

    ? ? if condition5 then

    ? ? begin

    ? ? ? ? order_no = order_no + 1;? ??

    ? ? ? ? buy (text(order_no)) 200 shares next bar at market;? ??

    ? ? ? ? print("++++buy++++");? ??

    ? ? ? ? order_status = 1;

    ? ? end;? ??

    end;

    ?

    if condition1 then?

    begin

    ? ? cen = cen + up;

    ? ? order_status = 0;

    end;

    ?

    if condition2 then?

    begin

    ? ? cen = cen - down;

    ? ? order_status = 0;

    end;

    end;

    print(cen,"? ? ",mpab,"? ? ",mpab[1],"? ? ",order_status ,"? ? ", order_no);

    問題出在實(shí)盤模擬的時候,打印了++++buy++++,但是圖上面沒有標(biāo)定買入信號,mpab的值沒有變化,電腦右下也沒有彈出發(fā)出委托的氣泡,請問這是哪里除了問題?

    打印結(jié)果如下:?
    13.10? ? 101400.00? ? 101400.00? ?? ? 0.00? ?? ? 1.00
    ??13.10? ? 101400.00? ? 101400.00? ?? ? 0.00? ?? ? 1.00
    ++++buy++++
    ??13.10? ? 101400.00? ? 101400.00? ?? ? 1.00? ?? ? 2.00
    ??13.10? ? 101400.00? ? 101400.00? ?? ? 1.00? ?? ? 2.00
    ??13.10? ? 101400.00? ? 101400.00? ?? ? 1.00? ?? ? 2.00

    (來自舊論壇客戶,thgink)

    ?

  • MC回復(fù)討論一:

    您的代碼中有一個bug,您應(yīng)該在開啟自動交易時手動輸入了初始倉位,這個也在您的初始參數(shù)order_no初始值為1中看出來了,我將在下面點(diǎn)出您的問題,假設(shè)都已經(jīng)開啟自動交易了,并且手動輸入了101400股:

    第一、初始輸入會在圖表上標(biāo)記"Initial Entry",所以按照您代碼中的方式,您一直賣不出去,因?yàn)槟莊rom entry(text(order_no)),而不是from entry("Initial Entry")。

    第二、如果價(jià)格在開啟自動交易之后下降然后執(zhí)行市價(jià)買入命令,我猜測您因?yàn)槭褂媚J(rèn)允許同一方向一筆進(jìn)場,如果是這樣的話,因?yàn)閳D表已經(jīng)有初始多頭進(jìn)場了,后續(xù)即使?jié)M足進(jìn)場條件也不會再多頭進(jìn)場。

    第三、基于上面兩點(diǎn),您肯定不能賣出股票也不能買入股票;另外,由于代碼“if MarketPosition_at_Broker > 0 then

    ? ? mpab = MarketPosition_at_Broker;”的存在,所以一旦mpab不為0,那么導(dǎo)致后續(xù)mpab一直不為0

    第四、另外,問一下,您使用是SA模式還是AA模式,使用的是真回報(bào)還是假回報(bào)?

    ?

  • MC回復(fù)討論二:

    SA,真回報(bào)

    設(shè)置的是同一方向允許6500筆進(jìn)場

    這里的邏輯是昨日收盤,受傷已經(jīng)有很多股票才會執(zhí)行程序,如果沒有股票則什么也不做

    ?

    那個bug我也直到,所以真是的使用的是這個

    if condition4 then

    begin

    if order_no > 1 then?

    begin

    sell 200 shares from entry(text(order_no)) this bar on close;

    order_no = order_no -1;

    end

    else

    sell 200 shares from entry("Initial Entry") this bar on close;

    print("----sell----");

    ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??

    order_status = 1;

    end;

    ?

    這兩個似乎都不是問題的關(guān)鍵,問題的關(guān)鍵是MarketPosition_at_Broker不行,換成marketposition*currentshares初步看來就可以了,我本來的目標(biāo)是想通過實(shí)時的獲取券商處的股票數(shù),以判定實(shí)際上是否發(fā)生成交,可是加載策略的時候會把歷史數(shù)據(jù)計(jì)算一次,這會導(dǎo)致一些問題,但是也不是關(guān)鍵,不是歷史數(shù)據(jù)導(dǎo)致的問題就是發(fā)不出單

    我想請教:具體得知成交了用那種方式最靠譜?我指的相對靠譜是說確實(shí)成交了,比如掛單200股賣出,我確實(shí)賣了200股

    其實(shí),只有一個方式才是穩(wěn)妥的,就是能否根據(jù)時刻獲取持股數(shù),比如在t時刻觸發(fā)條件,做出了買或賣,這時候?qū)時刻的持股數(shù)記錄下來,在對比t之后每個時刻的持股數(shù),如果有變動,變動在預(yù)期值,這說明按要求發(fā)單且成交了。我這個方案的問題在于邏輯上要求得到瞬時變化,這要求我有點(diǎn)高了,可能也與multicharts的每個bar運(yùn)行一次的邏輯有沖突。還像請教您一下,能否獲得比如一小時前的持倉數(shù)?雖然現(xiàn)在并不需要這么做了。

    ?

    ?

  • MC回復(fù)討論三:

    后來改成這樣了:

    [SameExitFromOneEntryOnce = false];

    vars:cen(13.40), tims(0),cur(0), up(0.03),down(0.03),cur_r(0),size(200),order_status(0),order_no(0),var1(0);

    ?

    var1 = 0;

    ?

    if 0 >= marketposition_at_broker then buy ("Initial Entry") 10000 shares this bar on close;

    cur = currentshares;

    if marketposition_at_broker> 0 then

    begin

    ? ? ? ? ? ? ? ? if order_status = 1 and var1 = 0 then

    ? ? ? ? ? ? ? ? begin

    ? ? ? ? ? ? ? ? ? ? ? ? var1 = 1;

    ? ? ? ? ? ? ? ? ? ? ? ? print("order_status = 1 and var1 = 0 ",cur_r,"? ",cur," ",time_s);? ? ? ? ? ? ? ??

    ? ? ? ? ? ? ? ? ? ? ? ? if cur_r - cur >= size then

    ? ? ? ? ? ? ? ? ? ? ? ? begin?

    ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? print("condition3:",cur_r,"? ",cur," ",time_s);

    ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? order_status = 0;

    ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? cen = cen + up;

    ? ? ? ? ? ? ? ? ? ? ? ? end;? ? ? ??

    ? ? ? ? ? ? ? ? ? ? ? ? if cur - cur_r >= size then

    ? ? ? ? ? ? ? ? ? ? ? ? begin

    ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? print("condition4:",cur_r,"? ",cur," ",time_s);

    ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? order_status = 0;

    ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? cen = cen - down;

    ? ? ? ? ? ? ? ? ? ? ? ? end;

    ? ? ? ? ? ? ? ? end;

    ?

    ? ? ? ? if close - cen >= up and order_status = 0 and var1 = 0 then

    ? ? ? ? begin

    ? ? ? ? ? ? ? ? print("condition1 and order_status = 0 and var1 = 0"," ",time_s);

    ? ? ? ? ? ? ? ? tims = time_s;

    ? ? ? ? ? ? ? ? if order_no >= 1 then

    ? ? ? ? ? ? ? ? begin

    ? ? ? ? ? ? ? ? sell size shares from entry(text(order_no)) this bar on close;

    ? ? ? ? ? ? ? ? order_no = order_no - 1;

    ? ? ? ? ? ? ? ? end

    ? ? ? ? ? ? ? ? else

    ? ? ? ? ? ? ? ? begin

    ? ? ? ? ? ? ? ? sell size shares from entry("Initial Entry") this bar on close;

    ? ? ? ? ? ? ? ? order_no = 0;

    ? ? ? ? ? ? ? ? end;

    ? ? ? ? ? ? ? ? print("----"," ",time_s);

    ? ? ? ? ? ? ? ??

    ? ? ? ? ? ? ? ? order_status = 1;? ? ? ??

    ? ? ? ? ? ? ? ? var1 = 1;? ? ? ??

    ? ? ? ? end;

    ? ? ? ? if cen - close >= down and order_status = 0 and var1 = 0 then

    ? ? ? ? begin

    ? ? ? ? ? ? ? ? print("condition2 and order_status = 0 and var1 = 0"," ",time_s);

    ? ? ? ? ? ? ? ? tims = time_s;

    ? ? ? ? ? ? ? ? order_no = order_no + 1;

    ? ? ? ? ? ? ? ? buy (text(order_no)) size shares this bar on close;

    ? ? ? ? ? ? ? ? print("++++"," ",time_s);

    ? ? ? ? ? ? ? ? order_status = 1;? ? ? ? ? ? ? ??

    ? ? ? ? ? ? ? ? var1 =1;

    ? ? ? ? end;?

    ? ? ? ? if time_s = tims then?

    ? ? ? ? begin

    ? ? ? ? print("time_s = tims "," ",time_s);?

    ? ? ? ? cur_r= currentshares;

    ? ? ? ? end;

    ? ? ? ??

    end;

    ?

    print(currentbar,"? ? ",var1, "? ? ",tims,"? ?",order_status,"? ? ",order_no,"? ? ",close,"? ?",cen,"? ? ",cur,"? ? ",cur_r,"? ? ",time_s);

    ? ? ? ??

    應(yīng)該沒問題了。

    多謝指導(dǎo)!

    ?

    ?

  • MC回復(fù)討論四:

    后來改成這樣了:

    [SameExitFromOneEntryOnce = false];

    vars:cen(13.40), tims(0),cur(0), up(0.03),down(0.03),cur_r(0),size(200),order_status(0),order_no(0),var1(0);

    ?

    var1 = 0;

    ?

    if 0 >= marketposition_at_broker then buy ("Initial Entry") 10000 shares this bar on close;

    cur = currentshares;

    if marketposition_at_broker> 0 then

    begin

    ? ? ? ? ? ? ? ? if order_status = 1 and var1 = 0 then

    ? ? ? ? ? ? ? ? begin

    ? ? ? ? ? ? ? ? ? ? ? ? var1 = 1;

    ? ? ? ? ? ? ? ? ? ? ? ? print("order_status = 1 and var1 = 0 ",cur_r,"? ",cur," ",time_s);? ? ? ? ? ? ? ??

    ? ? ? ? ? ? ? ? ? ? ? ? if cur_r - cur >= size then

    ? ? ? ? ? ? ? ? ? ? ? ? begin?

    ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? print("condition3:",cur_r,"? ",cur," ",time_s);

    ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? order_status = 0;

    ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? cen = cen + up;

    ? ? ? ? ? ? ? ? ? ? ? ? end;? ? ? ??

    ? ? ? ? ? ? ? ? ? ? ? ? if cur - cur_r >= size then

    ? ? ? ? ? ? ? ? ? ? ? ? begin

    ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? print("condition4:",cur_r,"? ",cur," ",time_s);

    ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? order_status = 0;

    ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? cen = cen - down;

    ? ? ? ? ? ? ? ? ? ? ? ? end;

    ? ? ? ? ? ? ? ? end;

    ?

    ? ? ? ? if close - cen >= up and order_status = 0 and var1 = 0 then

    ? ? ? ? begin

    ? ? ? ? ? ? ? ? print("condition1 and order_status = 0 and var1 = 0"," ",time_s);

    ? ? ? ? ? ? ? ? tims = time_s;

    ? ? ? ? ? ? ? ? if order_no >= 1 then

    ? ? ? ? ? ? ? ? begin

    ? ? ? ? ? ? ? ? sell size shares from entry(text(order_no)) this bar on close;

    ? ? ? ? ? ? ? ? order_no = order_no - 1;

    ? ? ? ? ? ? ? ? end

    ? ? ? ? ? ? ? ? else

    ? ? ? ? ? ? ? ? begin

    ? ? ? ? ? ? ? ? sell size shares from entry("Initial Entry") this bar on close;

    ? ? ? ? ? ? ? ? order_no = 0;

    ? ? ? ? ? ? ? ? end;

    ? ? ? ? ? ? ? ? print("----"," ",time_s);

    ? ? ? ? ? ? ? ??

    ? ? ? ? ? ? ? ? order_status = 1;? ? ? ??

    ? ? ? ? ? ? ? ? var1 = 1;? ? ? ??

    ? ? ? ? end;

    ? ? ? ? if cen - close >= down and order_status = 0 and var1 = 0 then

    ? ? ? ? begin

    ? ? ? ? ? ? ? ? print("condition2 and order_status = 0 and var1 = 0"," ",time_s);

    ? ? ? ? ? ? ? ? tims = time_s;

    ? ? ? ? ? ? ? ? order_no = order_no + 1;

    ? ? ? ? ? ? ? ? buy (text(order_no)) size shares this bar on close;

    ? ? ? ? ? ? ? ? print("++++"," ",time_s);

    ? ? ? ? ? ? ? ? order_status = 1;? ? ? ? ? ? ? ??

    ? ? ? ? ? ? ? ? var1 =1;

    ? ? ? ? end;?

    ? ? ? ? if time_s = tims then?

    ? ? ? ? begin

    ? ? ? ? print("time_s = tims "," ",time_s);?

    ? ? ? ? cur_r= currentshares;

    ? ? ? ? end;

    ? ? ? ??

    end;

    ?

    print(currentbar,"? ? ",var1, "? ? ",tims,"? ?",order_status,"? ? ",order_no,"? ? ",close,"? ?",cen,"? ? ",cur,"? ? ",cur_r,"? ? ",time_s);

    ? ? ? ??

    應(yīng)該沒問題了。

    多謝指導(dǎo)!

    ?

 

有思路,想編寫各種指標(biāo)公式,程序化交易模型,選股公式,預(yù)警公式的朋友

可聯(lián)系技術(shù)人員 QQ: 511411198  點(diǎn)擊這里給我發(fā)消息進(jìn)行 有償 編寫!不貴!點(diǎn)擊查看價(jià)格!


【字體: 】【打印文章】【查看評論

相關(guān)文章

    沒有相關(guān)內(nèi)容
主站蜘蛛池模板: 丁香六月激情 | 狠狠狠很橹影院 | 国产精品亚洲午夜不卡 | 欧美日韩天堂 | 国产偷倩视频 | 美女天天射 | 91精品在线观看视频 | 国产农村一二三区 | 天天摸天天做天天爽水多 | 国内精品视频在线观看 | a丫久久久久久一级毛片 | 国产欧美日韩视频怡春院 | 亚洲欧美在线播放 | 另类黄色 | a一级毛片免费播放 | 欧美精品1区 | 一个人在线视频免费观看www | 国产精品免费一区二区区 | 亚洲激情影院 | 国产1页| 中文字幕在线免费看 | 日韩资源在线 | 一级做a爰片性色毛片16美国 | 一级α一级α片免费观看网站 | 激情综合在线 | 美女日批视频在线观看 | 亚州中文| 亚洲欧美日本一区 | 九九精品国产99精品 | 国产精品小黄鸭一区二区三区 | 伊人精品视频在线观看 | 国产16页 | 国产成人一区二区三区影院免费 | 开心成人激情 | 美女的激情影院 | 深夜在线视频免费网址 | 成人看片黄a在线看 | 成人男女网免费 | 亚洲国产片高清在线观看 | 欧美亚洲性色影视在线 | 久久精品国产精品亚洲综合 |