لینکهای مفید برای شرکت در مسابقه:
در زمان مسابقه میتوانید سوالهای خود را از قسمت "سوال بپرسید" مطرح کنید.
پروژه اولیه را از این لینک دانلود کنید. ساختار فایلهای این پروژه به صورت زیر است.
برای اجرای پروژه، بایدNodeJS
و npm
را از قبل نصب کرده باشید.
candlestick-chart
، دستور npm install
را برای نصب نیازمندیها اجرا کنید.npm run server
را برای راهاندازی سرور پروژه اجرا کنید.ظاهر کلی برنامه بدین صورت است:
با سر زبان افتادن رمزارزها و سود خوب این بازار، شمسالله تصمیم گرفته صرافی خود را ایجاد کند. او برای صرافی خود میخواهد یک ارز اختصاصی ایجاد کند و با فروختن آن به مردم پول خوبی به جیب بزند. او در ابتدا میخواهد یک چارت قیمتی دروغین برای خود بسازد. برای این منظور اون یک سرور ساخته است که در بازههای زمانی ۳۰ ثانیه یک قیمت رندوم میسازد. از اونجایی که او به قسمت فرانتاند مسلط نیست از شما میخواهد که قسمت فرانتاند این پروژه را بسازید و در سود این ارز کلاهبرداری سهیم شوید.
در این پروژه شما باید دیتای قیمت این ارز رو از سرور بگیرید و در قالب نمودار شمعی (candlestick-chart) نمایش دهید.
ساختار داده ارسالی سرور بهشکل زیر است:
سرور یک ابجکت به اسم data
ارسال میکند که در داخل این ابجکت بهازای تاریخ، یک قیمت قرار داد.
برای مثال:
فاصله تاریخها ۳۰ ثانیه است.
شما پس از دریافت دادهها باید چارت مناسبت با دادهها را بسازید.
دقت کنید که این دادهها به صورت مرتب ارسال نمیشوند و ممکن است تاریخها پشت سر هم نباشند.
فرض کنید دیتای تاریخ اولین دیتا برابر شروع نمودار است.
در بازارهای مالی یکی از نمودارهای پرکاربرد برای پیگیری نوسانات قیمت، نمودار شعمی یا candlestick-chart است. در این نمودار شما با استفاده از کندلها بالاترین، پایینترین قیمت و همچنین قیمت باز و بسته شدن در یک بازه زمانی را مشاهده میکنید. این نمودارها در تایمفریمهای مختلفی قابل بررسی است. برای مثال در تایمفریم ۵ دقیقه هر کندل اطلاعات مربوط به بازه زمانی ۵ دقیقهای را نشان میدهد. و نمودار به بازهههای ۵ دقیقه تقسیم میشود. در هر کندل چهار داده اصلی وجود دارد:
هر کندل سه قسمت اصلی دارد:
در صورتی که مقدار پایان از شروع بیشتر باشد، کندل صعودی یا سبز است و در صورتی که مقدار پایان از شروع کمتر باشد، کندل نزولی یا قرمز است.
در تصویر زیر دو شکل نشان داده شده است:
برای ساخت کندلها شما به شکل زیر عمل کنید:
div
با کلاس candle
قرار میگیرد.bottom
, left
, height
را داشته باشد. مقادیر این استایلها باید براساس
دادههای هر آن کندل باشد.candle
خود سه بخش دارد. هر کدام از این بخشها با یک div
ساخته میشوند.candle__body
باشد و درصورتی که از نوع سایه (چه بالا و چه پایین) باید دارای کلاس candle__shadow
باشد.height
و background-color
باشد.
مقدار این استایلها باید براساس دادههای آن کندل و توضیحات گفته شده در بالا باشد.chart
قرار داده شوند.10px
است.${SERVER_BASE_URL}/:TIME_FRAME/?count=DATA_COUNT
است.
که در آن TIME_FRAME
نشاندهنده تایمفریم انتخابی (۳، ۵، ۱۰) و DATA_COUNT
برابر تعداد دادههایی است که سرور باید بفرستد.fetch
استفاده کنید.3px
است. برای مثال اگه کمترین مقدار یک کندل ۱۰ بود، برای نمایش نقطه مربوط به کمترین مقدار، باید 30px
قرار بدید.script.js
هستید.