编码帮助d'Alembert Forex EA
Results 1 to 6 of 6

Thread: 编码帮助d'Alembert Forex EA

  1. #1
    大家好,

    我尝试编写一个处理d'alembert进度的EA(对于所有那些不知道进步d'alembert的人:
    http://www.bettingexpert.com/casino/...lembert-system

    计划从0.01手和SL 13点/TP 14点开始。

    每当交易以亏损结束时,新的交易立即以额外的0.01手开立,并且在下一交易的赢利交易之后立即以0.01手的价格开盘,直到我们达到0.01手。


    例:

    1.交易0.01手损失

    2.交易0.02手损失

    3.交易0.03手损失

    4.交易0.04手损失

    5.交易0.05手赢

    6.交易0.04手赢

    7.交易0.03手赢

    8.交易0.02手

    9.交易0.01手


    所以这是我的第一个代码尝试,但它在策略测试器中不起作用。 :-(

    谁可以帮忙?


    插入的代码// --------------------------------------------- --------------------- /| A4.mq4 |/|版权所有©2010,MetaQuotes Software Corp. |/| http://www.metaquotes.net |/ ----------------------------------------------- ------------------- #property copyright版权所有©2010,MetaQuotes Software Corp. #property link http://www.metaquotes.net/ ---- -------------------------------------------------- ------------ /|外部输入参数|/ ----------------------------------------------- ------------------- extern int MagicNumber_101 = 101000; extern int SL = 13; extern int TP = 14;双dXPoint = 1;/ ----------------------------------------------- ------------------- /|专家初始化函数|/ ----------------------------------------------- ------------------- int init(){//----/---- return(0); }/ ---------------------------------------------- -------------------- /|专家去初始化函数|/ ----------------------------------------------- ------------------- int deinit(){//----/---- return(0); }/ ---------------------------------------------- -------------------- /|专家启动功能|/ ----------------------------------------------- ------------------- int start(){double Lotsize = 0.01; (OrdersHistoryTotal()gt; = 1){OrderSelect(OrdersHistoryTotal() - 1,SELECT_BY_POS); Lotsize = OrderLots(); } if(OrderProfit()lt; 0 OrdersHistoryTotal()gt; = 1){Lotsize = Lotsize 0.01; }如果(OrderProfit()gt; 0 OrdersHistoryTotal()gt; = 1 Lotsizegt; = 0.02){Lotsize = Lotsize - 0.01; (OrderSnd(Symbol(),OP_BUY,0.01,MarketInfo(Symbol(),MODE_ASK)),2,Bid-SL * Point,Bid TP * Point,买,MagicNumber_101,0,CLR_NONE); }睡眠(120000); (OrdersTotal()== 0 Minute()== 00){OrderSelect(OrdersHistoryTotal() - 1,SELECT_BY_POS); if(OrderProfit()> 0 OrderType()== OP_BUY){OrderSend(Symbol(),OP_BUY,0.01,MarketInfo(Symbol(),MODE_ASK),2,Bid-SL * Point,Bid TP * Point,buy ,MagicNumber_101,0,CLR_NONE); }睡眠(120000);如果(OrdersTotal()== 0 Minute()== 00){If(OrderProfit()gt; 0 OrderType()== OP_SELL){OrderSend(Symbol(),OP_SELL,0.01,MarketInfo(Symbol(),MODE_BID ); 2,向 SL *点,ASK-TP *点,出售,MagicNumber_101,0,CLR_NONE); }睡眠(120000); } if(OrdersTotal()== 0 Minute()== 00){if(OrderProfit()lt; 0 OrderType()== OP_SELL){OrderSend(符号(),OP_BUY,0.01,MarketInfo(符号(),MODE_ASK),2,出价-SL *点,出价 TP *点,购买,MagicNumber_101,0,CLR_NONE); }睡眠(120000); } OrderProfit()lt; 0 OrderType()== OP_BUY){OrderSend(Symbol(),OP_SELL,0.01,MarketInfo(Symbol(),MODE_BID)如果(OrdersTotal()== 0 Minute ); 2,向 SL *点,ASK-TP *点,出售,MagicNumber_101,0,CLR_NONE); }睡眠(120000); } return(0); }
    请不要评论,如吹你的帐户... blabla
    只是分享一个交易策略。

    问候。

  2. #2
    试试这个(在测试仪中是..):插入代码#property严格输入int SL = 130;输入int TP = 140;双重批次= 0.01; int票; int OnInit(){ticket = OrderSend(Symbol(),OP_BUY,lot,Ask,2,Ask-SL * Point,Ask TP * Point);如果(ticket GT; -1)返回INIT_SUCCEEDED;返回INIT_FAILED; } void OnTick(){if(OrderSelect(0,SELECT_BY_POS))return; OrderSelect(ticket,SELECT_BY_TICKET); if(OrderProfit()lt; 0.0){lot = 0.01; ticket = OrderSend(Symbol(),OP_SELL,lot,Bid,2,Bid SL * Point,Bid-TP * Point); } else {if(lot gt; 0.01)lot - = 0.01; ticket = OrderSend(Symbol(),OP_BUY,lot,Ask,2,Ask-SL * Point,Ask TP * Point); }}

  3. #3
    嗨,rockit,谢谢!这是mql5的代码?问候。

  4. #4
    不,这是自MT4 build 600(目前为755)以来的官方MQL4。另一种风格已弃用,不应再使用。无论如何,这是有限制的。

  5. #5
    您好rockit,我想我解决它...插入代码{if(OrderSelect(0,SELECT_BY_POS))return; OrderSelect(ticket,SELECT_BY_TICKET); if(OrderProfit()lt; 0.0){lot = 0.01; (OrderType()== OP_BUY){ticket = OrderSend(Symbol(),OP_SELL,lot,Bid,2,Bid SL * Point,Bid-TP * Point);如果(OrderType()== OP_SELL){ticket = OrderSend(Symbol(),OP_BUY,lot,Ask,2,Ask-SL * Point,Ask TP * Point); }} else {if(lot gt; 0.01)lot - = 0.01; (OrderType()== OP_SELL){ticket = OrderSend(Symbol(),OP_SELL,lot,Bid,2,Bid SL * Point,Bid-TP * Point);如果(OrderType()== OP_BUY){ticket = OrderSend(Symbol(),OP_BUY,lot,Ask,2,Ask-SL * Point,Ask TP * Point); } } 非常感谢您的支持!

  6. #6
    您好rockit,代码工作正常,除了每一个新的交易必须开放的趋势,这意味着: - 如果一个长期交易与利润关闭,下一个交易是一个长期交易 - 如果一个长期的交易与损失关闭,下一个交易是短期交易 - 如果短期交易以利润结束,下一笔交易是短期交易 - 如果短期交易以亏损结束,下一笔交易是长期交易问候并且很多感谢提前

發布權限

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