如何編寫基於時間的停止
Results 1 to 9 of 9

Thread: 如何編寫基於時間的停止

  1. #1
    大家好,

    我需要使用以下條件對ea進行編碼:每當收盤價高於前8天收盤價且50天SMA也高於100時,在每日收盤時輸入多頭頭寸天SMA。設定止損位於8日低點。當收盤價低於前8天的任何收盤價且50天SMA也低於100天平均線時,在每日收盤時輸入空頭頭寸。設定止損位於8日高位。多頭頭寸將在22天后退出或者如果停止。然而,如果價格收盤低於之前8天收盤價或50天SMA收盤價低於100天平均線,則所有多頭頭寸將在22天基於時間的退出之前退出。空頭頭寸將在22天后退出或者如果停止。但是,如果價格收盤價高於之前8天收盤價或50天SMA收盤價高於100天平均線,則所有空頭頭寸將在22天基於時間的退出之前退出。 如何在22天的位置編碼退出?我怎麼能一次做多個位置呢?有可能建立一個indior來執行這項任務嗎?有可能用molanis sb和cib做到這一點嗎?

    tnx和問候

  2. #2

    Quote Originally Posted by ;
    如何在22天的位置編碼退出?我怎麼能一次做多個位置呢?
    未經測試 - 首先嘗試演示!它應該遍歷所有未平倉頭寸。如果符號和magicnumber合適,它將檢查位置已經打開多長時間(當前時間 - 打開時間),如果是gt; =指定的天數,它將嘗試關閉該位置。在EA的末尾插入該功能。然後你可以調用函數,方案TimeBased(Symbol(),MAGICNUMBER,TIMEBASED-SL-DAYS);所以例如TimeBased(Symbol(),12345,22);插入的代碼void TimeBased(string symbol,int magicnumber,int TimeBasedSLdays){bool result; for(int cnt = OrdersTotal() - 1; cntgt; = 0; cnt--){if(!OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES))繼續; if(OrderSymbol()!=符號)繼續; if(OrderMagicNumber()!= magicnumber)繼續; {if(TimeCurrent() - OrderOpenTime()gt; =(TimeBasedSLdays * 86400)){while(IsTradeContextBusy())Sleep(100); RefreshRates(); if(OrderType()== OP_BUY)result = OrderClose(OrderTicket(),OrderLots(),MarketInfo(OrderSymbol(),MODE_BID),9999,CLR_NONE); if(OrderType()== OP_SELL)result = OrderClose(OrderTicket(),OrderLots(),MarketInfo(OrderSymbol(),MODE_ASK),9999,CLR_NONE); }/if(TimeCurrent() - ...}}/for(int cnt = OrdersTotal() - 1; cntgt; = 0; cnt--){}

  3. #3
    Tnx非常,Fxdaytrader
    我會試一試,讓你知道

  4. #4
    2附件您好Fxdaytrader,我試圖將您的代碼插入ea的正文中。我沒有錯誤警告,但測試結果是否與mods相同。這是兩個容易。 n°2是基於時間停止的ea。你能看看他們嗎? TNX

    https://www.forex-pedia.com/attachme...0688299098.mq4
    https://www.forex-pedia.com/attachme...2217515810.mq4

  5. #5
    1附件現在應該工作,它看起來沒有正確執行,...如果時間基礎被命中的計算如下:if(TimeCurrent() - OrderOpenTime())gt; =(TimeBasedSLdays * 86400)那麼關閉命令我沒有測試它,但我認為它應該工作。我不知道你的EA做了什麼,如果它早些時候關閉了位置,那麼基於時間的SL不會開始。
    https://www.forex-pedia.com/attachme...2212.timebased

  6. #6
    Tnx非常fxdaytrader
    你給我的工作帶來了很大的推動。如果我可以進一步打擾你,我該如何修改功能以設置基於小時的停止呢?

  7. #7
    看我上面的帖子:當前時間和orderontintime之間的差異與:(TimeBasedSLdays * 86400)是什麼意思? 86400秒=(1分鐘x 60分鐘)* 24小時=(60秒* 60分鐘)* 24小時(TimeBasedSLdays * 60)將是您要停止的分鐘數,(TimeBasedSLdays * 60 * 60)或 TimeBasedSLdays * 3600)小時

  8. #8

  9. #9
    因為它可能屬於這個線程還有一個快速提示:找一個簡單的基於時間的SL命令管理器ea at
    https://www.forex-pedia.com/cryptocu...ode-teach.html

發布權限

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