اطلاعیه

بستن

راهنمای فروم - حتما بخوانید

با سلام

قابل توجه کاربران محترم تالار گفتگو

قبل از ارسال پست یا ایجاد موضوع جدید، تاپیک قوانین و راهنمای فروم را مطالعه نمائید.

کاربران و مخصوصا تازه واردین لطفا دقت باشید که هرگونه پیشنهاد مدیریت سرمایه یا فروش تحلیل و یا برگزاری کلاس و ... که خارج از محیط عمومی فروم باشد را به هیچ عنوان بدون تحقیق و کسب اطلاعات کامل و کافی دنبال نکنید در غیر این صورت مسئولیت و عواقب آن بر عهده خود شخص می باشد.

همچنین لازم به ذکر است مسئولیت ارتباطات خارج از پست های عمومی فروم اعم از پیام خصوصی یا چت یا دیداری یا شنیداری با سایر اعضای فروم کاملا با خود اعضا هست و وارد کردن آن به صورت عمومی در فروم ممنوع است. برای امنیت بیشتر جهت گرفتن پاسخ سوالات خود از انجمنها استفاده نمایید.

دوستان توجه داشته باشند که تمامی بخش های اختصاصی و عمومی فروم کاملا رایگان بوده و به هیچ عنوان نیاز به پرداخت وجه به هیچ کس برای باز شدن دسترسی نیست.

منتها به این دلیل که در این بخش ها معمولا کار تیم ورک و گروهی انجام میشود، مناسب ورود افراد با شرایط خاصی است که مدیر آن بخش تعیین میکند و برای همه افراد کارایی ندارد چون مستلزم بر عهده گرفتن مسئولیت یا دانش کافی در آن حوزه می باشد.

لذا ضمن پوزش از کاربرانی که تقاضای دسترسی آن ها به بخش های اختصاصی توسط مدیران بخش رد میشود، توصیه میکنیم که پس از فراگیری موضوعات عمومی و تخصصی فراوانی که در روی فروم قرار دارد چنانچه برنامه ویژه ای برای کار در بخش های اختصاصی و کار گروهی دارند آن را مکتوب برای مدیران هر بخش بنویسند و سپس اقدام به درخواست دسترسی بکنند.


با احترام
مشاهده بیشتر
مشاهده کمتر

آموزش زبان mql4 از مقدماتی تا کاربردی توسط mda7

بستن
X
 
  • فیلتر کردن
  • زمان
  • نمایش
پاک کردن همه
پست های جدید

  • #31
    با سلام

    بنده چند روز در سفر خواهم بود و احتمالا نتونم مطلب جدیدی توی این مدت ارسال کنم

    تا برگردم شما این راهنمای زبان Mql4 رو که آپلود کردم رو داشته باشید

    برگشتم دوباره ادامه میدیم.

    اگر تونستید یه نگاهی هم به این PDF بندازید.

    ارادتمند

    لینک دانلود mql4-manual
    بزرگترین لذت در زندگی ، انجام دادن کاری ست که دیگران می گویند :
    تو نمی توانی ... !
    ٠•●ஜ رومن پولانسکی ஜ●•٠




    نظر


    • #32
      سلام
      واقعا متحیرم از این همه جنب و جوشی که در تاپیک هست.
      من همین الان رسیدم و اولین کاری که کردم باز کردن فروم بود.
      به هر حال من همیشه کاری رو که شروع کردم تموم خواهم کرد.
      بعد از کمی استراحت پست بعدی رو خواهم زد.
      فعلا این عکسها رو داشته باشید ، در پست های بعدی این استراتژی رو کد خواهیم کرد.
      این مطالب از کتاب استراتژی های معامله در بازارهای سرمایه هست (تالیف آقای علی محمدی)
      http://pcmupload.traderha.com/up...9187487871.jpg

      http://pcmupload.traderha.com/up...9187488332.jpg

      باز هم از جناب توکلی بابت تایپ این مطالب تشکر میکنم
      ویرایش توسط mda7 : https://www.traderha.com/member/3339-mda7 در ساعت 01-12-2014, 10:26 PM
      بزرگترین لذت در زندگی ، انجام دادن کاری ست که دیگران می گویند :
      تو نمی توانی ... !
      ٠•●ஜ رومن پولانسکی ஜ●•٠




      نظر


      • #33
        سلام

        جناب مهدی

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


        تا در طلب گوهر کانی ،کانی/
        تا در هوس لقمهٔ نانی، نانی/
        این نکتهٔ رمز اگر بدانی، دانی/
        هر چیزی که در جستن آنی، آنی

        نظر


        • #34
          پست 6 - استراتژی میانگین متحرک و macd قسمت اول

          در پست قبلی اسکن دو صفحه از کتاب رو براتون آپلود کرده بودم و متن اون به این شکل هست :



          ترکیب میانگین متحرک و MACD
          Moving Average MACD Combo

          در تئوری, معامله کردن بر اساس تعقیب روند بسیار ساده است . تنها کاری که باید انجام دهیداین است
          « وقتی قیمت در حال صعودی است خرید داشته باشید و وقتی قیمت در حال نزول است معامله فروش».
          ولی در عمل چنین معاملاتی بسیار مشکل است وقتی به دنبال یک فرصت معاملاتی برای معامله براساس روند هستید ممکن است این سوالات به ذهن شما خطور کند :
          جهت روند چیست ؟
          آیا الان باید با روند همراه شوم یا منتظر یک حرکت بازگشتی بمانم ؟
          چه موقع این روند تمام می شود ؟
          بزرگترین واهمه یک معامله گر براساس روند این است که بسیار دیر با روند همراه می شود.
          یعنی در نقطه ای که روند رو به افول است . با وجود این مشکلات معامله گری بر اساس روند
          یکی از مورد توجه ترین سبک های معاملاتی است . چرا که وقتی یک روند کوتاه مدت یا بلند مدت
          شکل می گیرد می تواند برای ساعت ها روز ها و حتی ماه ها ادامه داشته باشد .
          ما برای این منظور شیوه ای طراحی کردیم که ضمن پاسخگو به سولات فوق می تواند نقاط ورود و خروج را نیز دقیقا مشخص نماید. این استرا تژی استراتژی ترکیبی میانگین متحرک و MACD نام
          دارد . ما دو میانگین را در استراتزی خود به کار گرفته ایم : میانگین متحرک ساده 50 دوره ای یا SMA50 و میانگین متحرک ساده 100 دوره ای یا SMA100 . عملا دوره مناسب برای میانگین بستگی تام به چارچوب زمانی مورد استفاده مورد استفاده دارد. ما این استراتزی را برای
          چارچوب های زمانی یک ساعته و روزانه طراحی کرده ایم . SMA50 به عنوان ماشه برای
          تعیین نقطه ورود به کار می رود . در حالی که SMA100 به ما جهت صحیح روند را نشان می دهد
          در این استراتژی ما فقط وقتی وارد معامله خرید یا فروش می شویم که قیمت میانگین های متحرک را در جهت روند قطع کند . با وجود اینکه این استراتژی از منطقی مشابه استراتژی Momo بهره می برد
          ولی بسیار هوشیارانه تر از آن است و از میانکین متحرک های بلند مدت در چارچوب زمانی یک ساعته و روزانه برای کسب سود های بلند مدت تر بهره می گیرد.
          قوائد ورود به معاملعه خرید :
          1) در موقعی که قیمت کمتر از هر دو میانگین متحرک 50 و 100 دوره ای است بازار را زیر نر بگیرید .
          2) هرگاه قیمت یکی از میانگین متحرک های را به سمت بالا قطع کرده و از ان 10 پیپ فاصله گرفت به اندیکاتور MACD نگاه کنید . اگر این اندیکاتور طی میله اخیر از منفی به مثبت تغیر جهت داده است وارد معامله خرید شوید.
          3) حد زیان را در نقطه حداقل 5 میله قبلی قیمت قرار دهید .
          4) نیمی از معامله را با سود دو برابر مخاطره ای که پذیرفته اید ببندید و در نیم دیگر حد توقف را به نقطه ورود منتقل فرمایید.
          5) نیمه دوم معامله را وقتی ببندید که قیمت SMA50 را به سمت پایین شکسته و 10 پیپ با آن فاصله گرفته باشد .
          قواعد ورود به معامله فروش :
          1) در موقعی که قیمت بیش از هر دو میانگین متحرک 50 و 100 دورهای است بازار را زیر نظر بگیرید.
          2) هرگاه قیمت یکی از میانگین متحرک های راست به سمت بالا قطع کرد و از آن 10 پیپ فاطله گرفت به اندیکاتور MACD نگاه کنید اگر این اندیکاتور طی 5 میله اخیر از مثبت به منفی تغیر جهت داده اسن وارد معامله فروش شوید.
          3) حد زیان را در نقطه حداکثر 5 میله قبلی قیمت قرار دهید.
          4) نیمی از معامله را با سود دو برابر مخاطره ای پذیرفته اید ببندید و در نیم دیگر حد توقف را به نقطه ورود منتقل فرمایید.
          5) نیمه دوم معامله را وقتی ببندیم که قیمت SMA50 را به سمت بالا شکسته و 10 پیپ با آ« فاصله گرفته باشد .
          توجه : اگر قیمت بین دو میانگین متحرک 50 و 10 دورهای است وارد معامله نشوید.

          همونطور که قبلا گفته بودم باید در ابتدا همه چیزهایی رو که لازم داریم در ابتدای برنامه و قبل از تابع init int تعریف و نامگذاری کنیم
          همونطور که از نوشته معلوم هست ما 2 تا موینگ احتیاج داریم (SMA50 و SMA100) برای راحتی کار همین اسمهارو استفاده میکنیم
          و یک MACD هم نیاز داریم.

          خوب حالا باید نوع خروجی اینها رو بدینیم که آیا عدد صحیح هست یا اعشاری یا رنگ یا .....
          هر اندیکاتوری معمولا یک یا چند عدد رو در خروجی به ما میده حالا اگر روی چارتتون موینگ بندازید و MACD وقتی روی مثلا کندل دهم روی موینگ موس رو نگه دارید یک عدد اعشاری خواهید دید که این عدد در واقع مقدار موینگ همون کندل دهم هست پس موینگ ما باید از نوع double باشه
          همین کار رو روی MACD انجام بدبد باز هم عدد اعشاری خواهیم دید که این عدد یا زیر صفر (منفی) خواهد بود و یا بالای صفر (مثبت).

          پس تا اینجا ما 3 تا متغیر به نامهای SMA50 - SMA100 و MACD که هر سه از نوع double هستند رو تعریف خواهیم کرد ولی بحث اینجاست که مقادیر اونها رو چه باید بدیم!!!!
          با کمی فکر در مورد نوشته های قبلی در مود تابع عای init و deinit و start یادمان خواهد افتاد که محاسباتی که لازم هست با حرکت چارت از نو حساب بشند رو باید داخل تابع start محاسبه کنیم.
          پس در ابتدای برنامه این 3 تا رو تعریف میکنیم بدون اینکه مقدار دهی کنیم و بعدا در داخل تابع start مقدار دهی خواهیم کرد.

          ; double SMA50
          ; double SMA100
          ; double MACD

          همون طور که میبینید از علامت = استفاده نکردیم تا بعدا در تابع start مقدار دهی کنیم

          http://
          ویرایش توسط mda7 : https://www.traderha.com/member/3339-mda7 در ساعت 01-13-2014, 05:09 PM
          بزرگترین لذت در زندگی ، انجام دادن کاری ست که دیگران می گویند :
          تو نمی توانی ... !
          ٠•●ஜ رومن پولانسکی ஜ●•٠




          نظر


          • #35
            پست 7 - استراتژی میانگین متحرک و macd قسمت دوم

            حالا باید بریم یراغ تابع start و متغیرهامون رو مقدار دهی کنیم

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

            ما یک سری اندیکاتورها رو داریم که شرکت سازنده متاتریدر به صورت دیفالت اونها رو داره و بعضی از اندیکاتورها نوشته کسان دیگه هستند (Custom Indicators) خوشبختانه این 3 تا عددی که ما لازم داریم همشون از نوع اندیکاتورهای دیفالت متاتریدر هستند

            یک لیستی از توابع فراخونی اندیکاتورهای متا رو براتون مینویسم:

            iAC
            iAD
            iAlligator
            iADX
            iATR
            iAO
            iBearsPower
            iBands
            iBandsOnArray
            iBullsPower
            iCCI
            iCCIOnArray
            iCustom
            iDeMarker
            iEnvelopes
            iEnvelopesOnArray
            iForce
            iFractals
            iGator
            iIchimoku
            iBWMFI
            iMomentum
            iMomentumOnArray
            iMFI
            ******* iMA
            iMAOnArray
            iOsMA
            ******* iMACD
            iOBV
            iSAR
            iRSI
            iRSIOnArray
            iRVI
            iStdDev
            iStdDevOnArray
            iStochastic
            iWPR


            از لیست فوق ما به دو تابع iMA (برای بدست آوردن مقدار موینگ اوریج) و iMACD (برای بدست آوردن مقدار MACD) نیاز خواهیم داشت

            1- تایع iMA :
            مقدار موینگ کندل (shift) رو بهمون میده و پارامترهای مختلفی رو داره که باید به دقت پر بشن :

            (double iMA(string symbol, int timeframe, int period, int ma_shift, int ma_method, int applied_price, int shift

            string symbol : با مقدار دهی این قسمت شما به تابع میگید که کدوم جفت ارز رو بررسی کنه! اگر دقت کنید خودش از نوع خطی هست برای اینکه مقدار مربوط به همون ارزی رو که اکسپرت روش ران خواهد بود رو برگردونه کافی هست که در این قسمت بنویسید NULL یا بنویسید ()Symbol
            اگر مثلا به جای اینها مینوشتید "AUDUSD" اونوقت مقدار موینگ در چارت AUDUSD رو براتون میخوند.

            int timeframe : با دادن مقدار در این قسمت مشخص میکنید که کدوم تایمفریم مد نظرتون هست! اگر 0 باشه همون تایمی که اکپرت ران هست رو خواهد خوند ولی اگر مثلا بگذارید 1440 میره و تایم فریم دیلی رو نگاه میکنه
            PERIOD_M1 1 1 minute.
            PERIOD_M5 5 5 minutes.
            PERIOD_M15 15 15 minutes.
            PERIOD_M30 30 30 minutes.
            PERIOD_H1 60 1 hour.
            PERIOD_H4 240 4 hour.
            PERIOD_D1 1440 Daily.
            PERIOD_W1 10080 Weekly.
            PERIOD_MN1 43200 Monthly.
            0 (zero) 0 Timeframe used on the chart.

            همونطور که میبینید نوع تایم فرین ار نوع int هست که مربوط به اعدادد صحیحه.

            int
            period : از اینجا به بعد مربوط میشه به تنظیمات موینگ در اینجا ما موینگ 50 و 100 رو استفاده خواهیم کرد.

            int ma_shift : باید 0 بزاریم چون نمیخواهیم که موینگ ما شیفت داشته باشه.

            int ma_method : نوع موینگ رو براش مشخص میکنیم که در اینجا ما Simple Moving لازم داریم که اگر اینپوت موینگ اوریج رو نگاه کنید میبینید که این در واقع اولین گزینه هست
            یادتون باشه در برنامه نویشی معمولا اولین مقدار 0 هست نه 1 ! پس در اینجا هم 0 قرار خواهیم داد تا Simple Moving رو برامون اعمال کنه.

            int applied_price : باز اگر تنظیمات اینپوت موینگ اوریج رو نگاه کنید به صورت دیفالت بر روی Close هست که عدد مربوطش به علت اینکه اولین هست باز هم 0 خواهد بود.

            int shift : آخرین پارامترمون هست که با گذاشتن عدد در اینجا به تابع میگیم که ما مقدار موینگ اوریج کدوم کندل رو ازش میخواهیم که باز در اینجا ما مقدار موینگ کنلی رو که در حال بازی کردن هست رو نیاز داریم پس میشه کندل 0.


            با این اطلاعاتی که تا حالا یاد گرفتیم میتونیم متغیرهای موینگ 50 و 100 رو در تابع start تعریف کنیم. به این صورت:

            http://
            ویرایش توسط mda7 : https://www.traderha.com/member/3339-mda7 در ساعت 01-13-2014, 05:52 PM
            بزرگترین لذت در زندگی ، انجام دادن کاری ست که دیگران می گویند :
            تو نمی توانی ... !
            ٠•●ஜ رومن پولانسکی ஜ●•٠




            نظر


            • #36
              سلام
              خواستم تشکر ویژه کرده باشم از صاحب تاپیک.
              تقاضا دارم در هر صورت این تاپیک را ادامه دهید.
              ارادتمند

              نظر


              • #37
                پست 8 - استراتژی میانگین متحرک و macd قسمت سوم

                نوبت میرسه به گرفتن اطلاعات از اندیکاتور MACD و تعریف اون توی تابع start

                (double iMACD(string symbol, int timeframe, int fast_ema_period, int slow_ema_period, int signal_period, int applied_price, int mode, int shift


                پارامترهای Symbol و timeframe که مشخص هست

                از fast_ema_period به بعد مربوط به تنظیمات MACD هست اگر اینپوت اندیکاتور رو نگاه کنید به ترتیب
                12
                26
                9
                Apply to Close
                رو میبینید که پارامتر آخر (
                Apply to Close) چون اولین هست پس صفر خواهد بود.

                حالا میرسیم به پارامتر mode:
                اندیکاتور MACD دو مقدار رو به ما برمیگردونه اولین مقدار عدد اعشاری مربوط به میله های MACD. هست و عدد دوم مربوط به خط موینگی که روی MACD (قرمزرنگ) میفته هست
                که ما در اینجا به عدد هیتوگرامهای مکدی نیاز داریم و چون اولین مقدار هست باز صفر خواهد گرفت.

                الان میتونیم مقدار MACD کندل صفر رو به این صورت تعریف کنیم:

                http://
                ویرایش توسط mda7 : https://www.traderha.com/member/3339-mda7 در ساعت 01-15-2014, 02:41 PM
                بزرگترین لذت در زندگی ، انجام دادن کاری ست که دیگران می گویند :
                تو نمی توانی ... !
                ٠•●ஜ رومن پولانسکی ஜ●•٠




                نظر


                • #38
                  با تشکر از زحمات جنابعالی
                  میخام اکسپرتی بنویسم که پوزیشنهای باز خرید را در صورت منفی شدن مکدی یا رفتن قیمت زیر موینگ ببندد
                  مسله اول نحوه پیدا کردن پوزیشن هاست
                  ممنون از راهنمایی

                  meta@معامله گری با بخت و اقبال

                  نظر


                  • #39
                    نوشته اصلی توسط Meta نمایش پست ها
                    با تشکر از زحمات جنابعالی
                    میخام اکسپرتی بنویسم که پوزیشنهای باز خرید را در صورت منفی شدن مکدی یا رفتن قیمت زیر موینگ ببندد
                    مسله اول نحوه پیدا کردن پوزیشن هاست
                    ممنون از راهنمایی

                    meta@معامله گری با بخت و اقبال
                    دوست عزیز لطفا درخواستتون رو در تاپیک مربوطه بنویسید تا انجام بشه
                    بزرگترین لذت در زندگی ، انجام دادن کاری ست که دیگران می گویند :
                    تو نمی توانی ... !
                    ٠•●ஜ رومن پولانسکی ஜ●•٠




                    نظر


                    • #40
                      پست 9 - تعریف شرایط خرید و فروش

                      قوائد ورود به معاملعه خرید :
                      1) در موقعی که قیمت کمتر از هر دو میانگین متحرک 50 و 100 دوره ای است بازار را زیر نر بگیرید .
                      2) هرگاه قیمت یکی از میانگین متحرک های را به سمت بالا قطع کرده و از ان 10 پیپ فاصله گرفت به اندیکاتور MACD نگاه کنید . اگر این اندیکاتور طی میله اخیر از منفی به مثبت تغیر جهت داده است وارد معامله خرید شوید.
                      3) حد زیان را در نقطه حداقل 5 میله قبلی قیمت قرار دهید .
                      4)نیمی از معامله را با سود دو برابر مخاطره ای که پذیرفته اید ببندید و در نیم دیگر حد توقف را به نقطه ورود منتقل فرمایید.
                      5)نیمه دوم معامله را وقتی ببندید که قیمت SMA50 را به سمت پایین شکسته و 10 پیپ با آن فاصله گرفته باشد .
                      قواعد ورود به معامله فروش :
                      1) در موقعی که قیمت بیش از هر دو میانگین متحرک 50 و 100 دورهای است بازار را زیر نظر بگیرید.
                      2) هرگاه قیمت یکی از میانگین متحرک های راست به سمت بالا قطع کرد و از آن 10 پیپ فاطله گرفت به اندیکاتور MACD نگاه کنید اگر این اندیکاتور طی 5 میله اخیر از مثبت به منفی تغیر جهت داده اسن وارد معامله فروش شوید.
                      3) حد زیان را در نقطه حداکثر 5 میله قبلی قیمت قرار دهید.
                      4) نیمی از معامله را با سود دو برابر مخاطره ای پذیرفته اید ببندید و در نیم دیگر حد توقف را به نقطه ورود منتقل فرمایید.
                      5) نیمه دوم معامله را وقتی ببندیم که قیمت SMA50 را به سمت بالا شکسته و 10 پیپ با آ« فاصله گرفته باشد .
                      توجه : اگر قیمت بین دو میانگین متحرک 50 و 10 دورهای است وارد معامله نشوید.

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

                      دو متغیر به نامهای BuyMode و SellMode رو تعریف میکنیم ولی ابتدا باید بدونیم که از چه نوع متغیری باید استفاده کنیم.
                      اگر درست حدس زده باشید در لحظه ای که اکسپرت وجود حالت خرید رو بررسی میکنه تنها 2 حالت ممکنه اتفاق بیفته!
                      یا شرایط خرید برقرار هست یا نه!!!
                      پس اگر شما هم به این شکل فکر کرده باشید آفرین بر شما..

                      تا اینجا فهمیدیم که نوعی که باید برای متغیرهای خرید و فروش عنوان کنیم از نوع bool هستند.
                      پس به قبل از تابع init رفته و دو متغیر رو بدون دادن مقدار تعریف میکنیم (دیگه فکر نمیکنم نیازی باشه که توضیح بدم که چرا بدون دادن مقدار!!)


                      حالا میریم سراغ تابع start تا این دو رو مقدار دهی کنیم.
                      شرایط خرید :
                      هرگاه قیمت یکی از میانگین متحرک های را به سمت بالا قطع کرده و از ان 10 پیپ فاصله گرفت به اندیکاتور MACD نگاه کنید . اگر این اندیکاتور طی میله اخیر از منفی به مثبت تغیر جهت داده است وارد معامله خرید شوید.
                      برای "و" از علامت && و برای "یا" از || استفاده خواهیم کرد.
                      حالا اینجا گفته که هریک از موینگها یعنی فرقی نمیکنه که 50 باشه "یا" 100
                      و اما برای قیمت چی بنویسیم؟ آیا به نظر شما قیمت Bid که روی چارت نشون داده میشه بهترین انتخاب نیست؟
                      پس تا اینجاش رو بنویسیم تا بریم سراغ بعدی
                      (Bid > SMA50 + 10 * Point) ||( Bid > SMA100 + 10 * Point)

                      10* Point یعنی همون 10 پیپ خودمون

                      نوبت مکدی میشه و شرط مکدی این هست که مثبت باشه (یعنی بالای صفر رو نشون بده)
                      پس شرط قبلی رو مینویسیم و کلش رو داخل پرانتز میگذاریم .
                      ((MACD > 0) && (( Bid > SMA50 + 10 * Point) || (Bid > SMA100 + 10 * Point))

                      لطفا به تعداد و نحوه گذاشتن پرانتز ها دقت کنید , با تمرین و تکرار خواهید تونست که درست بنویسیدشون با یک علامت کم یا زیاد یا برنامتون کار نخواهد کرد و یا کاری به غیر از چیزی که میخواهید انجام خواهد گرفت

                      یک شرط هم در انتهای متن داشتیم که اگر قیمت مابین موینگها بود وارد پوزیشن نشه
                      در واقع میتونیم اینطوری فکر کنیم که قیمت بایستی از هر دوتا موینگ هم بالاتر باشه پس کدمون به این شکل خواهد شد :
                      ((MACD > 0) && (SMA50 + 10 * Point) && (Bid > SMA100 +10 * Point))

                      اگر دقت کنید من علامت || رو حذف کردم و به جاش && گذاشتم علتش هم اینه که وقتی قیمت مابین دوتا موینگ باشه نباید وارد معامله بشیم پس وقتی قیمت به اندازه 10 پیپ از موینگ بالایی فاصله گرفته باشه حتما فاصلش از موینگ پایینی بیش از 10 پیپ خواهد بود

                      در مورد نوشتن شرایط خرید دقیقا عکس این حالتها خواهد بود و برای اینکه پست طولانی نشه اون رو میذارم به عهده خودتون



                      ویرایش توسط mda7 : https://www.traderha.com/member/3339-mda7 در ساعت 01-16-2014, 03:47 PM
                      بزرگترین لذت در زندگی ، انجام دادن کاری ست که دیگران می گویند :
                      تو نمی توانی ... !
                      ٠•●ஜ رومن پولانسکی ஜ●•٠




                      نظر


                      • #41
                        با سلام و ضمن تشکر .

                        mda جان آیا دلیلی برای داشتن دو تا متغیر هست یک متغیر کافی هست 0 برای بای 1 برای سل؟

                        بعد مکدی باید تغییر جهت بده یعنی احتیاج به حافظه هست؟ لزوما مکدی مثبت کار نمیکنه درسته؟

                        ممنون

                        نظر


                        • #42
                          نوشته اصلی توسط afshin1763 نمایش پست ها
                          با سلام و ضمن تشکر .

                          mda جان آیا دلیلی برای داشتن دو تا متغیر هست یک متغیر کافی هست 0 برای بای 1 برای سل؟

                          بعد مکدی باید تغییر جهت بده یعنی احتیاج به حافظه هست؟ لزوما مکدی مثبت کار نمیکنه درسته؟

                          ممنون
                          برای نوشتن یک کد کوتاه هر کاری رو که لازم هست طرف بنا به خلاقیت خودش میتونه انجام بده ولی اگر من میومدم و اول کار 0 و 1 میگذاشتم شاید مطلب کمی گنگ میشد برای راحتی درک اجازه بدید به این صورت پیش بریم
                          در مورد مکدی درست میفرمایید ولی باز این موضوع هم از خط بالا پیروی میکنه اگر قرار باشه که ما مقدار مکدی رو از قبل save کنیم اولا تعداد پوزینهای کمتری خواهیم داشت ثانیا از کد راحت تر برای فهم میشه استفاده کرد به این شکل که مکدی کندل 1 رو هم در نظر میگیریم در شرطها مینویسیم که اگر کندل 1 منفی باشه و کندل 0 مثبت!!!
                          پس هم درکش راحت تر هست و هم "از منفی به مثبت " رو هم اعمال کردیم.
                          بزرگترین لذت در زندگی ، انجام دادن کاری ست که دیگران می گویند :
                          تو نمی توانی ... !
                          ٠•●ஜ رومن پولانسکی ஜ●•٠




                          نظر


                          • #43
                            پست 10 - مشخص کردن استاپ برای خرید و فروش

                            قوائد ورود به معاملعه خرید :
                            حد زیان را در نقطه حداقل 5 میله قبلی قیمت قرار دهید .
                            حالا ما باید در بین 5 کندل قبلی به دنبال کندلی بگردیم که کمترین low رو داره برای این کار تابعی بصورت آماده در متا هست به این ترتیب:
                            (int iLowest(string symbol, int timeframe, int type, int count=WHOLE_ARRAY, int start=0

                            واما پارامترهای تابع:
                            symbol و timframe که هیچ
                            type یعنی اینکه دنبال کمترین مقدار توی چه چیزی میگیردیم (کمترین های , لو , اپن ....) که در انجا ما دنبال کمترین Mode_Low میگردیم
                            count یعنی بدنبال کترین مقدار بین چه بازه بگرد
                            start یعنی از کجا شروع کن و دنبال کمترین مقدار بین بازه بگرد.

                            پس میشه این:
                            (int iLowest(Symbol(), 0 , Mode_Low , 5 , 0

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

                            حالا اگر به نوع تابع دقت کنید int هست (عدد صحیح) پس این تابع شماره کندلی رو که کمترین loص رو در 5 کندل گذشته برمیگردونه
                            حالا نیاز به مقدار لوی این کندل داریم و اون هم با تابع زیر بدست میاد
                            (double iLow(string symbol, int timeframe, int shift

                            Shift که همون شماره کندل هست رو چند خط پیش حساب کردیم و بجای shift همون مقدار رو قرار میدیم.

                            برای استاپ سل هم باید برعکس این دنبال "بیشترین" " های " در 5 کندل گذشته باشیم

                            بزرگترین لذت در زندگی ، انجام دادن کاری ست که دیگران می گویند :
                            تو نمی توانی ... !
                            ٠•●ஜ رومن پولانسکی ஜ●•٠




                            نظر


                            • #44
                              نوشته اصلی توسط mda7
                              جناب pcmsystem دو ساعته دارن تایپ میکنم فقط نصف نوشته هام نشون داده میشن
                              علت چیه؟
                              پستی که زدم ناقص اومد توی تاپیک
                              سلام
                              مهدی عزیز اول از هر چیز به خاطر زحمات و وقتی که برای این دوتاپیک میزارید خیلی ممنونم واین که تا الان پستی بابت قدر دانی نزدم این را پای بی ادبی بنده نزارید چون نمیخواستم بین مطالب مفید و با ارزشتون پیام غیر مرتبط ارسال کرده باشم .

                              در مورد درج ناقص متن ارسالی جنابعالی ، علتش به احتمال زیاد به خاطر کد های برنامه نویسی هست که توی متن مینویسید و فروم به این کد ها ایراد میگیره . به خاطر خلل پیش آمده عذر بنده را بپذیرید چون راهی برای برگرداندن آنها نیست و باید دوباره تایپ بفرمایید .

                              ولی برای این که دیگه چنین مشکلی پیش نیاد لطفا کد ها را بین عبارت بنویسد یا از نوار ابزار صفحه پیشرفته از آیکون # بهره ببرید .

                              با تشکر
                              لطفا قبل از افتتاح حساب جدید تاپیک ذیل را به دقت مطالعه فرمایید .

                              نظر


                              • #45
                                پست 11 - دستورات خرید و فروش

                                تا اینجا متغیر ها رو تعریف کردیم و شرایط رو برای خرید و فروش مشخص کردیم بعدش رفتیم سراغ استاپلاس

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

                                }

                                .......................

                                {

                                وقتی BuyMode رو برابر چیزی قرار ندادیم یعنی اینکه بای مد ترو باشه و میشد بنویسیم BuyMode == True که علامت "==" به مفهوم "برابری" هست که مسلما با "=" فرق میکنه.

                                تابع دستور برای اردرگیری به این شکل هست :
                                (
                                int OrderSend(string symbol, int cmd, double volume, double price, int slippage, double stoploss, double takeprofit, string comment=NULL, int magic=0, datetime expiration=0, colorarrow_color=CLR_NONE



                                Symbol : قبلا توضیح داده شده
                                cmd :
                                نوع پوزیشن ( بای - سل - بای لیمیت - سل لیمیت - بای استاپ - سل استاپ)
                                Volume :
                                لات سایز پوزیشن
                                price :
                                قیمت باز شدن اردر
                                slippage :
                                وقتی که دستور رو صادر کرد اگر قیمت به اندازه slippage از احظه صدور دستور حرکت داشته باشه باز هم اردر خئاهد گرفت اگر بیشتر شد دیگه اردر رو بیخیال میشه
                                stoploss :
                                مقدار عدد استاپلاس رو وارد میکنیم
                                takeprofit :
                                تی پی
                                comment :
                                میتونیم بوسیله این قسمت یک توضیح خطی بگذاریم مثلا "moving & MACD" و جلوی هر اردری که اکسپرت خواهد گرفت این عبارت نشون داده میشه و میتونید متوجه بشید که این اردر توسط خودتون یا کدوم اکسپرت گرفته شده
                                magic :
                                برای اردرها میتونید یک مجیک نامبر تعریف کنید و در صورت داشتن اردرهای متفاوت اونها رو با مجیک نامبر به اکسپرت بفهمونید که منظورتون کدوم نوع هست
                                expiration :
                                در اردر های لیمیت و استاپ اگر به میزان این مقدار زمان اردر باز نشه به صورت اتوماتیک حذف میشه دقت کنید که نوعش datetime هست
                                arrow_color:
                                تعریف میکنید که وقتی اردر گرفته شد فلش اون روی چارت به چه رنگی باشه.

                                (int OrderSend(Symbol(),OP_BUY, LotSize, Ask , 2 , slB , 0 , "Moving & MACD" , 0123456789 , 0 , Blue


                                به این ترتیب دستور معامله خرید در جفت ارزی که روش هستیم / با لایج LotSize / در قیمت Ask / با اسلیپیج 2 / و استاپی که قبلا براش تعریف کرده بودیو / تی پی رو 0 گذاشتیم تا چیزی اعمال نشه چون بعدا با وجود شرایطی میخویهیم نصف اردر رو ببندیم /مجیک نامبر 0123456789 در نظر گرفتیم که این عدد بصورت دلخواه هر عددی میتونه باشه / کامنتی که در نظر گرفتیم رو نوشتیم . اکسپایر رو 0 گذاشتیم چون پوزیشن ما اینستنت هست (از نوع لیمیت یا استاپ نیست) که بخواهیم بعدا حذفش کنیم / و در انتها رنگ آبی رو برای پویزشن باش انتخاب گردیم.

                                حالا میخواهیم متغیر LotSize رو قبل از init تعریف کنیم و کاری کنیم به در ورودی و در قسمت اینپوت اسکپرت داشته باشیو تا بعدا در صورت نیاز بتونیم تغییر بدیم .
                                برای این کار کافیه که قبل از نوع متغیرتون بنویسید extern . به همین راحتی

                                پس میشه ; extern double LotSize = 0.2
                                با اینکار ما متغیر LotSize رو با مقدار اولیه 0.2 تعریف کردیم و با گذاشتن extern.اون رو به قسمت ورودی اکسپرت بردیم تا بعدا بتونیم عوضش کنیم.

                                کدی که تا حالا نوشتیم به این شکل خواهد بود:
                                شکل 1- از ابتدا تا تابع start

                                http://

                                شکل 2- مابقی کد (تابع Start)

                                http://

                                خوب حالا کاری که میخوام انجام بدید این هست که از ابتدا تا این پست رو (یعنی 11 تا پستی رو که در مورد آموزش بوده) یکبار مطالعه کنید و بدون اینکه تاپیک و کدها رو نگاه کنید از اول و چشم بسته کد رو از اول بنوسید.

                                بعد ران کنید ببینید درست کار میکنه یا اگر و اگر مشکلی داره سعی کنید بفهمید که چرا؟؟!!!! و به من هم بگید تا باهم حلش کنیم.
                                لطفا دوستانی که وارد هستند کمی توی جواب دادن صبر کنند تا اونایی که مثل من تازه کار هستند بتونند خودشون فکر کنند و مساله رو درک کنند.

                                برای اون دسته از دوستانی که کاملا تازه کار هستند :
                                بعد از نوشتن کد از منوی بالای صفحه روی Compile کلیک کنید تا برنامتون به زبان ماشین تبدیل شده و در قسمت اکسپرت متاتریدرتون نشون داده بشه

                                اگر بعد از کامپایل اروری دریافت کردید بدونید که کدتون یه جاییش ایراد داره و باید بگردید و ایرادتونرو پیدا کنید (به علامتهای سمیکالن / آکولاد / پرانتزها دقت کنید که دقیقا درست گذاشته باشید)

                                حتماً حتماً حتماً تویاستراتژی تستر یا روی حساب دمو کدهاتون رو امتحان کنید چون حالا حالاها خیلی کار داریم تا بتونیم کدی بنویسیم که دقیقا چیزی که ما میخواهیم رو انجام بده


                                امیدوارم تا ابتدای هفته بعد جوابهایی رو توی تاپیک ببینیم و با دلگرمی بیشتری جلو بریم

                                ببینم چه میکنیییییییییدددددد
                                هر چه میکنید بکنید فقط تقلب نکنید تا بتونید یاد بگیرید
                                همه چیز اولش یکم فکر میبره ....
                                ویرایش توسط mda7 : https://www.traderha.com/member/3339-mda7 در ساعت 01-18-2014, 08:54 PM
                                بزرگترین لذت در زندگی ، انجام دادن کاری ست که دیگران می گویند :
                                تو نمی توانی ... !
                                ٠•●ஜ رومن پولانسکی ஜ●•٠




                                نظر

                                پردازش ...
                                X