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

您現在的位置:程序化交易>> 期貨公式>> 文華財經>> 文華財經知識>>正文內容

蝴蝶代碼 [文華財經]

  • 咨詢內容:  Inputs:
    Length(100),
    Strength(8),
    Tolerance(0.10),
    BullColor(Blue),
    BearColor(Red); 
    Variables:
    F1(0.618),
    F2(0.786),
    F3(1.27),
    F4(1.618),
    P1Bar(-1),
    P2Bar(-1),
    T1Bar(-1),
    T2Bar(-1),
    P1(0.0),
    P2(0.0),
    T1(0.0),
    T2(0.0),
    PTValid(False),
    HLValid(False),
    InZone(False),
    GD(0.0),
    XA(0.0),
    AB(0.0),
    BC(0.0),
    CD(0.0),
    AD(0.0),
    C1(False),
    C2(False),
    C3(False),
    C4(False),
    ABdXA(0.0),
    BCdAB(0.0),
    CDdBC(0.0),
    ADdXA(0.0),
    TL1(-1),
    TL2(-1),
    TL3(-1),
    TL4(-1),
    TL5(-1),
    TL6(-1);
    P1Bar = SwingHighBar(1, High, Strength, Length);
    P2Bar = SwingHighBar(2, High, Strength, Length);
    T1Bar = SwingLowBar(1, Low, Strength, Length);
    T2Bar = SwingLowBar(2, Low, Strength, Length);
    If P1Bar <> -1 and
    P2Bar <> -1 and
    T1Bar <> -1 and
    T2Bar <> -1 Then Begin
    {Test for a bullish 222}
    {Trough X is T2}
    T2 = Low[T2Bar];
    {Peak A is P2}
    P2 = High[P2Bar];
    {Trough B is T1}
    T1 = Low[T1Bar];
    {Peak C is P1}
    P1 = High[P1Bar];
    {D is the buy point}
    GD = Low;
    PTValid = P1Bar < T1Bar and T1Bar < P2Bar and P2Bar < T2Bar;
    HLValid = P1 < P2 and T1 > T2 and P1 > T1;
    InZone = GD < T1 and GD > T2 and P2 >= Highest(High, T2Bar);
    If PTValid and HLValid and InZone Then Begin
    XA = P2 - T2;
    AB = P2 - T1;
    BC = P1 - T1;
    CD = P1 - GD;
    AD = P2 - GD;
    ABdXA = AB / XA; {AB should be 61.8% of XA}
    C1 = ABdXA > F1 - Tolerance and ABdXA < F1 + Tolerance;
    BCdAB = BC / AB; {BC should be 61.8-78.6% of AB}
    C2 = BCdAB > F1 - Tolerance and BCdAB < F2 + Tolerance;
    CDdBC = CD / BC; {CD should be 127-161.8% of BC}
    C3 = CDdBC > F3 - Tolerance and CDdBC < F4 + Tolerance;
    ADdXA = AD / XA; {AD should be 78.6% of XA}
    C4 = ADdXA > F2 - Tolerance and ADdXA < F2 + Tolerance;
    If C1 and C2 and C3 and C4 Then Begin
    TL1 = TL_New(Date[T2Bar], Time[T2Bar], T2, Date[P2Bar], Time[P2Bar], P2);
    If TL1 >= 0 Then Begin
    TL_SetColor(TL1, BullColor);
    TL_SetStyle(TL1, Tool_Solid);
    TL_SetSize(TL1, 2);
    End;
    TL2 = TL_New(Date[P2Bar], Time[P2Bar], P2, Date[T1Bar], Time[T1Bar], T1);
    If TL2 >= 0 Then Begin
    TL_SetColor(TL2, BullColor);
    TL_SetStyle(TL2, Tool_Solid);
    TL_SetSize(TL2, 2);
    End;
    TL3 = TL_New(Date[T1Bar], Time[T1Bar], T1, Date[P1Bar], Time[P1Bar], P1);
    If TL3 >= 0 Then Begin
    TL_SetColor(TL3, BullColor);
    TL_SetStyle(TL3, Tool_Solid);
    TL_SetSize(TL3, 2);
    End;
    TL4 = TL_New(Date[P1Bar], Time[P1Bar], P1, Date, Time, GD);
    If TL4 >= 0 Then Begin
    TL_SetColor(TL4, BullColor);
    TL_SetStyle(TL4, Tool_Solid);
    TL_SetSize(TL4, 2);
    End;
    TL5 = TL_New(Date[T1Bar], Time[T1Bar], T1, Date, Time, GD);
    If TL5 >= 0 Then Begin
    TL_SetColor(TL5, BullColor);
    TL_SetStyle(TL5, Tool_Dotted);
    End;
    TL6 = TL_New(Date[T2Bar], Time[T2Bar], T2, Date, Time, GD);
    If TL6 >= 0 Then Begin
    TL_SetColor(TL6, BullColor);
    TL_SetStyle(TL6, Tool_Dotted);
    End;
    End;
    End;
    {Test for a bearish 222}
    {Peak X is P2}
    {Trough A is T2}
    {Peak B is P1}
    {Trough C is T1}
    {GD is the short point}
    GD = High;
    PTValid = T1Bar < P1Bar and P1Bar < T2Bar and T2Bar < P2Bar;
    HLValid = T1 > T2 and P1 < P2 and T1 < P1;
    InZone = GD > P1 and GD < P2 and T2 <= Lowest(Low, P2Bar);
    If PTValid and HLValid and InZone Then Begin
    XA = P2 - T2;
    AB = P1 - T2;
    BC = P1 - T1;
    CD = GD - T1;
    AD = GD - T2;
    ABdXA = AB / XA; {AB should be 61.8% of XA}
    C1 = ABdXA > F1 - Tolerance and ABdXA < F1 + Tolerance;
    BCdAB = BC / AB; {BC should be 61.8-78.6% of AB}
    C2 = BCdAB > F1 - Tolerance and BCdAB < F2 + Tolerance;
    CDdBC = CD / BC; {CD should be 127-161.8% of BC}
    C3 = CDdBC > F3 - Tolerance and CDdBC < F4 + Tolerance;
    ADdXA = AD / XA; {AD should be 78.6% of XA}
    C4 = ADdXA > F2 - Tolerance and ADdXA < F2 + Tolerance;
    If C1 and C2 and C3 and C4 Then Begin
    TL1 = TL_New(Date[P2Bar], Time[P2Bar], P2, Date[T2Bar], Time[T2Bar], T2);
    If TL1 >= 0 Then Begin
    TL_SetColor(TL1, BearColor);
    TL_SetStyle(TL1, Tool_Solid);
    TL_SetSize(TL1, 2);
    End;
    TL2 = TL_New(Date[T2Bar], Time[T2Bar], T2, Date[P1Bar], Time[P1Bar], P1);
    If TL2 >= 0 Then Begin
    TL_SetColor(TL2, BearColor);
    TL_SetStyle(TL2, Tool_Solid);
    TL_SetSize(TL2, 2);
    End;
    TL3 = TL_New(Date[P1Bar], Time[P1Bar], P1, Date[T1Bar], Time[T1Bar], T1);
    If TL3 >= 0 Then Begin
    TL_SetColor(TL3, BearColor);
    TL_SetStyle(TL3, Tool_Solid);
    TL_SetSize(TL3, 2);
    End;
    TL4 = TL_New(Date[T1Bar], Time[T1Bar], T1, Date, Time, GD);
    If TL4 >= 0 Then Begin
    TL_SetColor(TL4, BearColor);
    TL_SetStyle(TL4, Tool_Solid);
    TL_SetSize(TL4, 2);
    End;
    TL5 = TL_New(Date[P1Bar], Time[P1Bar], P1, Date, Time, GD);
    If TL5 >= 0 Then Begin
    TL_SetColor(TL5, BearColor);
    TL_SetStyle(TL5, Tool_Dotted);
    End;
    TL6 = TL_New(Date[P2Bar], Time[P2Bar], P2, Date, Time, GD);
    If TL6 >= 0 Then Begin
    TL_SetColor(TL6, BearColor);
    TL_SetStyle(TL6, Tool_Dotted);
    End;
    End;
    End;
    End;


    Wealth-Lab code:
    procedure Gartley222
    (
    VPFactor: float;
    Tolerance: float;
    Lookback: integer;
    HoldBars: integer;
    VolMin: integer
    );
    begin
    var ATRValue, VP, Reversal: float;
    var F1, F2, F3, F4, P1, P2, T1, T2: float;
    var Bar, P1Bar, P2Bar, T1Bar, T2Bar, p: integer;
    var XA, AB, BC, CD, AD, D, XD, DT, ABdXA, BCdAB, CDdBC, ADdXA: float;
    var PTValid, HLValid, InZone, C1, C2, C3, C4: boolean;
    var BT, BS, ST, SS: float;
    {Fibonacci Constants}
    F1 := 0.618;
    F2 := 0.786;
    F3 := 1.27;
    F4 := 1.618;
    InstallTimeBasedExit(HoldBars);
    for Bar := Lookback to BarCount() - 1 do
    begin
    ApplyAutoStops(Bar);
    ATRValue := ATR(Bar, Lookback);
    SetShareSize( 1000 * Int( 10 / ATRValue ) );
    VP := 100 * ATRValue / PriceClose(Bar);
    {Find peaks and troughs}
    Reversal := Int(VPFactor * VP);
    P1 := Peak(Bar, #High, F1 * Reversal);
    P1Bar := PeakBar(Bar, #High, F1 * Reversal);
    P2 := Peak(P1Bar, #High, Reversal);
    P2Bar := PeakBar(P1Bar, #High, Reversal);
    T1 := Trough(Bar, #Low, F1 * Reversal);
    T1Bar := TroughBar(Bar, #Low, F1 * Reversal);
    T2 := Trough(T1Bar, #Low, Reversal);
    T2Bar := TroughBar(T1Bar, #Low, Reversal);
    {Test for a bullish 222}
    {Trough X is T2}
    {Peak A is P2}
    {Trough B is T1}
    {Peak C is P1}
    {D is the buy zone}
    D := PriceLow(Bar);
    PTValid := (P1Bar > T1Bar) and (T1Bar > P2Bar) and (P2Bar > T2Bar);
    HLValid := (P1 < P2) and (T1 > T2) and (P1 > T1);
    InZone := (D < T1) and (D > T2);
    if (MarketPosition = 0) and
    (SMA(Bar, #Volume, Lookback) >= VolMin) and
    (PTValid) and (HLValid) and (InZone) then
    begin
    XA := P2 - T2;
    AB := P2 - T1;
    BC := P1 - T1;
    XD := P2 - (F2 * XA);
    CD := P1 - XD;
    AD := P2 - XD;
    ABdXA := AB / XA; {AB should be 61.8% of XA}
    C1 := (ABdXA > F1 - Tolerance) and (ABdXA < F1 + Tolerance);
    BCdAB := BC / AB; {BC should be 61.8-78.6% of AB}
    C2 := (BCdAB > F1 - Tolerance) and (BCdAB < F2 + Tolerance);
    CDdBC := CD / BC; {CD should be 127-161.8% of BC}
    C3 := (CDdBC > F3 - Tolerance) and (CDdBC < F4 + Tolerance);
    ADdXA := AD / XA; {AD should be 78.6% of XA}
    C4 := (ADdXA > F2 - Tolerance) and (ADdXA < F2 + Tolerance);
    if C1 and C2 and C3 and C4 then
    begin
    DrawLine(P2Bar, P2, T2Bar, T2, 0, #Blue, #Solid);
    DrawLine(T1Bar, T1, P2Bar, P2, 0, #Blue, #Solid);
    DrawLine(P1Bar, P1, T1Bar, T1, 0, #Blue, #Solid);
    DrawLine(Bar, D, P1Bar, P1, 0, #Blue, #Solid);
    DrawLine(Bar, D, T1Bar, T1, 0, #Blue, #Dotted);
    DrawLine(Bar, D, T2Bar, T2, 0, #Blue, #Dotted);
    AnnotateBar('B', Bar, True, #Blue, 10);
    BuyAtLimit(Bar, XD, 'G222 LE');
    DT := F1 * CD;
    BT := XD + DT;
    BS := T2;
    end;
    end;
    {Test for a bearish 222}
    {Peak X is P2}
    {Trough A is T2}
    {Peak B is P1}
    {Trough C is T1}
    {D is the short zone}
    D := PriceHigh(Bar);
    PTValid := (T1Bar > P1Bar) and (P1Bar > T2Bar) and (T2Bar > P2Bar);
    HLValid := (T1 > T2) and (P1 < P2) and (T1 < P1);
    InZone := (D > P1) and (D < P2);
    if (MarketPosition = 0) and
    (PriceClose( Bar ) >= 5) and
    (SMA(Bar, #Volume, Lookback) >= VolMin) and
    (PTValid) and (HLValid) and (InZone) then
    begin
    XA := P2 - T2;
    AB := P1 - T2;
    BC := P1 - T1;
    XD := T2 + (F2 * XA);
    CD := XD - T1;
    AD := XD - T2;
    ABdXA := AB / XA; {AB should be 61.8% of XA}
    C1 := (ABdXA > F1 - Tolerance) and (ABdXA < F1 + Tolerance);
    BCdAB := BC / AB; {BC should be 61.8-78.6% of AB}
    C2 := (BCdAB > F1 - Tolerance) and (BCdAB < F2 + Tolerance);
    CDdBC := CD / BC; {CD should be 127-161.8% of BC}
    C3 := (CDdBC > F3 - Tolerance) and (CDdBC < F4 + Tolerance);
    ADdXA := AD / XA; {AD should be 78.6% of XA}
    C4 := (ADdXA > F2 - Tolerance) and (ADdXA < F2 + Tolerance);
    if C1 and C2 and C3 and C4 then
    begin
    DrawLine(T2Bar, T2, P2Bar, P2, 0, #Red, #Solid);
    DrawLine(P1Bar, P1, T2Bar, T2, 0, #Red, #Solid);
    DrawLine(T1Bar, T1, P1Bar, P1, 0, #Red, #Solid);
    DrawLine(Bar, D, T1Bar, T1, 0, #Red, #Solid);
    DrawLine(Bar, D, P1Bar, P1, 0, #Red, #Dotted);
    DrawLine(Bar, D, P2Bar, P2, 0, #Red, #Dotted);
    AnnotateBar('S', Bar, False, #Red, 10);
    ShortAtLimit(Bar, XD, 'G222 SE');
    DT := F1 * CD;
    ST := XD - DT;
    SS := P2;
    end;
    end;
    if LastPositionActive then
    begin
    if MarketPosition = 1 then begin
    SellAtLimit(Bar+1, BT, #All, 'G222 LX+');
    SellAtStop(Bar+1, BS, #All, 'G222 LX-');
    end;
    if MarketPosition = -1 then begin
    CoverAtLimit(Bar+1, ST, #All, 'G222 LX+');
    CoverAtStop(Bar+1, SS, #All, 'G222 LX-');
    end;
    end;
    end;
    end;
    Gartley222(2.0, 0.1, 20, 7, 2000000); 

     

  • 文華技術人員:  麥語言中不能兼容此編寫的
    另  您的源碼是哪個平臺的  具體是怎樣的需求可以詳細說明下的
    我們查看下是否可以通過改寫實現

     

  • 文華客服:  這是 Mt4 平臺的 Gartley222蝴蝶指標源碼,勞駕改一下文華能用的

     

  • 網友回復:  抱歉以上源碼無法實現改寫的原因麥語言中無法實現TL_SetColor TL_SetStyle  TL_SetSize 等函數的替代改寫的
    未來我們會考慮增加更多的函數以滿足您的需求

     

  • 網友回復:  好的,謝謝老師

 

有思路,想編寫各種指標公式,程序化交易模型,選股公式,預警公式的朋友

可聯系技術人員 QQ: 511411198  點擊這里給我發消息進行 有償 編寫!不貴!點擊查看價格!


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

相關文章

    沒有相關內容
主站蜘蛛池模板: 人人爱天天做夜夜爽2020麻豆 | 插菊花综合1 | 日韩国产午夜一区二区三区 | 亚洲免费三区 | 日本成人激情视频 | 国产精品伦一区二区三级视频 | 日韩小视频在线观看 | 在线观看黄a大片爽爽影院免费 | 免费看羞羞视频的网站 | 99久久国产综合精品麻豆 | 免费观看a级完整视频 | 国产在线乱子伦一区二区 | 五月网| 操榴视频| 曰本a | 色黄网| 欧美在线观看一区 | 久久综合一区二区 | 草草在线观看视频 | 毛片一级片 | 外国xxx| 日本免费视屏 | 成人免费黄色网 | 黄网站在线播放视频免费观看 | 最近中文字幕2019国语7 | 二级毛片免费观看全程 | 亚洲一区 中文字幕 久久 | 黄色三级网| 免费观看一级特黄三大片视频 | 黄色短视频免费看 | 亚洲日韩第一页 | 97国产精品人人爽人人做 | 亚洲视频网址 | 久久伊人影视 | 成人免费观看国产高清 | 午夜aaaaaaaaa视频在线 | 午夜电视 | 免费看一级特黄a大片 | 欧美三级超在线视频 | 在线免费观看黄视频 | 免费国产成人高清无线看软件 |