PDA

View Full Version : كيف تلعب صوت التنبيه مرة واحدة فقط



luyettkm
07-05-2016 04:31, 04:31 AM
لدي بعض المؤشرات حيث يتم رسم السهم على الرسم البياني عندما تحدث المعايير التي أحددها. بدلا من مجرد التحديق في MT4 طوال اليوم ، أود الحصول على تنبيه للتشغيل بمجرد أن يتم رسم السهم حتى أستطيع القيام بأعمال أخرى على جهاز الكمبيوتر الخاص بي. ولكن ، أريد فقط التنبيه للعب مرة واحدة فقط! كيف يمكنني جعل هذا الأمر كذلك؟

الشفرة الأساسية التي استخدمتها في المؤشرات الخاصة بي لتشغيل التنبيه هي:

Inserted Code PlaySound (Alert.wav)؛

شكر.

تسنيم أمين
11-24-2021 08:18, 08:18 AM
لدي بعض المؤشرات حيث يتم رسم السهم على الرسم البياني عندما تحدث المعايير التي أحددها. بدلا من مجرد التحديق في MT4 طوال اليوم ، أود الحصول على تنبيه للتشغيل بمجرد أن يتم رسم السهم حتى أستطيع القيام بأعمال أخرى على جهاز الكمبيوتر الخاص بي. ولكن ، أريد فقط التنبيه للعب مرة واحدة فقط! كيف يمكنني جعل هذا الأمر كذلك؟ الشفرة الأساسية التي استخدمتها في المؤشرات الخاصة بي لتشغيل التنبيه هي: PlaySound (Alert.wav)؛ شكر.
الافتراضي Alert.wav هو مدة قصيرة للغاية وغاب في كثير من الأحيان. استخدام ملف wav موسيقى من عدة ثوان ، على سبيل المثال 30 ثانية./play music wav file extern bool PlaySounds = true؛/...خاطئة؛/wave file to be played extern string AlertSound = music.wav؛ إذا (PlaySounds) PlaySound (AlertSound)؛ *** إنشاء ملف WAV من قطعة الموسيقى المفضلة واسم ذلك music.wav

luyettkm
11-24-2021 09:39, 09:39 AM
{quote} the default Alert.wav is too short duration and often missed. use a music wav file of several seconds, example 30 seconds./play music wav file extern bool PlaySounds = true;/...false;/wave file to be played extern string AlertSound = music.wav; if(PlaySounds)PlaySound(AlertSound); *** create a wav file from a favourite music piece and name that music.wav
شكرا ولكن سؤالي هو أكثر حول كيفية إيقاف تشغيل التنبيه بشكل متكرر.

صباح الدين برهان
11-24-2021 11:00, 11:00 AM
يعتمد الأمر على كيفية ظهور تنبيهك ، ولكن هناك طريقتين شائعتين للتعامل مع هذه المشكلة: 1. تحقق من تغيير الحالة. استخدم متغير ثابت لتذكر ما إذا كان التشغيل السابق من خلال OnCalculate ()OnTimer () أدى إلى تنبيه. إذا حدث ذلك ، فلا تنبه مرة أخرى. إذا لم يحدث ذلك ، وقد أدى هذا الوقت إلى تنبيه ، ثم تشغيل الصوت. Inserted Code bool static OldState = false؛ bool NewState = (Close # 91؛ 1 # 93؛ gt؛ Close # 91؛ 2 # 93؛)؛/change for your logic if (! OldState NewState) {PlaySound (Alert.wav)؛ } OldState = NewState؛ 2. إضافة تأخير زمني بين التنبيهات تذكر عند تشغيل آخر تنبيه ، أضف تأخيرًا زمنيًا لهذا (بالثواني) ، ثم تحقق من أن TimeCurrent () أكبر من هذا الوقت قبل تشغيل التنبيه مرة أخرى. مدرج رمز ثابت تاريخوقت LastAlert = 0؛ إذا كان (إغلاق # 91 ؛ 1 # 93 ؛ gt ؛ إغلاق # 91 ؛ 2 # 93 ؛ TimeCurrent () gt ؛ LastAlert 300)/تغيير المنطق الخاص بك {PlaySound (Alert.wav)؛ LastAlert = TimeCurrent ()؛ } أو يمكنك استخدام مجموعة منها على حد سواء (عندما يرقص السعر حول الحد الأقصى للتنبيه). أو ، تحقق مرة واحدة فقط لكل شريط. امل ان يساعد