وسائل لوڈ ہو رہے ہیں... لوڈنگ...

ایف ایم زیڈ کوالٹی پلیٹ فارم کی حکمت عملی ابتدائی سبق لکھنا (ضروری ہے)

مصنف:گھاس, تخلیق: 2019-08-13 17:47:27, تازہ کاری: 2021-08-06 10:29:46

تاریخ K لائن کی معلومات۔ اس طریقہ کار کا نقصان واضح ہے: ایک K لائن پر ، صرف ایک بار خرید و فروخت پیدا کی جاسکتی ہے ، عام طور پر قیمت K لائن کی اختتامی قیمت پر مبنی ہوتی ہے۔ اور ایک K لائن صرف چار قیمتوں تک رسائی حاصل کرسکتی ہے ، اور ایک K لائن میں قیمتوں میں کس طرح تبدیلی ہوتی ہے ، سب سے زیادہ قیمت پہلے ہوتی ہے ، یا سب سے کم قیمت پہلے ہوتی ہے وغیرہ وغیرہ کے بارے میں کوئی معلومات حاصل نہیں کی جاسکتی ہے۔ مثال کے طور پر ، 1 گھنٹے کی لائن میں ، حقیقی وقت میں ہر چند سیکنڈ میں ایک بار ٹریڈنگ کی معلومات حاصل کی جاسکتی ہے ، اور تجارتی احکامات بھی ڈسک میں ختم ہونے کے بجائے K لائن کے باہر آنے کا انتظار نہیں کرتے ہیں۔ onbar ریٹریکٹر کا طریقہ کار سمجھنے میں آسان ہے ، ریٹریکٹ بہت تیز ہے۔

ایف ایم زیڈ پلیٹ فارم کی طرف سے ریٹرنٹ کے دو قسم ہیں: اینالوجی سطح کی ریٹرنٹ اور حقیقی ڈسک کی ریٹرنٹ۔ اینالوجی سطح کی ریٹرنٹ کی بنیاد پر کلر لائن سائیکل کے مطابق تخروپن کی تخروپن ٹک، ہر کلر لائن سائیکل پر 14 ریٹرنٹ ٹائم پوائنٹس پیدا کرے گا.جبکہ حقیقی ڈسک کی سطح حقیقی جمع شدہ ٹک ہے ، جو تقریبا every ہر چند سیکنڈ میں ایک بار ہوتی ہے ، فی الحال کچھ حصے میں حقیقی گہرائی ((20 گراف پر مشتمل ہے) ، حقیقی ایک ایک کرکے ٹرانزیکشن کی حمایت کرتا ہے۔اعداد و شمار کی مقدار بہت زیادہ ہے ، اور ریٹرن کی رفتار سست ہے ، لہذا خاص طور پر طویل عرصے تک ریٹرن نہیں کیا جاسکتا ہے۔ ایف ایم زیڈ کا ریٹرن میکانزم حکمت عملی کو ایک ہی K لائن پر متعدد بار تجارت کرنے کی اجازت دیتا ہے ، جس سے صرف قیمت بند کرنے کی صورت حال سے گریز ہوتا ہے ، زیادہ درست اور ریٹرن کی رفتار کو مدنظر رکھتے ہوئے۔ تفصیلات کے لئے ملاحظہ کریں:https://www.fmz.com/digest-topic/4009

ریویو کا پالیسی فریم ورک اصلی ڈسک کی طرح ہی ہے اور یہ ایک مردہ لوپ ہے۔ چونکہ ریویو مختلف ریویو پوائنٹس پر کودتا ہے ، اس وقت اس کا استعمال نیند کے بغیر کیا جاسکتا ہے ، اور ایک لوپ کے اختتام پر خود بخود اگلے ٹائم پوائنٹ پر کود جاتا ہے۔ لیکن پیتھون کی وجہ سے پروگرام کی میکانزم کو ایک مجبور کرنے کی ضرورت ہے۔Sleep(10)اس کے علاوہ ، اس نے اپنی زندگی میں ایک اور اہم قدم اٹھایا ہے۔

ریٹیسٹ کی تصویر

ریٹرننگ انجن صارف کی طرف سے دیئے گئے قیمتوں اور ریٹرننگ کے وقت کے نقطہ نظر پر مبنی ہے، اگر خریدنے کی قیمت ایک فروخت سے زیادہ ہے تو، ایک ٹرانزیکشن فروخت کرنے کے لئے. اگر کوئی ٹرانزیکشن نہیں ہے تو، ایک لٹکن پیدا ہوتا ہے. اگر ٹرانزیکشن کو یقینی بنانے کے لئے، اس کی ضرورت ہوتی ہے. اگر ریٹرننگ کے دوران ایک پوزیشن کھولنے کے قابل نہیں ہے یا اس کی وجہ سے پوزیشن منجمد ہے.

صفحہ کی ترتیبات کی جانچ پڑتال کریں

img

  • 1.回测页面的选择,左侧是策略编辑页面。
  • 2.回测起始结束时间,由于数据不完整,回测可能直接从有数据的时间开始。
  • 3.回测GetRecords()فنکشن کے ڈیفالٹ دورانیے کو بھی کوڈ میں مقرر کیا جا سکتا ہے۔
  • 4.回测机制的选择。
  • 5.展示或隐藏跟多回测设置。
  • 6.最大日志数、收益数据数、图表数据数等,为了防止数据量过大导致浏览器卡死。
  • 6.底层tick生成依据K线周期。
  • 7.交易滑点。
  • 7.容错,会模拟API请求出错情况,检查策略容错能力。
  • 8.是否绘制行情图标,回测中如果使用了TA指标函数,会自展示在图标上,买卖也会标记。
  • 9.手续费设置
  • ایکسچینج - تجارت کے جوڑے اور اثاثوں کو شامل کریں۔
  • 11.回测参数设置,如果参数是数字还支持一键优化参数,自动按照一定范围遍历参数回测。

ریٹیسٹ اور ریئل ڈسک کے درمیان فرق

  • 1.回测时有效的行情只有GetTicker和GetRecords,其它如获深度、成交历史都不是真实的(因为数据量太大,实盘级回测目前已经支持这些数据,但只有最近数据)。
  • 2.回测添加的交易所都是独立账户,目前不支持切换交易对。因此无法在一个账户里操作两个交易对。
  • 3.回测中无法使用网络请求。
  • 4.回测无法使用IO扩展,只能操作最基础的API。
  • 5.回测只能获取标准的数据,像Info之类的牵扯到实盘的数据不存在。
  • 6.回测中也有可能不成交,注意冻结订单情况。
  • 7.商品期货回测不支持市价单。

حکمت عملی میں غلطی اور عام غلطیاں

جیسا کہ پہلے ذکر کیا گیا ہے، ایک حقیقی ڈسک میں API کا استعمال کرتے ہوئے، رسائی ناکام ہو سکتی ہے اور واپس آ سکتی ہےnullاس کے علاوہ ، اس میں موجود اعداد و شمار کو استعمال کرتے وقت غلطی کی اطلاع دی جاسکتی ہے اور اس کی وجہ سے اصلی ڈسک کو روک دیا جاسکتا ہے ، لہذا حکمت عملی کو غلط کرنے کی ضرورت ہے۔

عام طور پر غلط فہمی کا اظہار

عام غلط وجوہات:

  • API رسائی نیٹ ورک کی خرابی ، انٹرفیس تک رسائی کا وقت ضائع ہوجاتا ہے ، اس وقت استعمال کرنے پر غلطی کی اطلاع دی جاتی ہے۔
  • ایکسچینج میں غلطیوں کی حد ہوتی ہے جیسے آئی پی کی حد ، آرڈر کی درستگی ، رسائی کی تعداد ، پیرامیٹر کی غلطی ، اثاثوں کی کمی ، مارکیٹ میں تجارت کرنے سے قاصر ، فروخت شدہ احکامات کو منسوخ کرنا ، وغیرہ۔ API دستاویزات کو مخصوص طور پر غلطی کے کوڈ کے مطابق تلاش کیا جاسکتا ہے۔
  • تبادلے ڈیٹا کی غلطیوں کو واپس کرتے ہیں ، جو کبھی کبھار ہوتے ہیں ، جیسے واپس آنے والی گہرائی ، تاخیر سے اکاؤنٹ کی معلومات ، تاخیر سے آرڈر کی حیثیت وغیرہ۔
  • پروگرام کی منطق میں خرابی۔

API کا استعمال کرتے ہوئے اعداد و شمار کو واپس کرنے سے پہلے ، اس کا فیصلہ کرنا ضروری ہے کہ آیا یہ null ہے یا نہیں ، ذیل میں ایک عام طور پر استعمال ہونے والا مجموعی طریقہ ہے:

//1.判断为null进行处理
var ticker = exchange.GetTicker();
while(ticker == null){
     Log('ticker 获取出错');
     ticker = exchange.GetTicker();
 }
 Log(ticker.Last);
 // 2.判断不为null再进行引用
 var ticker = exchange.GetTicker();
 if(!ticker){
     Log(ticker.Last);
 }
 // 3._C()函数重试
 var ticker = _C(exchange.GetTicker);
 Log(ticker.Last);
 // 4. try catch容错
 try{
     var ticker = exchange.GetTicker();
     Log(ticker.Last);
 }
 catch(err){
     Log('ticker 获取出错');
 } 

اگر آپ غلط معلومات حاصل کرنا چاہتے ہیں تو آپ اسے استعمال کر سکتے ہیں۔GetLastError()، پچھلے غلطی کے بارے میں معلومات کی سٹرنگ واپس کرے گا، اور غلطیوں کے لئے فرق کا علاج کیا جا سکتا ہے۔

عمومی سوالات

اس فورم پر بہت سے غلط خلاصے ہیں:https://www.fmz.com/bbs-topic/1427یہاں کچھ خلاصے ہیں ، اور اگر آپ کو کوئی مسئلہ درپیش ہے تو ، آپ Ctrl + F کی تلاش کرسکتے ہیں۔

کس طرح ٹرسٹی کو ترتیب دیا جائے؟

مزید تفصیلات کے لئے شامل کریں منتظم

کیا آپ کے پاس کوئی روایتی تحریری حکمت عملی ہے؟

https://www.fmz.com/marketsان میں سے کچھ ایسے بھی ہیں جو اپنی تحریری خدمات پیش کرتے ہیں یا گروپ میں مشورے دیتے ہیں اور انہیں اپنے خطرے پر رابطہ کرنے کی ضرورت ہوتی ہے۔

تمام انٹرفیس تک رسائی کا وقت ختم ہونے کا اشارہ

اس کا مطلب یہ ہے کہ تبادلے کے انٹرفیس تک رسائی کا وقت ختم ہوجاتا ہے ، اگر کبھی کبھار کوئی مسئلہ نہیں ہوتا ہے تو ، اگر یہ اشارہ کیا جاتا ہے کہ آپ کے نیٹ ورک تک رسائی حاصل نہیں ہوسکتی ہے تو ، بیرون ملک سرور کا استعمال کرنا ضروری ہے۔

ERR_INVALID_POSITION غلطی

ریویو سسٹم کی غلطی کی اطلاع ، عام طور پر حکمت عملی کے لئے غلطی لکھنے کے لئے ، جب کوئی ہولڈنگ نہیں ہوتی ہے یا ہولڈنگ کی تعداد کم ہوتی ہے تو ، صفائی کی کوشش کرنے کی کوشش کرنا ، اس غلطی کا سبب بنتا ہے۔

علامت مقرر نہیں

فیوچر ایکسچینج کی واپسی ، کوڈ میں کوئی معاہدہ سیٹ نہیں کیا گیا ، دیکھیں exchange.SetContractType

BITMEX 429 خرابی،{error:{message:Rate limit exceeded retry in 1 seconds......}}

ایکسپورٹ انٹرفیس تک رسائی کی فریکوئنسی بہت زیادہ ہے۔

{status:6004،msg:ٹائم اسٹیمپ رینج سے باہر ہے}

سرور کا ٹائم لائن حد سے باہر ہے سرور کا وقت اپ ڈیٹ کرنے کی ضرورت ہے ، اس میں زیادہ انحراف نہیں ہوسکتا ہے۔

GetOrder ((455284455): غلطی: غلط آرڈر ID یا آرڈر منسوخ.

کچھ تبادلے کے احکامات منسوخ ہو جاتے ہیں اور تبادلے کے احکامات کی معلومات کو برقرار نہیں رکھا جاتا ہے اور اسے حاصل نہیں کیا جا سکتا ہے۔

حاصل احکامات: 400: {کوڈ:-1121،msg:غلط علامت.}

غلط ٹرانزیکشن جوڑی، چیک کریں کہ آیا ٹرانزیکشن جوڑی کی ترتیب میں غلطی ہے۔

خفیہ چابی کو ڈیکرپٹ کرنے میں ناکامی

API KEY کو حل کرنے میں ناکامی۔ اگر APIKEY کو ترتیب دینے کے بعد FMZ پاس ورڈ میں ترمیم کی گئی ہے تو ، FMZ میں تبادلہ صفحہ شامل کرنے کی کوشش کریں اور تبادلہ APIKEY کو دوبارہ ترتیب دیں۔

Signature not valid: Invalid submission time or incorrect time format دستخط درست نہیں یا وقت کی شکل غلط ہے

یہ مشورہ دیا جاتا ہے کہ آپ لینکس سرور استعمال کریں یا ونڈوز سسٹم پر انسٹال ٹائم ہم آہنگی سافٹ ویئر استعمال کریں جہاں یہ مسئلہ پیدا ہوتا ہے۔

ایک عالمی ایجنٹ کیوں بنایا گیا ہے اور منتظمین کو کس طرح ایکسچینج API تک رسائی حاصل ہے؟

عالمی ایجنٹ کے پاس ایجنٹ مینیجر نیٹ ورک پورٹ نہیں ہے ، لہذا تاخیر کے مسائل کی وجہ سے ، بیرون ملک سرورز کو تعینات کرنے والے میزبانوں کو ترجیح دی جاتی ہے۔

اس کے علاوہ ، آپ کو یہ جاننے کی ضرورت ہے کہ آپ کی حکمت عملی کو کس طرح مقامی طور پر برقرار رکھا جاسکتا ہے ، نہ کہ ایف ایم زیڈ پر اپ لوڈ کیا جاسکتا ہے۔

پیتھون کا استعمال کرتے ہوئے مقامی طور پر فائلوں کو درآمد کیا جاسکتا ہے ، ایف ایم زیڈ کے اے پی آئی کے مطابق لکھے گئے پالیسیوں کو فائلوں میں محفوظ کیا جاسکتا ہے ، جو اپنے سرور پر عملدرآمد کے راستے کے نیچے محفوظ کیا جاسکتا ہے ، اور اسے براہ راست پڑھا جاسکتا ہے۔

#!python2.7

def run(runfile):
      with open(runfile,"r") as f:
            exec(f.read())
            
def main():
    run('my.py')

ایکسچینج کے ٹیسٹنگ نیٹ ورک کا استعمال کیسے کریں یا API کی بنیاد تبدیل کریں

آپ کو براہ راست اس کے مطابق API بیس ایڈریس پر سوئچ کرنے کے لئے exchange.SetBase ((() کا استعمال کر سکتے ہیں ؛ جیسے:

exchange.SetBase("https://www.okex.me")

مزید

گاوینچیئرایپی

سائنسمیں نے ایک سادہ لاگ آؤٹ پٹ بیان لکھا ہے اور اس کے اختتام پر عمل کیا ہے۔ اس کے بعد ، آپ کو اپنے کمپیوٹر کو ایک سرور کے طور پر استعمال کرنے کی ضرورت ہے۔ دوسرا مرحلہ ، ایک سادہ لاگ آؤٹ پٹ معلومات کے لئے ایک ٹیسٹ.پی پروگرام لکھنا (FMZ کے API انٹرفیس فنکشن) ۔ تیسرا مرحلہ ، جیسا کہ متن کے اختتام پر ، ایک رن فائل لکھیں ، جسے run.py کے ذریعہ ٹیسٹ.py کال کریں۔ /upload/asset/1add39483ef82d45b3ce3.png

گیپ9میں نے ایک نیٹ ایزی کلاؤڈ کوانٹیمیٹڈ ٹریڈنگ کورس خریدا ہے، اب کہاں جانا ہے؟

مونوراجاکبہت سے

مونوراجاکہیلو

بھائی بھائی!سیکھنا

wqyیہاں ایک چھوٹی سی غلطی ہے، GetAccount اکاؤنٹ حاصل کرتا ہے، اور یہ کہ FrozenStocks کے بارے میں ہے، یہ ایک منجمد توازن ہونا چاہئے، اور دستیاب توازن نہیں.

چیف ایجنٹgetorder outtime آرڈر آؤٹ ٹائم حاصل کریں، اوکیکس کے تبادلے، کیا کریں

اونی بارو نے اعلیٰ چالیں بنائیںضمانت کی شرح دستیاب نہیں ہے، 0 فیصد تک کی ضمانت کی شرح کو مجبور کیا جائے گا

شیفینگ2020میں نے ایک منٹ کے اسٹرنگ گراف پر کام کیا ہے، لہذا پیتھون کی موت کی لوپ کے لئے نیند کا وقت 0.1s پر مقرر کیا جاسکتا ہے، یعنی نیند ((100) کیا میں نے دیکھا کہ آپ نے اس میں ایک نیند ((10) لکھا ہے، یعنی 0.1s HM API کی حد سے زیادہ نہیں ہوگی؟

مشرقی ہوائی اڈےexchange.SetDirection (("closebuy"); // اگر یہ مستقل معاہدہ ہے تو براہ راست exchange.SetDirection (("sell") سیٹ کریں یہاں میں نے اوکیکس کا مستقل معاہدہ آزمایا، اور اگر اسے فروخت پر سیٹ کیا جائے تو یہ فوری طور پر خالی ہو جاتا ہے، اور یہ بہت سستا نہیں ہے۔

مشرقی ہوائی اڈےexchange.SetDirection (("closebuy"); // اگر یہ مستقل معاہدہ ہے تو براہ راست exchange.SetDirection (("sell") سیٹ کریں یہاں میں نے اوکیکس کا مستقل معاہدہ آزمایا، اور اگر اسے فروخت پر سیٹ کیا جائے تو یہ فوری طور پر خالی ہو جاتا ہے، اور یہ بہت سستا نہیں ہے۔

مشرقی ہوائی اڈےGetOrders کے کوڈ میں دو ہجے کی غلطیاں ہیں۔ ایک function کو fuction کے طور پر لکھا گیا ہے اور دوسرا for loop کی شرائط میں؛

مشرقی ہوائی اڈےیہ میری غلطی تھی۔ exchange.Buy ((-1, 0.5) ، ٹریڈنگ جوڑی ETH_BTC ہے، مارکیٹ کی قیمت کا اشارہ 0.5BTC کے لئے ETH خریدنے کے لئے ہے exchange.Buy ((price، 0.5) ، اگر یہ اس طرح کی قیمت کی حد ہے تو ، اس کی قیمت کے ساتھ 0.5ETH خریدنے کی نمائندگی کرتا ہے۔

مشرقی ہوائی اڈےexchange.Buy ((-1, 0.5) ، ٹریڈنگ جوڑی ETH_BTC ہے ، جس کی نمائندگی مارکیٹ کی قیمت پر 0.5BTC کے ETH کی خریداری کرتی ہے۔ یہاں 0.5ETH مارکیٹ کی قیمت پر خریدنے کے لئے ایک ایٹم ہے.

گیپ9شکریہ

گھاسہمیشہ سے نیٹ پر دستیاب https://study.163.com/course/courseMain.htm?share=2&shareId=400000000602076&courseId=1006074239&_trace_c_p_k2_=c3f5d238efc3457d93c8b92c0398d2b2

گھاسہوم پیج پر ویکیپیڈیا شامل کریں، آپ کو گروپ میں شامل کریں

wqyمیں نے آپ سے پوچھا کہ کیا آپ کے پاس کوئی سرکاری گروپ ہے؟ کبھی کبھی آپ کے پاس کوئی مسئلہ ہوتا ہے اور آپ نہیں جانتے کہ کہاں پوچھنا ہے۔

گھاستبدیل کر دیا

گھاسدوبارہ حاصل کریں

گھاساصل معلومات میں، آپ کو GetRawJSON استعمال کر سکتے ہیں یا ایک فیلڈ میں معلومات دیکھ سکتے ہیں

مشرقی ہوائی اڈےبہت اچھا، اور انتظامیہ کی طرف سے جوابات بھی۔ میں نے کوڈ میں بہت سے ہجے کی غلطیاں دیکھی ہیں، ہاہاہا

گھاساوہ، یہ درست ہے، غلطی کی نشاندہی کرنے کا شکریہ

گھاسکچھ مستقل معاہدوں میں دو طرفہ ہولڈنگ کی اجازت ہوتی ہے ، جس کے لئے بریک اپ کی ضرورت ہوتی ہے۔ میں نے اپ ڈیٹ کیا ، پہلے صرف بٹ میکس تھا۔