পাঁচ মিনিটের ট্রেন্ড ব্রেকআউট মোমেন্টাম ট্রেডিং কৌশল: সূচকীয় চলমান গড় এবং আপেক্ষিক শক্তি সূচকের উপর ভিত্তি করে একটি বহুমাত্রিক প্রযুক্তিগত বিশ্লেষণ পদ্ধতি

EMA SMA RSI VWAP SL/TP
সৃষ্টির তারিখ: 2025-04-14 11:18:29 অবশেষে সংশোধন করুন: 2025-04-14 11:18:29
অনুলিপি: 0 ক্লিকের সংখ্যা: 517
2
ফোকাস
319
অনুসারী

পাঁচ মিনিটের ট্রেন্ড ব্রেকআউট মোমেন্টাম ট্রেডিং কৌশল: সূচকীয় চলমান গড় এবং আপেক্ষিক শক্তি সূচকের উপর ভিত্তি করে একটি বহুমাত্রিক প্রযুক্তিগত বিশ্লেষণ পদ্ধতি পাঁচ মিনিটের ট্রেন্ড ব্রেকআউট মোমেন্টাম ট্রেডিং কৌশল: সূচকীয় চলমান গড় এবং আপেক্ষিক শক্তি সূচকের উপর ভিত্তি করে একটি বহুমাত্রিক প্রযুক্তিগত বিশ্লেষণ পদ্ধতি

ওভারভিউ

পাঁচ মিনিটের ট্রেন্ড ব্রেকিং ডায়মেনশিয়াল ট্রেডিং কৌশলটি একটি স্বল্পমেয়াদী ট্রেডিং সিস্টেম যা একাধিক প্রযুক্তিগত সূচকগুলির উপর ভিত্তি করে তৈরি করা হয়েছে, যা মূলত বাজারের স্বল্প-চক্রের অস্থিরতার জন্য ডিজাইন করা হয়েছে। এই কৌশলটি প্রবেশের সময় নির্ধারণের জন্য চলমান গড় ((ইএমএ এবং এসএমএ), ক্রস-ওয়েটেড গড় মূল্য ((ভিডাব্লুএপি) এবং তুলনামূলকভাবে দুর্বল সূচক ((আরএসআই)) এর সমন্বিত সংকেত ব্যবহার করে। কঠোর একাধিক শর্তাদির মধ্য দিয়ে এই কৌশলটি বাজারের স্বল্পমেয়াদী গতিশীলতার পরিবর্তনগুলিকে ক্যাপচার করার জন্য এবং সুস্পষ্ট স্টপ লস এবং লাভের শর্তে ট্রেডিংয়ের মাধ্যমে ঝুঁকি-নিয়ন্ত্রিত স্বল্পমেয়াদী লাভ অর্জনের লক্ষ্যে। এটি অত্যন্ত অস্থির বাজারের পরিবেশের জন্য বিশেষভাবে উপযুক্ত, যা কার্যকরভাবে বাজারের শব্দটি ফিল্টার করতে পারে এবং সত্যিকারের সম্ভাব্য স্বল্পমেয়াদী ট্রেন্ডিংয়ের সুযোগগুলি ধরে রাখতে পারে।

কৌশল নীতি

এই কৌশলটির মূল নীতি হল শক্তিশালী স্বল্পমেয়াদী প্রবণতা গতিশীলতা সনাক্ত করা, যা বহু-মাত্রিক প্রযুক্তিগত সূচকগুলির সমন্বিত যাচাইয়ের মাধ্যমে করা হয়।

  1. এন্ট্রি সিগন্যাল বিচারঃ

    • কল সিগন্যালঃ একই সময়ে চারটি শর্ত পূরণ করতে হবেঃ

      • 5 মিনিটের K লাইন বন্ধের মূল্য 21 চক্রের SMA এর উচ্চতম পয়েন্টের উপরে
      • VWAP-এর চেয়ে বেশি দামে বিক্রি
      • বন্ধের মূল্য ৫০ চক্রের ইএমএর উপরে
      • আরএসআই ৬০ এর উপরে
    • “Put” সিগন্যালঃ চারটি শর্ত পূরণ করতে হবেঃ

      • 5 মিনিটের K-লাইন বন্ধের মূল্য 21 চক্রের SMA-র নিম্নতম থেকে কম
      • VWAP এর চেয়ে কম দামে বন্ধ
      • বন্ধের মূল্য ৫০ চক্রের ইএমএর নিচে
      • RSI 40 এর নিচে
  2. আউট লজিকঃ

    • স্টপ লস শর্তঃ একাধিক লেনদেনের জন্য, যখন বন্ধের মূল্য 21 এসএমএ নিম্নের নীচে থাকে তখন বেরিয়ে আসে; যখন বন্ধের মূল্য 21 এসএমএ উচ্চের উপরে থাকে তখন বেরিয়ে আসে
    • স্টপ-অফ শর্তঃ স্বয়ংক্রিয়ভাবে হিসাব করা হয়েছে, যা রিস্ক-রিটার্ন রেট (ডিফল্ট 1.5) এর উপর ভিত্তি করে, অর্থাত্ লাভের লক্ষ্যটি স্টপ-অফ দূরত্বের 1.5 গুণ
  3. স্ট্যাটাস ট্র্যাকিংঃ

    • inTrade, isCall ইত্যাদির মাধ্যমে বর্তমান লেনদেনের স্থিতি ট্র্যাক করার কৌশল
    • ট্যাগ ব্যবহার করে প্রবেশ, স্টপ লস এবং স্টপ স্টপ পয়েন্ট প্রদর্শন করুন
    • লেনদেনের স্থিতির ট্যাগ নিয়মিত আপডেট করুন
  4. চিত্রের উপাদানঃ

    • 50 চক্র EMA, 21 চক্র SMA উচ্চ এবং নিম্ন এবং VWAP প্রদর্শন, একটি স্বজ্ঞাত প্রযুক্তিগত বিশ্লেষণ রেফারেন্স প্রদান

এই কৌশলটি মাল্টি-ইনডিকেটর রেজোনেশন নিশ্চিতকরণের মাধ্যমে সংকেতের নির্ভরযোগ্যতা বৃদ্ধি করে এবং একটি সুনির্দিষ্ট ঝুঁকি ব্যবস্থাপনা ব্যবস্থার সাথে মিলিত হয়, যা একটি কার্যকর স্বল্পমেয়াদী ব্যবসায়ের ব্যবস্থা করে।

কৌশলগত সুবিধা

  1. একাধিক নিশ্চিতকরণ ব্যবস্থাঃ কৌশলটি একাধিক প্রযুক্তিগত সূচককে একই সাথে পূরণ করতে বলে যাতে ট্রেডিং সংকেত ট্রিগার করতে পারে, যা মিথ্যা সংকেতের ঝুঁকি হ্রাস করে। এই “রেজোনেন্স” প্রভাবটি কার্যকরভাবে বাজার শব্দকে ফিল্টার করতে এবং লেনদেনের গুণমান উন্নত করতে পারে।

  2. সুস্পষ্ট ঝুঁকি ব্যবস্থাপনাঃ কৌশলটি স্পষ্টভাবে স্টপ লস শর্তাবলী অন্তর্ভুক্ত করে এবং স্বয়ংক্রিয়ভাবে ঝুঁকি-ফেরতের অনুপাতের ভিত্তিতে স্টপ-স্টপ লক্ষ্যমাত্রা গণনা করে, যাতে প্রতিটি লেনদেনের ঝুঁকি-ফেরতের প্রত্যাশা স্পষ্টভাবে দৃশ্যমান হয়। ডিফল্ট 1.5x ঝুঁকি-ফেরতের অনুপাত সেট করুন, দীর্ঘমেয়াদী লাভের সম্ভাব্যতা নিশ্চিত করুন।

  3. স্বল্পমেয়াদী বাজার ওঠানামা সামঞ্জস্যপূর্ণঃ পাঁচ মিনিটের সময়কালের সেটিংটি বিশেষত দিনের ব্যবসায়ীদের জন্য উপযুক্ত, যা স্বল্পমেয়াদী বাজার গতিশীলতার পরিবর্তনগুলিকে ক্যাপচার করতে পারে এবং অতিরিক্ত লেনদেন এড়াতে পারে।

  4. ট্রেডিং স্ট্যাটাস ভিজ্যুয়ালাইজেশনঃ কৌশলটি ট্যাগ এবং চার্ট উপাদানগুলির মাধ্যমে ট্রেডিং স্ট্যাটাস এবং মূল প্রযুক্তিগত স্তরগুলিকে স্বজ্ঞাতভাবে প্রদর্শন করে, যা ব্যবসায়ীদের কৌশলটির কার্যকারিতা সম্পর্কে রিয়েল-টাইমে বুঝতে সহায়তা করে।

  5. নমনীয় প্যারামিটার সেটিংঃ প্রধান সূচকগুলির চক্রের দৈর্ঘ্য (ইএমএ, এসএমএ, আরএসআই) এবং রিস্ক-রিটার্ন অনুপাতগুলি কাস্টমাইজ করা যায়, যাতে কৌশলগুলি বিভিন্ন বাজার পরিস্থিতি এবং ব্যক্তিগত ঝুঁকির পছন্দ অনুসারে অভিযোজিত হতে পারে।

  6. পূর্ণাঙ্গ সতর্কতা শর্তঃ কৌশলটি ছয়টি ভিন্ন সতর্কতা শর্ত সেট করে, যার মধ্যে রয়েছে প্রবেশের সংকেত, ক্ষতির ট্রিগার বন্ধ করা এবং স্টপ স্টপ অর্জন, যা ব্যবসায়ীদের রিয়েল-টাইমে ট্রেডিং ট্র্যাক এবং পরিচালনা করতে সহায়তা করে।

কৌশলগত ঝুঁকি

  1. ভুয়া ব্রেকিং ঝুঁকিঃ অস্থির বাজারে, দামগুলি অস্থায়ীভাবে প্রযুক্তিগত সূচকগুলি অতিক্রম করতে পারে এবং তারপরে দ্রুত ফিরে যেতে পারে, যা ভুল সংকেত দেয়। সমাধানঃ নিশ্চিতকরণ সময়কাল বাড়ানোর বিষয়টি বিবেচনা করা যেতে পারে, উদাহরণস্বরূপ, নির্দিষ্ট সময়ের জন্য দামের উপরে / নীচে থাকার পরে সংকেতটি ট্রিগার করা যেতে পারে।

  2. অতিরিক্ত অপ্টিমাইজেশনের ঝুঁকিঃ কৌশলটি একাধিক প্রযুক্তিগত সূচক এবং সুনির্দিষ্ট প্যারামিটার সেটিংয়ের উপর নির্ভর করে, historicalতিহাসিক তথ্যের সাথে অত্যধিক মিলের সম্ভাবনা রয়েছে। সমাধানঃ কৌশলটির স্থায়িত্ব নিশ্চিত করতে বিভিন্ন বাজার পরিস্থিতি এবং সময়কালের মধ্যে পুনরাবৃত্তি করা উচিত।

  3. স্লাইড পয়েন্ট এবং এক্সিকিউশন বিলম্বঃ পাঁচ মিনিটের স্তরের স্বল্পমেয়াদী কৌশলগুলি কার্যকর করার গতির উচ্চতর চাহিদা রয়েছে, বাস্তব লেনদেনের সময় স্লাইড পয়েন্ট এবং বিলম্বের সমস্যা হতে পারে। সমাধানঃ যুক্তিসঙ্গত অর্ডার প্রকার সেট করুন (যেমন, সীমিত মূল্যের তালিকা, বাজার মূল্যের পরিবর্তে) এবং বাফার ব্যাপ্তি বাড়ানোর বিষয়ে বিবেচনা করুন।

  4. প্রবণতা হঠাৎ বিপরীতঃ স্বল্পমেয়াদী গতিশীলতা হঠাৎ সংবাদ বা বাজার ইভেন্ট দ্বারা দ্রুত বিপরীত হতে পারে। সমাধানঃ সর্বোচ্চ ক্ষতির সীমা নির্ধারণের বিষয়টি বিবেচনা করুন এবং গুরুত্বপূর্ণ তথ্য প্রকাশ বা ইভেন্টের সময় লেনদেন এড়িয়ে চলুন।

  5. লেনদেনের মাত্রা অত্যধিকঃ অত্যন্ত অস্থির বাজারে অতিরিক্ত সংকেত তৈরি হতে পারে, যার ফলে লেনদেনের খরচ বাড়তে পারে। সমাধানঃ লেনদেনের সময়সীমার সীমাবদ্ধতা বা আরও কঠোর প্রবেশের শর্তের মতো অতিরিক্ত ফিল্টারিং শর্ত যুক্ত করা যেতে পারে।

  6. একক সময়কালের উপর নির্ভরশীলতাঃ শুধুমাত্র 5 মিনিটের চার্টের উপর নির্ভরশীলতা বড় সময়কালের গুরুত্বপূর্ণ প্রবণতা তথ্য মিস করতে পারে। সমাধানঃ বৃহত্তর সময়কালের জন্য ফিল্টারিং শর্ত যুক্ত করার বিষয়ে বিবেচনা করুন, যাতে এটি বৃহত্তর প্রবণতার সাথে সামঞ্জস্যপূর্ণ থাকে।

কৌশল অপ্টিমাইজেশনের দিকনির্দেশনা

  1. মাল্টি টাইম সাইকেল অ্যানালিসিস ইন্টিগ্রেশনঃ বর্তমান কৌশলটি শুধুমাত্র 5 মিনিটের সময়কালের উপর ভিত্তি করে তৈরি করা হয়েছে। ট্রেন্ড কনফার্মিংয়ের জন্য আরও উচ্চ সময়ের সময়কাল (যেমন 15 মিনিট, 1 ঘন্টা) যুক্ত করার কথা বিবেচনা করা যেতে পারে। এটি সংকেতের গুণমান উন্নত করতে পারে এবং বড় ট্রেন্ডের বিপরীতে ট্রেড করা এড়াতে পারে। উদাহরণস্বরূপ, 15 মিনিটের ট্রেন্ডটি 5 মিনিটের সংকেতের দিকের সাথে সামঞ্জস্যপূর্ণ হলেই কেবলমাত্র ট্রেডিং কার্যকর করা হয়।

  2. ডায়নামিক প্যারামিটার অ্যাডজাস্টমেন্টঃ মার্কেটের অস্থিরতার উপর ভিত্তি করে স্বয়ংক্রিয়ভাবে সূচক প্যারামিটারগুলি সামঞ্জস্য করতে পারে। উদাহরণস্বরূপ, উচ্চ অস্থিরতার পরিবেশে চলমান গড় চক্রটি প্রসারিত করুন বা আরএসআই থ্রেশহোল্ড বাড়ান, এবং কম অস্থিরতার পরিবেশে চক্রটি সংক্ষিপ্ত করুন বা থ্রেশহোল্ড হ্রাস করুন। এটি কৌশলটিকে আরও অভিযোজিত করে তুলবে।

  3. লেনদেনের পরিমাণ এবং বাজার কাঠামোর বিশ্লেষণঃ লেনদেনের পরিমাণ বিশ্লেষণ এবং মূল্য কাঠামোর সমন্বয় (যেমন সমর্থন / প্রতিরোধের স্তর) প্রবেশের নির্ভুলতা বাড়িয়ে তুলতে পারে। বিশেষত, মূল মূল্যের স্তরের কাছাকাছি সংকেতগুলি প্রায়শই আরও অর্থবহ হয়।

  4. স্বনির্ধারিত রিস্ক-রিটার্ন সেটিংঃ বর্তমান স্থির রিস্ক-রিটার্ন অনুপাতটি বাজারের অস্থিরতা বা নির্দিষ্ট সময়ে ঐতিহাসিক পারফরম্যান্সের গতিশীলতার উপর ভিত্তি করে পরিবর্তিত হতে পারে। এটি বিভিন্ন বাজারের পর্যায়ে রিটার্নের প্রত্যাশা অনুকূল করতে পারে।

  5. বাজার পরিবেশ ফিল্টার যুক্ত করুনঃ প্রবণতা শক্তি, অস্থিরতা ফিল্টার বা লেনদেনের সময়ের সীমাবদ্ধতার মতো সামগ্রিক বাজার পরিবেশের বিচার করার লজিক যুক্ত করুন। উদাহরণস্বরূপ, বাজার খোলার এবং বন্ধ হওয়ার 30 মিনিট আগে লেনদেন এড়ানো বা কেবলমাত্র নির্দিষ্ট অস্থিরতার মধ্যে লেনদেন করা।

  6. আংশিক মুনাফা অর্জনের পদ্ধতিঃ একটি সিঁড়িযুক্ত মুনাফা অর্জনের কৌশল বাস্তবায়নের কথা বিবেচনা করুন, যেমন 0.8R মুনাফা অর্জনের সময় অর্ধেক পজিশনটি সরিয়ে ফেলুন এবং অবশিষ্ট অংশটি ট্র্যাকিং স্টপ লস সেট করুন। এটি মুনাফা রক্ষা করার সময় বৃহত্তর ট্রেডিংয়ের জন্য জায়গা ছেড়ে দিতে পারে।

  7. মেশিন লার্নিং অপ্টিমাইজেশনঃ মেশিন লার্নিং অ্যালগরিদম ব্যবহার করে ঐতিহাসিক তথ্য বিশ্লেষণ করে, সর্বোত্তম প্যারামিটার সমন্বয় এবং অতিরিক্ত সংকেত নিশ্চিতকরণ বৈশিষ্ট্যগুলি সনাক্ত করে, কৌশলগত পূর্বাভাসের নির্ভুলতা আরও উন্নত করে।

সারসংক্ষেপ

পাঁচ মিনিটের ট্রেন্ড ব্রেকিং ডায়মেনশিয়াল ট্রেডিং কৌশলটি একটি সুনির্দিষ্টভাবে পরিকল্পিত স্বল্পমেয়াদী ট্রেডিং সিস্টেম যা বহু-মাত্রিক প্রযুক্তিগত সূচকগুলির সমন্বয় এবং কঠোর ঝুঁকি পরিচালনার মাধ্যমে ব্যবসায়ীদের জন্য একটি কাঠামোগত বাজার বিশ্লেষণ এবং সিদ্ধান্ত গ্রহণের কাঠামো সরবরাহ করে। এই কৌশলটি স্বল্পমেয়াদী দামের গতিশীলতা ক্যাপচার করার জন্য বিশেষভাবে উপযুক্ত এবং স্পষ্ট প্রবেশ এবং প্রস্থান নিয়মের মাধ্যমে ব্যবসায়ীদেরকে জটিল বাজারে শৃঙ্খলা এবং ধারাবাহিকতা বজায় রাখতে সহায়তা করে।

কৌশলটির মূল সুবিধা হ’ল এটির একাধিক সূচক রেজোনেশন নিশ্চিতকরণ প্রক্রিয়া, যা মিথ্যা সংকেতের ঝুঁকি কার্যকরভাবে হ্রাস করে; একই সাথে, বিল্ট-ইন ঝুঁকি রিটার্ন ম্যানেজমেন্ট নিশ্চিত করে যে ট্রেডিংয়ের ঝুঁকি নিয়ন্ত্রণযোগ্য। যাইহোক, যে কোনও ট্রেডিং কৌশলটির সীমাবদ্ধতা রয়েছে, এই কৌশলটি অস্থির বাজারে ভুয়া বিরতির ঝুঁকির মুখোমুখি হতে পারে এবং প্যারামিটার নির্বাচন এবং সম্পাদনের গতিতে সংবেদনশীল।

বহু-সময়-চক্র বিশ্লেষণ, গতিশীল প্যারামিটার সমন্বয় এবং আরও জটিল বাজার পরিবেশের ফিল্টারিংয়ের সমন্বয়ে এই কৌশলটির অপ্টিমাইজেশনের জন্য এখনও যথেষ্ট জায়গা রয়েছে। ব্যবসায়ীরা ব্যক্তিগত ঝুঁকি পছন্দ এবং বাজারের অভিজ্ঞতার ভিত্তিতে প্যারামিটারগুলিকে যথাযথভাবে সামঞ্জস্য করতে পারে বা অতিরিক্ত নিশ্চিতকরণ ব্যবস্থা যুক্ত করতে পারে, যা কৌশলটির কার্যকারিতা আরও বাড়িয়ে তুলতে পারে।

শেষ পর্যন্ত, এই কৌশলটি সফলভাবে প্রয়োগ করার জন্য ব্যবসায়ীদের এর নীতি এবং সীমাবদ্ধতা সম্পর্কে গভীরভাবে বুঝতে হবে, কঠোর ঝুঁকি ব্যবস্থাপনা শৃঙ্খলা বজায় রাখতে হবে এবং বিভিন্ন বাজার অবস্থার অধীনে কৌশলটির কার্যকারিতাটি ক্রমাগত মূল্যায়ন এবং অপ্টিমাইজ করতে হবে।

কৌশল সোর্স কোড
/*backtest
start: 2025-04-06 00:00:00
end: 2025-04-13 00:00:00
period: 5m
basePeriod: 5m
exchanges: [{"eid":"Futures_Binance","currency":"ETH_USDT"}]
*/

//@version=6
strategy("5-Min Call/Put Entry Strategy", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100)

// ————— INPUTS —————
emaLen = input.int(50, "EMA Length", inline="EMA")
smaLen = input.int(21, "SMA Length", inline="SMA")
rsiLen = input.int(14, "RSI Length", inline="RSI")
targetRR = input.float(1.5, "Risk-Reward Ratio")

// ————— INDICATORS —————
ema50 = ta.ema(close, emaLen)
smaHigh = ta.sma(high, smaLen)
smaLow = ta.sma(low, smaLen)
vwap = ta.vwap(close)
rsi = ta.rsi(close, rsiLen)

// ————— CONDITIONS —————
callCond = close > smaHigh and close > vwap and close > ema50 and rsi > 60
putCond = close < smaLow and close < vwap and close < ema50 and rsi < 40

callSL = close < smaLow
putSL = close > smaHigh

// ————— STATE TRACKING —————
var inTrade = false
var isCall = false
var float entryPrice = na
var float slPrice = na
var float tpPrice = na

// Entry logic
if not inTrade
    if callCond
        strategy.entry("Call Entry", strategy.long)
        entryPrice := close
        slPrice := smaLow
        tpPrice := entryPrice + (entryPrice - slPrice) * targetRR
        label.new(bar_index, low, "Entry", style=label.style_label_up, color=color.green, textcolor=color.yellow, size=size.small)
        inTrade := true
        isCall := true
    else if putCond
        strategy.entry("Put Entry", strategy.short)
        entryPrice := close
        slPrice := smaHigh
        tpPrice := entryPrice - (slPrice - entryPrice) * targetRR
        label.new(bar_index, high, "Entry", style=label.style_label_down, color=color.red, textcolor=color.white, size=size.small)
        inTrade := true
        isCall := false

// Exit logic (Stop Loss / Take Profit)
if inTrade
    if isCall
        if callSL
            strategy.close("Call Entry")
            label.new(bar_index, low, "SL", style=label.style_label_up, color=color.black, textcolor=color.white, size=size.small)
            inTrade := false
        else if close >= tpPrice
            strategy.close("Call Entry")
            label.new(bar_index, low, "TP", style=label.style_label_up, color=color.teal, textcolor=color.white, size=size.small)
            inTrade := false
    else
        if putSL
            strategy.close("Put Entry")
            label.new(bar_index, high, "SL", style=label.style_label_down, color=color.black, textcolor=color.white, size=size.small)
            inTrade := false
        else if close <= tpPrice
            strategy.close("Put Entry")
            label.new(bar_index, high, "TP", style=label.style_label_down, color=color.teal, textcolor=color.white, size=size.small)
            inTrade := false

// ————— LIVE TRADE STATUS DISPLAY —————
var label tradeLabel = na
if bar_index % 5 == 0  // update label occasionally
    label.delete(tradeLabel)
    if inTrade
        status = isCall ? "CALL ACTIVE" : "PUT ACTIVE"
        tradeLabel := label.new(bar_index, na, status, xloc.bar_index, yloc.price, color=color.gray, textcolor=color.white, size=size.small, style=label.style_label_left)

// ————— ALERT CONDITIONS —————
alertcondition(callCond, title="Call Entry Alert", message="Call Entry Signal")
alertcondition(putCond, title="Put Entry Alert", message="Put Entry Signal")
alertcondition(callSL, title="Call SL Triggered", message="Call Stop Loss Hit")
alertcondition(putSL, title="Put SL Triggered", message="Put Stop Loss Hit")
alertcondition(close >= tpPrice and isCall, title="Call TP Hit", message="Call Take Profit Hit")
alertcondition(close <= tpPrice and not isCall, title="Put TP Hit", message="Put Take Profit Hit")

// ————— CHART ELEMENTS —————
plot(ema50, title="EMA 50", color=color.orange, linewidth=1)
plot(smaHigh, title="SMA High 21", color=color.green, linewidth=1)
plot(smaLow, title="SMA Low 21", color=color.red, linewidth=1)
plot(vwap, title="VWAP", color=color.blue, linewidth=1)