سوالات برنامه نویسی

سوال بپرسید, جواب بگیرید و با انجمن های ما در سرتاسر دنیا در ارتباط باشید.

آکادمی ایران ام کیو ال انجمن سوالات MQL4 علت پوزیشن نگرفتن اکسپرت

  • علت پوزیشن نگرفتن اکسپرت

    نوشته شده توسط Arezoo در 2024-04-10 در 1:21 ق.ظ

    درود خدمت استاد احمدی

    من این کد رو نوشتم و بعد از کامپایل کردن و خطایی نداشتن

    در استراتژی تستر تست کردم ولی پوزیشن نمیگیره ، امکانش هست راهنمایی کنید؟

    ممنون میشم

    extern int Magic1=1;

    extern int Magic2=2;

    extern double lot=0.1;

    extern int slippage=6;

    extern int stoploss=40;

    extern int takeprofit=50;

    extern bool EnableAlert=true;

    //+——————————————————————+

    //| Expert initialization function |

    //+——————————————————————+

    int OnInit()

    {

    //—

    //—

    return(INIT_SUCCEEDED);

    }

    //+——————————————————————+

    //| Expert deinitialization function |

    //+——————————————————————+

    void OnDeinit(const int reason)

    {

    //—

    }

    //+——————————————————————+

    //| Expert tick function |

    //+——————————————————————+

    void OnTick()

    {

    if(Volume[0]<=1)

    {

    if(Orders()==0)

    {

    if(candlestatus()==”buy”)

    {

    Pendbuy();

    }

    if(candlestatus()==”sell”)

    {

    Pendsell();

    }

    }

    }

    }

    //+——————————————————————+

    //+Sharte aval=Psition baz darim ya na?

    int Orders()

    {

    int num=0;

    for(int i=OrdersTotal()-1;i>=0;i–)

    {

    OrderSelect(i,SELECT_BY_POS,MODE_TRADES);

    if(OrderMagicNumber()==Magic1 || OrderMagicNumber()==Magic2)

    num++;

    }

    return(num);

    }

    //+Sharte dovom=noe candle ghabl ra moshakhas mikonad.

    string candlestatus()

    {

    if(Close[1]>=Open[1])

    return(“buy”);

    else

    if(Close[1]<Open[1])

    return(“sell”);

    return(“NO”);

    }

    //+Sharte sevom=bakhshe position giri va tarife Alert

    void Pendbuy()

    {

    int ticket=OrderSend(Symbol(),OP_BUY,lot,Ask,slippage,Ask-stoploss*MathPow(10,-Digits),Ask+takeprofit*MathPow(10,-Digits),”FxNew”,Magic1,0,Blue);

    if(EnableAlert==true)

    {

    if(ticket>0)

    Alert(“Buy Signal”);

    }

    }

    void Pendsell()

    {

    int ticket=OrderSend(Symbol(),OP_SELL,lot,Bid,slippage,Bid+stoploss*MathPow(10,-Digits),Bid-takeprofit*MathPow(10,-Digits),”FxNew”,Magic2,0,Red);

    if(EnableAlert==true)

    {

    if(ticket>0)

    Alert(“Sell Signal”);

    }

    }

    Arezoo پاسخ داد 7 ماه، 3 هفته پیش 2 اعضا · 4 پاسخ ها
  • 4 پاسخ ها
  • حسین

    مدیر کل
    2024-04-16 در 1:58 ب.ظ

    تو کدتون مشکلی نیست باید سربرگ اکسپرت رو چک کنید بیبیند چه پیغام خطای بتون میده

  • Arezoo

    عضو
    2024-04-17 در 9:11 ب.ظ

    ممنون از پاسخگوییتون استاد

    Ordersend error 130 میده

  • حسین

    مدیر کل
    2024-04-17 در 10:01 ب.ظ

    استاپ لاس و تی پیتون و slippage رو بیشتر کنید ، slippage رو 0 بزارید بهتره ، 0 در حقیقت میشه هر چیزی که بروکر باز کرد

  • Arezoo

    عضو
    2024-05-07 در 11:27 ب.ظ

    ممنون از راهنماییتون، انجام دادم و مشکلم حل شد

برای پاسخ دادن وارد سایت شوید.