سلام. وقت دوستان بخیر
من نیاز دارم در یک پروژه مانندبورس امکان فرمول نویسی بدم به مشتری که بتونه مثلا یه سری اعداد رو جمع و تفریق بکنه و یا از شرط ها و یاحلقه ها استفاده بکنه.
این فرمول ها در دیتابیس ذخیره میشن و در بازه زمانی ۱۰ دقیقه ای بر روی قیمت ها با استفاده از php اعمال بشن.
کسی ایده ای داره برای این موضوع؟
سلام
میشه فرمول ها رو به صورت متد یا تابع ایجاد کرد و متغیرهای ورودیش رو که کاربر وارد میکنه در دیتابیس ذخیره کرد.
در بازه زمانی مد نظر اطلاعات دیتابیس رو فراخوانی کرد و در متد مورد نظر محاسبه و نتیجه رو روی قیمتها یا سفارشات تاثیر داد.
سلام جناب حکمتی. ممنون از راهنماییتون.
مشکل این راه حل شما اینجاست که من هیچ اطلاعی از فرمولی هایی که کاربر مینویسه نداره. یعنی من یک ساختاری رو براشون تعریف کردم در اون چهارچوب دارن فرمول مینویسن و نمونه یک فرمول رو پایین قرار میدم ولی چون رفته رفته فرمول داره تکمیل تر میشه و شرط و حلقه میخوان اضافه بشه هیچ ایده ای براش ندارم فعلا.
(({field(current_price, 0)}-{field(current_price, 1)})/{field(current_price, 0)})*100
فرمول بالا بدان معناست که قیمت اول منهای قیمت دوم تقسیم بر قیمت اول ضربدر 100
الان تابعی که نوشتم داره این نوع فرمول هارو محاسبه میکنه و عدد رو در میاره ولی خب برای شرط و حلقه رو نمیدونم باید چه کرد.
سلام
ببینید برای دریافت پاسخ درست، پترن درست و داده درست شرط لازمه، اعتبارسنجی فرمول کاربر چطور انجام میشه؟
شاید هدف از این کار اجازه دادن به کاربر برای طراحی اندیکاتور باشه با این توصیف ایجاد الگوی مشترک محاسباتی و اعتبار سنجی اون که خطاهای منطقی بخش عمده ای چالش های شما رو ایجاد میکنه الزامیه. در واقع در کنار اعتبار سنجی و ذخیره سازی به یک مفسر فرمول ریاضی هم نیاز دارید.
احتمالا سایت wolframalpha الگوی خوبی برای درک وسعت و تعداد فرمول ها باشه.
چون کاربر پروژه یک شخص هست و افراد مختلفی نیستن برای همین احتمال خطا خیلی میاد پایین در فرمولی نویسی پس از این بابت فعلا مشکلی ندارم.
بله دقیقا نیاز به نوشتن یک مفسر هست که بیاد فرمول رو تحلیل کنه و خروجی رو ذخیره کنه. مفسر فرمول بالا رو خودم نوشتم و با ساختاری که تعریف کردم برای کاربر میتونه فرمول بنویسه ولی خب اصلی ترین دغدغه برای تفسیر و تحلیل شرط ها یا حلقه های تکرار شونده هست.
کتابخونه یا پکیچی وجود نداره که وظیفه این تفسیر کردن فرمول رو انجام بده؟ یعنی خودش یک چهارچوبی داشته باشه برای فرمول نویسی و طبق همون خودش تفسیر کنه و نتیجه رو بیرون بده؟
پکیج رو اطلاع ندارم اما برای فرمول نویسی حتی اگر فقط چهار عمل اصلی رو بخواهید در اختیار کاربر قرار بدید چیزی که مهمه اولویت عملگرهاست که باید پیاده سازی کنید یعنی فرایندی که شامل عملوندها مثل خاصیت جابجایی و شرکت پذیری است که در هر صورت یکتایی پاسخ درست رو بتونید تضمین کنید.
همچینین درگیر حالت های خاص مثل مبهم شدن هم خواهید شد.
با این توصیف به نظرم عبارات با قاعده و توابع پیش فرض حداقل ابزار کار شما خواهند بود.
دقیقا الان فرمول بالا رو با () ها اولیت هاشون رو مدیریت کردم. یعنی فرمول که یک string هست رو اعدادش رو جایگزین میکنم و با php اون رو تبدیل به فرمول ریاضی میکنم و درست هم داره جواب میده الان.
بهرحال ممنون از پاسخ هاتون و وقتی که گذاشتید.
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟