وہ لوگ جنہوں نے مالیاتی تجارت کی ہے شاید ان کا تجربہ ہوگا۔ بعض اوقات قیمتوں میں اتار چڑھاؤ باقاعدگی سے ہوتا ہے ، لیکن زیادہ کثرت سے یہ بے ترتیب چلنے کی غیر مستحکم حالت دکھاتا ہے۔ یہ اس عدم استحکام کی وجہ سے ہے جہاں مارکیٹ کے خطرات اور مواقع موجود ہیں۔ عدم استحکام کا مطلب غیر متوقع بھی ہوتا ہے ، لہذا غیر متوقع مارکیٹ کے ماحول میں واپسی کو زیادہ مستحکم بنانے کا طریقہ بھی ہر تاجر کے لئے ایک مسئلہ ہے۔ یہ مضمون ہر ایک کو متاثر کرنے کی امید میں ، مگرمچھ ٹریڈنگ کے قواعد کی حکمت عملی کا تعارف کرائے گا۔
تمساح کی لکیر دراصل تین خصوصی حرکت پذیر اوسط ہیں ، جو نیلی لکیر کے چہرے ، سرخ لکیر کے دانتوں اور سبز لکیر کے اوپری ہونٹ سے مطابقت رکھتی ہیں۔ چہرہ 13 مدت کا حرکت پذیر اوسط ہے اور مستقبل میں 8 بار چلتا ہے۔ دانت 8 مدت کا حرکت پذیر اوسط ہے اور مستقبل میں 5 بار چلتا ہے۔ اوپری ہونٹ 5 مدت کا حرکت پذیر اوسط ہے اور مستقبل میں 3 بار چلتا ہے۔
تمساح کی لکیر جیومیٹری اور غیر لکیری حرکیات پر مبنی تکنیکی تجزیہ کے طریقوں کا ایک مجموعہ ہے۔ جب تمساح کی چوت ، دانت اور اوپری ہونٹ بند یا پھنسے ہوئے ہوتے ہیں ، تو اس کا مطلب یہ ہوتا ہے کہ تمساح سو رہا ہے۔ اس وقت ، ہم عام طور پر مارکیٹ سے باہر رہتے ہیں جب تک کہ ٹکڑا ظاہر نہ ہو ، اور صرف واضح رجحان مارکیٹ میں حصہ لیتے ہیں۔
تمساح جتنا زیادہ سوتا ہے ، جتنا زیادہ بھوکا ہوگا جب وہ جاگتا ہے ، لہذا ایک بار جب وہ جاگتا ہے تو ، وہ اپنا منہ وسیع کھول دے گا۔ اگر اوپری ہونٹ دانتوں سے اوپر ہے اور دانت گال سے اوپر ہیں تو ، اس سے یہ ظاہر ہوتا ہے کہ مارکیٹ ایک بیل مارکیٹ میں داخل ہوگئی ہے اور تمساح گائے کا گوشت کھانے جارہے ہیں۔ اگر اوپری ہونٹ دانتوں سے نیچے ہے اور دانت گال سے نیچے ہیں تو ، اس سے یہ ظاہر ہوتا ہے کہ مارکیٹ ایک ریچھ مارکیٹ میں داخل ہوگئی ہے اور تمساح ریچھ کا گوشت کھانے جارہے ہیں۔ جب تک یہ بھرا ہوا نہیں ہوتا ، تب تک وہ پھر اپنا منہ بند کردے گا (رکھیں اور منافع کمائیں) ۔
اوپری ہونٹ = REF(SMA(VAR1,5,1),3) دانت = REF ((SMA ((VAR1,8,1),5) Chin = REF(SMA(VAR1,13,1)
تمساح کی حکمت عملی کی ساخت
# Strategy main function
def onTick():
pass
# Program entry
def main ():
while True: # Enter infinite loop mode
onTick() # execute strategy main function
Sleep(1000) # sleep for 1 second
ایف ایم زیڈ پولنگ موڈ کا استعمال کرتے ہوئے ، ایک آن ٹِک فنکشن ہے ، اور دوسرا مین فنکشن ہے ، جس میں آن ٹِک فنکشن کو مین فنکشن میں لامحدود لوپ میں انجام دیا جاتا ہے۔
import talib
import numpy as np
ایس ایم اے فنکشن ہماری حکمت عملی میں استعمال ہوتا ہے۔ ایس ایم اے ریاضیاتی اوسط ہے۔ طالب لائبریری میں پہلے سے تیار کردہ ایس ایم اے فنکشن موجود ہیں ، لہذا براہ راست طالب پائیتھون لائبریری کو درآمد کریں اور پھر اسے براہ راست کال کریں۔ کیونکہ اس فنکشن کو کال کرتے وقت ، آپ کو نمپی فارمیٹ پیرامیٹرز میں منتقل کرنے کی ضرورت ہوتی ہے ، لہذا ہمیں حکمت عملی کے آغاز میں ان دونوں پائیتھون لائبریریوں کو درآمد کرنے کے لئے درآمد کا استعمال کرنے کی ضرورت ہے۔
# Convert the K-line array into an array of highest price, lowest price, and closing price, for conversion to numpy.array
def get_data(bars):
arr = []
for i in bars:
arr.append(i['Close'])
return arr
یہاں ہم نے get_data فنکشن بنایا ہے ، اس فنکشن کا مقصد عام K لائن صف کو نمپی فارمیٹ ڈیٹا میں پروسیس کرنا ہے۔ ان پٹ پیرامیٹر ایک K لائن صف ہے ، اور آؤٹ پٹ نتیجہ نمپی فارمیٹ میں پروسیس شدہ ڈیٹا ہے۔
# Get the number of positions
def get_position ():
# Get position
position = 0 # The number of assigned positions is 0
position_arr = _C (exchange.GetPosition) # Get array of positions
if len (position_arr)> 0: # If the position array length is greater than 0
for i in position_arr:
if i ['ContractType'] == 'rb000': # If the position symbol is equal to the subscription symbol
if i ['Type']% 2 == 0: # If it is long position
position = i ['Amount'] # Assigning a positive number of positions
else:
position = -i ['Amount'] # Assigning a negative number of positions
return position
پوزیشن کی حیثیت میں حکمت عملی کی منطق شامل ہے۔ ہمارے پہلے دس اسباق میں ہمیشہ مجازی پوزیشنوں کا استعمال کیا گیا ہے ، لیکن حقیقی تجارتی ماحول میں حقیقی پوزیشن کی معلومات حاصل کرنے کے لئے گیٹ پوزیشن فنکشن کا استعمال کرنا بہتر ہے ، بشمول: پوزیشن کی سمت ، پوزیشن منافع اور نقصان ، پوزیشنوں کی تعداد وغیرہ۔
exchange.SetContractType('rb000') # Subscribe the futures varieties
bars_arr = exchange.GetRecords() # Get K line array
if len(bars_arr) < 22: # If the number of K lines is less than 22
return
ڈیٹا حاصل کرنے سے پہلے ، آپ کو پہلے متعلقہ فیوچر کی اقسام کو سبسکرائب کرنے کے لئے سیٹ کنٹریکٹ ٹائپ فنکشن کا استعمال کرنا ہوگا۔ ایف ایم زیڈ تمام چینی اجناس فیوچر کی اقسام کی حمایت کرتا ہے۔ فیوچر کی علامت کو سبسکرائب کرنے کے بعد ، آپ K لائن ڈیٹا حاصل کرنے کے لئے گیٹ ریکارڈز فنکشن کا استعمال کرسکتے ہیں ، جو ایک صف واپس کرتا ہے۔
np_arr = np.array (get_data (bars_arr)) # Convert closing price array
sma13 = talib.SMA (np_arr, 130) [-9] # chin
sma8 = talib.SMA (np_arr, 80) [-6] # teeth
sma5 = talib.SMA (np_arr, 50) [-4] # upper lip
current_price = bars_arr [-1] ['Close'] # latest price
ٹیلی لائبریری کا استعمال کرتے ہوئے ایس ایم اے کا حساب لگانے سے پہلے ، آپ کو عام K- لائن صف کو نمپی ڈیٹا میں پروسیس کرنے کے لئے نمپی لائبریری کا استعمال کرنے کی ضرورت ہے۔ پھر کروکڈائل لائن کا منہ ، دانت اور اوپری ہونٹ الگ الگ حاصل کریں۔ اس کے علاوہ ، آرڈر دیتے وقت قیمت کے پیرامیٹر کو منتقل کرنے کی ضرورت ہے ، لہذا ہم K- لائن صف میں اختتامی قیمت استعمال کرسکتے ہیں۔
position = get_position ()
if position == 0: # If there is no position
if current_price> sma5: # If the current price is greater than the upper lip
exchange.SetDirection ("buy") # Set the trading direction and type
exchange.Buy (current_price + 1, 1) # open long position order
if current_price <sma13: # If the current price is less than the chin
exchange.SetDirection ("sell") # Set the trading direction and type
exchange.Sell (current_price-1, 1) # open short position order
if position> 0: # If you have long positions
if current_price <sma8: # If the current price is less than teeth
exchange.SetDirection ("closebuy") # Set the trading direction and type
exchange.Sell (current_price-1, 1) # close long position
if position <0: # If you have short position
if current_price> sma8: # If the current price is greater than the tooth
exchange.SetDirection ("closesell") # Set the trading direction and type
exchange.Buy (current_price + 1, 1) # close short position
آرڈر دینے سے پہلے ، آپ کو اصل پوزیشن حاصل کرنے کی ضرورت ہے۔ ہم نے پہلے بیان کردہ get_position فنکشن پوزیشنوں کی اصل تعداد واپس کردے گا۔ اگر موجودہ پوزیشن لمبی ہے تو ، یہ ایک مثبت نمبر واپس کردے گی۔ اگر موجودہ پوزیشن مختصر ہے تو ، یہ منفی نمبر واپس کردے گی۔ اگر کوئی پوزیشن نہیں ہے تو ، 0 واپس کرے گا۔ آخر میں ، اوپر کی تجارتی منطق کے مطابق آرڈر دینے کے لئے خرید و فروخت کے افعال کا استعمال کیا جاتا ہے ، لیکن اس سے پہلے ، تجارتی سمت اور قسم کو بھی ترتیب دینے کی ضرورت ہے۔
'' 'backtest
start: 2019-01-01 00:00:00
end: 2020-01-01 00:00:00
period: 1h
exchanges: [{"eid": "Futures_CTP", "currency": "FUTURES"}]
'' '
import talib
import numpy as np
# Convert the K-line array into an array of highest price, lowest price, and closing price, used to convert to numpy.array type data
def get_data (bars):
arr = []
for i in bars:
arr.append (i ['Close'])
return arr
# Get the number of positions
def get_position ():
# Get position
position = 0 # The number of assigned positions is 0
position_arr = _C (exchange.GetPosition) # Get array of positions
if len (position_arr)> 0: # If the position array length is greater than 0
for i in position_arr:
if i ['ContractType'] == 'rb000': # If the position symbol is equal to the subscription symbol
if i ['Type']% 2 == 0: # If it is long
position = i ['Amount'] # Assign a positive number of positions
else:
position = -i ['Amount'] # Assign a negative number of positions
return position
# Strategy main function
def onTick ():
# retrieve data
exchange.SetContractType ('rb000') # Subscribe to futures varieties
bars_arr = exchange.GetRecords () # Get K line array
if len (bars_arr) <22: # If the number of K lines is less than 22
return
# Calculation
np_arr = np.array (get_data (bars_arr)) # Convert closing price array
sma13 = talib.SMA (np_arr, 130) [-9] # chin
sma8 = talib.SMA (np_arr, 80) [-6] # teeth
sma5 = talib.SMA (np_arr, 50) [-4] # upper lip
current_price = bars_arr [-1] ['Close'] # latest price
position = get_position ()
if position == 0: # If there is no position
if current_price> sma5: # If the current price is greater than the upper lip
exchange.SetDirection ("buy") # Set the trading direction and type
exchange.Buy (current_price + 1, 1) # open long position order
if current_price <sma13: # If the current price is less than the chin
exchange.SetDirection ("sell") # Set the trading direction and type
exchange.Sell (current_price-1, 1) # open short position order
if position> 0: # If you have long positions
if current_price <sma8: # If the current price is less than teeth
exchange.SetDirection ("closebuy") # Set the trading direction and type
exchange.Sell (current_price-1, 1) # close long position
if position <0: # If you have short positions
if current_price> sma8: # If the current price is greater than the tooth
exchange.SetDirection ("closesell") # Set the trading direction and type
exchange.Buy (current_price + 1, 1) # close short position
# Program main function
def main ():
while True: # loop
onTick () # execution strategy main function
Sleep (1000) # sleep for 1 second
براہ راست نیچے دیئے گئے لنک پر کلک کریں بغیر ترتیب کے مکمل حکمت عملی کی کاپی کرنے کے لئے:https://www.fmz.com/strategy/199025
اختتام
تمساح ٹریڈنگ کے اصول کا سب سے بڑا کردار یہ ہے کہ جب ہم تجارت کرتے ہیں تو مارکیٹ کی سمت برقرار رکھنے میں ہماری مدد کریں ، اس سے قطع نظر کہ موجودہ مارکیٹ کی قیمت میں کس طرح تبدیلی آتی ہے ، اور جب تک استحکام کی مارکیٹ ظاہر نہیں ہوتی تب تک منافع حاصل کرنا جاری رکھیں۔ تمساح لائن کو دوسرے ایم اے سی ڈی اور کے ڈی جے اشارے کے ساتھ اچھی طرح استعمال کیا جاسکتا ہے۔