هل لدى أي شخص طريقة للحوسبة الآلية واستخراج لاحقة الشارة للحصول على شعارات مع شخصيات ملحقة؟
مثال:
سلسلة التعليمات البرمجية المدرجة ecn_suffix = AutoSuffixFinder ()؛
Printable View
هل لدى أي شخص طريقة للحوسبة الآلية واستخراج لاحقة الشارة للحصول على شعارات مع شخصيات ملحقة؟
مثال:
سلسلة التعليمات البرمجية المدرجة ecn_suffix = AutoSuffixFinder ()؛
مع أدناه ، أنت تقوم باستخراج كل شيء بعد شعار الزوج ... مثال EURUSDecn ... الدالة ecn كجزء المستخرجة. سلسلة الرمز المدرج sub = StringSubstr (_Symbol، 6،0)
يعمل هذا إذا كنت تعرف أنك تسقط على الشارة المثالية ، لكن مشكلتي هي أنني أعمل مع العديد من الرموز التي تم سحبها إلى نفس البرنامج بالضبط ، ويعرض الوسيط 3 رموز مميزة لنفس الزوج بالضبط ، على سبيل المثال. GBPUSD و GBPUSD_ و GBPUSDx. أعرف عندما أنظر إلى مراقبة السوق أن GBPUSD_ هو شعارك الذي أود استخدامه ، حيث يتم تمثيل اللاحقة (_) في أكثر من 50 في المائة من الرموز المتاحة. وأود أن أقيم الرمز السابع من رموز العملات وليس من CFDs وفقط. هنا هو ما أتيت مع رمز إدراج # حقوق الملكية الفكرية nicholishen #property Hyperlink www.reddit.com/u/nicholishenFX #property version 1.00 # property الصارم # تتضمن lt ؛ Arrays \ ArrayObj.mqhgt؛ فئة لاحقة: CObject العامة {public: string suffix؛ عدد الباحثين لاحقة (string suff): suffix (suff)، count (1) {} int Compare (const const CObject * node، const int mode = 0) const Suffix * that = (Suffix *) node؛ إذا أرجعت (this.count gt؛ that.count) -1؛ وإلا إذا أرجعت (this.count lt؛ that.count) 1؛ غير ذلك 0 }؛ class SuffixList: public CArrayObj public: Suffix * operator # 91؛ # 93؛ (const int I) constreturn (Suffix *) At (I)؛ void Add (string suffix) for (int I = 0؛ ilt؛ Total ()؛ I ) if (# 91؛ I # 93؛ .suffix == suffix) هذا # 91؛ I # 93 ؛. عدد ؛ إرجاع؛ CArrayObj :: إضافة (لاحقة جديدة (لاحقة))؛ ./ ----------------------------------------------- ------------------- /| البرنامج النصي بدء وظيفة |/ ----------------------------------------------- ------------------- void OnStart ()/- string res = AssumedSuffix ()؛ res = res == NULL؟ الطباعة (لاحقة مفترضة هي (، res ،)) ؛/ ----------------------------------------------- ------------------- string AssumedSuffix () قائمة SuffixList؛ مجموع int = SymbolsTotal (خطأ)؛ لـ (int I = 0؛ ilt؛ overall؛ I ) string_name = SymbolName (I، false)؛ if (StringLen (chart_name) == 7) bool con = true؛ لـ (int j = 0؛ jlt؛ 6؛ j ) إذا (! IsChar (StringSubstr (chart_name، j، 1))) con = false؛ استراحة؛ if (con) string sub_string = StringSubstr (chart_name، 6.1)؛ list.Add (sub_string)؛ if (list.Total () gt؛ 0) list.Sort ()؛ قائمة العودة رقم 91 ؛ 0 # 93 ؛ .suffix ؛ العودة bool IsChar (string c) string allowed = ABCDEFGHIJKLMNOPQRSTUVWXYZ؛ return StringFind (allowed، c) gt؛ = 0؛Quote:
Originally Posted by ;
لماذا التذوق؟ بديل واحد: أعتقد أنك قمت بتحسين ، في البداية ، تغيير شعار الرسم الأول في وقت لاحق تنفيذ بالقوة ، خبيرالنصيإشارةليكون مع الدالة ChartSetSymbolPeriod المرغوب فيه لاحقة
1 مرفق (مرفقات) على سبيل المثال ، إذا كان الجنيه الإسترليني مقابل الدولار الأمريكي (GBPUSDx) ، سيتم تغييره بالقوة إلى جنيه إسترليني (GBPUS) الآن ، على الرغم من أنك لن تسقط إلى الرمز الصحيح ، سيغير برنامجك رمز المخطط إلى الرمز الأيمن. اعتذاري إذا لم أحصل على نقطة.
نعم ، لقد أخطأت النقطة. أنا حقا لا أريد أن أعلن شار ، أحتاج إلى algo للعثور على الرمز الذي يستخدم تلقائيا.Quote:
Originally Posted by ;
هل المعيار لاكتشاف اللاحقة الذي يتكرر أكثر في السوق؟ في هذه الحالة ، يجب أن يحصل التطبيق على اسم أزواج من MarketWATCH ، وتقييمه. رمزك أعلاه ، حل المشكلة؟Quote:
Originally Posted by ;
نعم ، هذه هي المعايير. يفعل هذا ، ولكن لا أريد فقط رموز من وجهة نظر السوق ، وأود أن تقييم الرموز المقدمة من الوسيط. يعمل البرنامج النصي تمامًا كما أريد. نرحب بك لاستخدامه أو تغييره على أي حال تراه مناسبًا.Quote:
Originally Posted by ;
ArrayObj.mqh حيث يمكن للمرء الحصول على هذا الرمز؟ أنت برنامج أو أنه هو رمز مدمج؟
جزء من المكتبة القياسية. يمكنك العثور عليه في مجلد includearrays وهو \.Quote:
Originally Posted by ;
أيضاً ، أقترح نسخ البرنامج النصي ثم إعداد نقطة فاصل حتى يمكنك التنقل خلال التعليمات البرمجية مع المصحح لمراقبة كيفية تنفيذ الفرز بتجاوز أسلوب CObject Compare.Quote:
Originally Posted by ;
66666666666666666Quote:
Originally Posted by ;
لاحقة = StringSubStr (pairstring، 6)؛ StringSubStr (pairstring، لاحقة، 6)؛ لا تذكر بالضبط المعلمات ولكنك قادر على استخراج أي شيء تلقائيا من نقطة البداية. لذلك سوف تجد لاحقة في السلسلة الجديدة.
بالإضافة إلى
https://www.mql5.com/en/code/9102احصل على القائمة الكاملة ، وقم أيضًا ببعض العينات المشفرة مثل One for Forex One for CFD وغيرها وغيرها
3 المرفق (المرفقات)تم دمج هذا الآن في API بحيث لا تحتاج إلى lib خارجي ، باستخدام SymbolsTotal () و SymbolName (.) أيضا ، لاحقة = StringSubStr (pairstring ، 6) ؛ لا يعمل عندما يوفر الوسيط الخاص بك عدة رموز لنفس الأداة مع بعض التباديل. على سبيل المثال ، استخدم وسيطًا لديه EURUSD ، EURUSDx ، EURUSDy. ما هي اللاحقة التي تشير إلى الأداة التي تحتاجها إلى EA الخاص بك للقيام بالتداولات ولماذا؟ إذا كنت تستحوذ على السلسلة الفرعية الأولية على فرص الرمز الأول ، فأنت بذلك ستفهمها بشكل خاطئ ، وليس الخطأ في ذلك. هذه هي المكتبة المحدثة حديثًا لاستخراج اللاحقة التلقائية. فائقة البساطة في الاستخدام: تم إدراج الرمز # لاحقًا lt ؛ suffix_filters. Mqhgt. لاحقة السلسلة = AssumedSuffix ()؛ مثل التبعياتQuote:
Originally Posted by ؛
https://www.cavemantrading.com/crypt...ncy-chart.html
https://www.cavemantrading.com/forex...-revanded.html
https://www.cavemantrading.com/forex...ort-staff.html
هل يمكن تحسين o تمييز الفوركس تلقائيًا من CDF ENUM_SYMBOL_INFO_STRING SYMBOL_PATH ؟؟ Inserted Code SymbolInfoString تقوم بإرجاع الخاصية المقابلة لرمز محدد. هناك نوعان من هذه الوظيفة. 1. يتم إرجاع قيمة الخاصية بواسطة Instantly. السلسلة SymbolInfoString (اسم السلسلة ،/Symbol ENUM_SYMBOL_INFO_STRING prop_id/معرّف العقارات) ؛ اثنين. إرجاع false أو true ، استنادًا إلى نجاح إحدى الدالات. عندما تكون فعالة ، يتم تعيين قيمة هذا المنزل في متغير متغير يتم تمريره حسب المرجع في المعلمة الأخيرة. Bool SymbolInfoString (اسم السلسلة ،/Symbol ENUM_SYMBOL_INFO_STRING prop_id،/Property identifier series string_var/هنا نقبل قيمة العقار)؛ Parameters title # 91؛ at # 93؛ عنوان الرمز. Prop_id # 91 ؛ في # 93 ؛ معرف خاصية الرمز. قد تكون القيمة أحد مزايا هذا # 91 ؛ url = mk:MSITStore: C: \ Users \ user \ AppData \ Roaming \ MetaQuotes \ Terminal \ Help \ mql4.chm ::marketinfoconstants.htm # enum_symbol_info_string # 93 ؛ ENUM_SYMBOL_INFO_STRING # 91 ؛تلميح # 93 ؛ تعداد. String_var خارج # 93؛ المتغير من هذا النوع من السلسلات يستلم قيمة العقار. قيمة الإرجاع قيمة نوع السلسلة. في حالة فشل التنفيذ ، معلومات حول # 91؛ url = mk:MSITStore: C: \ Users \ user \ AppData \ Roaming \ MetaQuotes \ Terminal \ Help \ mql4.chm ::errorcodes.htm # 93 ؛ خطأ # 91 ؛تلميح # 93 ؛ يتوفر استخدام # 91؛ url = mk:MSITStore: C: \ Users \ user \ AppData \ Roaming \ MetaQuotes \ Terminal \ Help \ mql4.chm:///getlasterror.htm#93؛GetLastError()#91؛تلميح # 93 ؛ الوظيفة: # 91 ؛ قائمة # 93 ؛ # 91 ؛ * # 93 ؛ 4106 # 8211 ؛ لم يتم تحديد الرمز في Market Watch (غير موجود في قائمة المتاح) ، # 91؛ * # 93؛ 4051 # 8211؛ معرف غير صالح لبعض منازل الرمز ، # 91 ؛ * # 93 ؛ 4024 # 8211 ؛ خطأ داخلي. # 91 ؛قائمة # 93 ؛
هنا خوارزمية أسرع (10x) من أجل استخراج لاحقة رمز ECN برمجياً. رمز مُدرج #include lt؛ Arrays \ ArrayString.mqhgt؛ سلسلة AccountSuffix () لاحقة سلسلة ثابتة = NULL؛ stat int account_number = 0؛ int acc = (int) AccountInfoInteger (ACCOUNT_LOGIN)؛ if (suffix! = NULL acc == account_number) return suffix؛ account_number = acc؛ قائمة CArrayString ؛ int complete = SymbolsTotal (false)؛ لـ (int I = total-1؛ igt؛ = 0؛ I--) list.Add (StringSubstr (SymbolName (I، false)، 6))؛ list.Sort ()؛ series = NULL؛ int max = -1؛ int cnt = 0؛ for (int I = list.Total () - 1؛ igt؛ = 0؛ I--) if (list # 91؛ I # 93 ؛! = last) cnt = 0؛ last = list # 91؛ I # 93 ؛؛ المركز الوطني للاستشعار ؛ if (cnt gt؛ max) max = cnt؛ suffix = list # 91؛ I # 93 ؛؛ إذا كسر (cnt gt؛ total2)؛ لاحقة = لاحقة == NULL؟ : لاحقة لاحقة العودة
استخراج لاحقة ECN غير مرتبط تمامًا بفك رموز نوع. من أجل التأكد من النوع لقد وجدت أنه من الأفضل استخدام التعليمة البرمجية المدرجة التعليمة البرمجية SYMBOL_TYPETYPE_FOREX ، TYPE_CFD؛ SYMBOL_TYPE SymbolType (رمز سلسلة const) إذا كان (SymbolInfoInteger (الرمز ، SYMBOL_TRADE_CALC_MODE)!) = 0) إرجاع TYPE_CFD؛ return TYPE_FOREX؛Quote:
Originally Posted by ;