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

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

  • ریسک فری

    نوشته شده توسط Amirhossein در 2024-06-03 در 10:01 ب.ظ

    در این کد سعی در ساخت حالت ریسک فری حالت بای هستم

    اگر قیمت از ریوارد یک بیشتر شد ریسک فری شده و استاپ به نقطه ورود منتقل شود

    منتها خطای 4108رو میده و رسماً خسته شدم از بس گشتم تا خطا رو پیدا کنم انواع محاسبه رو در نهایت توانم عوض کردم اما نتونستم پیدا کنم لطفا کمکم کنید ممنون

    if(OrdersTotal() > 0)
    {
    if(OrderMagicNumber() == 2343)
    {
    if(Ask >= (OrderOpenPrice() + (OrderOpenPrice() – OrderStopLoss())))
    {
    bool newstop = OrderModify(OrderTicket(), OrderOpenPrice(), OrderOpenPrice(), OrderTakeProfit(), 0, clrNONE);
    }
    }
    }

    حسین پاسخ داد 3 ماه پیش 2 اعضا · 3 پاسخ ها
  • 3 پاسخ ها
  • حسین

    مدیر کل
    2024-06-04 در 10:42 ق.ظ

    قبل از استفاده از توابع مربوط به اوردر مثل
    OrderMagicNumber و OrderOpenPrice() و…..
    باید از OrderSelect استفاده کنید
    کدتون چون قبلش چک نمیکنه که استاپ لاست کجاست بعد از اجرا پشت سر هم اس ال رو سر قیمت قبلی دوباره میزاره و خطا 1 بهتون میده

  • Amirhossein

    عضو
    2024-06-04 در 10:59 ق.ظ

    کد اولی که فرستادم بدون order select بوده

    و خطای 4108میداد

    حالا به کد order select اضاف کردم خطای 1 میده

    if(OrdersTotal() > 0)

    {

    for(int i=0; i<OrdersTotal(); i++)

    {

    if(OrderSelect(i, SELECT_BY_POS) == true)

    {

    if(OrderMagicNumber() == 2343)

    {

    if(Ask >= (OrderOpenPrice() + (OrderOpenPrice() – OrderStopLoss())))

    {

    bool result = OrderModify(OrderTicket(), OrderOpenPrice(), OrderOpenPrice(), OrderTakeProfit(), 0, clrNONE);

    }

    }

    }

    }

    }

    دلیل خطای ۱ در OrderModify چیست؟

  • حسین

    مدیر کل
    2024-06-04 در 11:38 ق.ظ

    مدیفالی رو دار پشت سر هم انجام میده
    کدتون چون قبلش چک نمیکنه که استاپ لاست کجاست بعد از اجرا پشت سر هم اس ال رو سر قیمت قبلی دوباره میزاره و خطا 1 بهتون میده

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