How to draw a box in MT4?
Results 1 to 1 of 1

Thread: How to draw a box in MT4?

  1. #1
    明顯的 MT4 新手在這裡..

    想知道在 MT4 中繪製方框以自動突破交易是否有最佳實踐。

    非常感謝任何幫助。

    哈爾

  2. #2
    Ps.: EA 並不完美,他們有一些錯誤,比如 Close。如果您使用 Close[x] 或在當前柱上使用收盤價的指標,您將獲得無效數據...為什麼?在 EA 中,Current bar 沒有 Close Value 只有 Open,所以如果你使用 RSI 作為例子,RSI[0] 在 RSI[1] 之前不會給出一個好的值,因為 RSI 使用 PRICE_CLOSE 來計算是東西...... . 所以 EA 很好,但是為了幫助我們定義 egie,它必須進行現場測試......

  3. #3
    需要做一些澄清:
    Quote Originally Posted by ;
    我已經按照您的指示完成並編輯了 CI Compiled,沒有錯誤,當我將它應用到圖表時,我發現它與我在同一圖表上運行的 RSI(21) 完全相同。到目前為止,這是我能理解的:對於 CI,所有這些:#property indicator_separate_window #property indicator_buffers 1 #property indicator_color1 紅色應用於此:double ExtMapBuffer1[];
    錯誤(好吧,只是為了不讓您感到困惑):#property indicator_separate_window lt;- CI 是否將是 #property indicator_buffers 1 lt;- 只需告訴有多少緩衝區,因為有時您會有更多緩衝區,但只有 1 或 2繪製... #property indicator_color1 Red lt;- 告訴 API 使用紅色作為第一行緩衝區
    Quote Originally Posted by ;
    和這個:extern int MyPeriod = 21;只是一個外部變量。 (我明白什麼是變量。外部變量使它啟動,因此您可以在它啟動時在小 GUI 中設置它。)這裡是:int init() { SetIndexStyle(0,DRAW_LINE); SetIndexBuffer(0,ExtMapBuffer1);返回(0);這表示將以圖形方式繪製的內容,位於“啟動時運行一次”部分。在這種情況下,繪製一條從0開始的線並使用以下緩衝區繪製自身[ buffer =(從0開始是ExtMapBuffer1的值)]
    錯誤:SetIndexBuffer(0,ExtMapBuffer1);lt;- 0 僅適用於要繪製的第一個緩衝區,1 將是繪製的第二個緩衝區(在隨機中,由於第 2 行,您有 0,1)SetIndexStyle(0, DRAW_LINE);lt;- DRAW_LINE 將應用於由 0 定義的緩衝區,因此 ExtMapBuffer1
    Quote Originally Posted by ;
    for(int x=limit ; x gt;=0 ; x--)* For (聲明整數“x”等於“limit”且“x”大於或等於零,將“x”減一。 ) 這是否使狗屎從 0 開始,每次都返回 1。 (?) */
    它從左到右:所以最後一根柱線(最舊)到最近一根柱線(0:當前)

  4. #4
    我一直致力於此及其意義!我寫了我的第一個 EA,我想我大大地打擊了初學者的運氣!非常感謝您的指導!沒有你我做不到。我知道這是一段漫長旅程的開始。我不期待奇蹟馬上出現。但我現在正著手測試我的天性,到目前為止效果非常好! (在模擬 FXDD 賬戶上)我稱其為天生的怪事,因為 MQL4 經驗如此之少的人不應該能夠編寫出在正向測試中實際運行良好的東西。過去 24 小時內上漲 180 點。 FWD 演示測試(初學者運氣好,只有一天。)http://www.venexys.com/HP002A2_FWD_DET_TEST_DAY001.gif
    http://www.venexys.com/HP002A2_FWD_TEST_RESULTS.htmhttp://www.venexys.com/HP002A2_FWD_TEST_RESULTS.htm

  5. #5
    我已經按照您的指示完成並編輯了 CI Compiled,沒有錯誤,當我將它應用到圖表時,我發現它與我在同一圖表上運行的 RSI(21) 完全相同。到目前為止,這是我能理解的:對於 CI,所有這些:#property indicator_separate_window #property indicator_buffers 1 #property indicator_color1 紅色應用於此:double ExtMapBuffer1[];和這個:extern int MyPeriod = 21;只是一個外部變量。 (我明白什麼是變量。外部變量使它啟動,因此您可以在它啟動時在小 GUI 中設置它。)這裡是:int init() { SetIndexStyle(0,DRAW_LINE); SetIndexBuffer(0,ExtMapBuffer1);返回(0);這表示將以圖形方式繪製的內容,位於“啟動時運行一次”部分。在這種情況下,繪製一條從 0 開始的線並使用以下緩衝區繪製自身 [ buffer =(從 0 開始是 ExtMapBuffer1 的值)] 然後我們一直走到腳本的“開始”部分並且這裡我們有.... int start() { int limit = Bars-IndicatorCounted();*聲明整數常量等於(計數圖表中的柱數減去指標最後啟動後未改變的柱數)的結果 */for(int x=limit ; x gt;=0 ; x --)* For (聲明整數“x”等於“limit”且“x”大於或等於零,將“x”減一。)這是否使得狗屎從 0 開始並繼續每次回來一個。 (?) */{ ExtMapBuffer1[x]=iRSI(NULL,0,MyPeriod,PRICE_CLOSE,x);* ExtMapBuffer1[x] 等於 iRSI(......,x) */} 我會慢慢檢查每一行代碼以更好地理解它,並按照您的建議更改指示器、顏色、緩衝區等。它慢慢開始陷入困境。我相信我會在短時間內提出更多問題。這是任何人都可以要求的最詳細的解釋。感謝您花時間向新手解釋這些平凡的細節。給你很大的業力!再次感謝男人!哈爾

  6. #6
    現在在 double ExtMapBuffer1[] 下面;添加 extern int MyPeriod = 21; extern 用於與指標交互,當您安裝 CI 時會有一個彈出窗口,然後在輸入選項卡中您會看到您的 extern 變量...現在替換 ExtMapBuffer1[x]=1;其中:ExtMapBuffer1[x]= iRSI(NULL,0,MyPeriod,PRICE_CLOSE,x) ;刪除:#property indicator_minimum 0 #property indicator_maximum 2 並編譯...如果您什麼也沒看到。沒關係。刪除指標並將其放回...編譯時比例不會改變。因為 RSI 值不在 0 和 2 之間...給您...現在您有了基本...嘗試修改值,添加緩衝區,更改顏色,使用其他指標(而不是 RSI,使用 iCCI),所有你需要知道的就是開始......之後會看到......如果你有其他問題,請繼續......: -) 節日快樂

  7. #7
    1 個附件嘿!有效!我得到了我的扁平紅線。最後一篇文章中有很多內容需要我消化。我將多次檢查它以很好地理解正在發生的一切。感謝您花時間做這個人。市場休市,假期臨近。希望您和您的家人度過一個愉快的假期和新年快樂!哈爾
    https://www.forex-pedia.com/attachme...1210488381.mq4

  8. #8
    好的。所以 resume Init lt;- 程序將僅執行此函數一次(當加載指標時) deInit lt;- 程序將僅執行一次此函數(當卸載指標時) Start lt;- 程序將每次執行此函數它從服務器接收數據。現在,什麼是自定義指標?為了讓它簡短。主要原因是構建自定義指標(目前為 CI)是為了以圖形方式表達想法(是的,您可以做更多,聲音、導出、文件讀/寫、警報等)。但是之前...... CI 使用 Array(Or buffer or table) 。這些是什麼?您應該知道什麼是變量(如果不知道,請閱讀它)。假設您要聲明 100 個變量(variable1、varaiable2 等)。這樣做會花費很多時間和精力...所以 Array 只是一個名稱下的多個變量組合(同樣,不止於此,但現在已經足夠了)。想像 100 個盒子並排放置。第一個是 0,然後是 1,然後是 2,等等...(數組從 0 開始到(數組大小)-1)如果你想從 Box #5 中獲取/寫入值,那麼你可以使用 Box[4]( Box [BoxSize-1] ) 通常,您將在聲明時定義緩衝區的大小。因為程序不知道你想要多少尺寸! ___ 簡而言之:程序必須在內存中分配緩衝區所需的空間(例如:int buffer[2]={1,2}; 將在內存中創建 2 個 int 類型的空間)。當你聲明一個變量時(int test
    ,程序會自動分配1個'int'類型的空間來接收信息。 (你也可以在你的代碼中擴展或縮回緩衝區:但現在忘記它)。 ___ CI 顯示圖形。那麼你必須使用 Buffer 來這樣做。 CI 會使用你告訴他使用的 Buffer。指標最多可使用 8 個緩衝區(但您可以使用多個表,稍後您會看到)。圖形上的每個方框(用於解釋示例)等於 1 根蠟燭。 Buffer[0] 與 Candle #0 對齊,依此類推...從右到左(最近到最舊)線從一個框繪製到另一個框:如果框 [0] 中有 10 個和 5 個在 box[1] 中,這條線將從右到左,從 10 到 5(上行)。對於第一個演示,我們只將 1 作為指標中的值(平線)。我們開始:首先,我們放置 CI 的屬性“#property”#property indicator_separate_window #property indicator_minimum 0 #property indicator_maximum 2 #property indicator_buffers 1 #property indicator_color1 紅色“indicator_minimum”和“indicator_maximum”將定義比例(值在CI 的權利)。如果您刪除“indicator_minimum”和“indicator_maximum”,它將根據 CI 緩衝區中的值計算高值和低值以對其進行縮放。 (只有 1 作為她的演示的值,如果你不輸入最小值/最大值,你將看不到平線)'indicator_buffers' 用於告訴程序我們將使用多少緩衝區來輸出圖形(我們想要多少行:最多 8). 'indicator_color1' 很簡單,就是告訴你想要的線條顏色。在所有“#property”下面,你放了 double ExtMapBuffer1[]; 'ExtMapBuffer1' 是嚮導輸入的默認名稱,但我每次都更改它;讓我們說 Buffer[];在這種情況下,您不必說我們需要多少空間(Buffer[x​​]
    ,因為它將在“初始化”功能上完成;在你輸入的初始化函數中:SetIndexStyle(0,DRAW_LINE); SetIndexBuffer(0,ExtMapBuffer1); 'SetIndexStyle'用於定義圖形的類型(線條,直方圖等...)0代表您初始化的第一個緩衝區,它將採用'indicator_color1',#1將使用'indicator_color2'等來關聯顏色......你放置緩衝區的順序並不那麼重要,但它會一個接一個地繪製它們,所以 0 將在 1 之下,所以 2 將在 1 之上,等等。現在想像一個 MACD,如果 MACD 線在直方圖後面!它只是一個可見性問題。(但它必須是從 0 到 x) 'SetIndexBuffer' 將 'ExtMapBuffer1' 關聯到 0 並使用它來識別緩衝區並使用它在 CI 上繪製線條。就是這樣了。你有你的基本聲明......現在讓我們使用它......放入“開始”函數:int limit = Bars-IndicatorCounted(); for(int x=limit ; x gt;=0 ; x--){ ExtMapBuffer1[x]=1;你完成了...有關其他功能的任何信息。雙擊它,然後按“F1”試一試……然後告訴我它是否有效……你會得到你的扁平線……

  9. #9
    不得不讀了幾遍,但我想我現在明白了。隨意繼續。

  10. #10
    順便在你閱讀理解的時候通知我。所以我可以繼續......我會等待,然後再繼續......

發布權限

  • 您不可發布新主題
  • 您不可回复
  • 您不可發布附件
  • 您不可編輯您的帖子
  •  
  • BB代碼是打開的
  • 表情符號是打開的
  • [IMG]代碼是打開的
  • [視頻]代碼是打開的
  • HTML代碼是關閉的
forex-pedia網站使用cookie 文字跟蹤
forex-pedia.com網站使用cookie 文字跟蹤,某些設定已經固定。您可以點擊此處閱讀我們的Cookie使用說明。 請點擊右鍵接受我們的cookies。如果您選擇繼續使用forex-pedia.com網站,我們將認為您接受我們的cookies。