সুপার ট্রেন্ড ভি.১ - সুপার ট্রেন্ড লাইন সিস্টেম

লেখক:উপদেশ, নির্মিতঃ 2020-04-20 22:10:36, আপডেটঃ 2023-10-08 19:57:57

img

১। গল্পের উৎস

আমার ভাল বন্ধু ভ্যাকো দীর্ঘদিন ধরে এই সূচকটি পর্যবেক্ষণ করে আসছেন এবং নতুন বছরের আগে এটি আমাকে সুপারিশ করেছেন যে এটি পরিমাণে রূপান্তরিত করা যায় কিনা তা নিয়ে আলোচনা করা হোক। যদিও এটি একটি দুর্ভাগ্যজনক ঘটনা যে বিলম্বিততা একটি অপরাধ, এবং এটি এখন পর্যন্ত বিলম্বিত হয়েছে, এটি একটি ইচ্ছা পূরণ করতে সাহায্য করার জন্য, যদিও সম্প্রতি অ্যালগরিদম সম্পর্কে জ্ঞান দ্রুত গতিতে বৃদ্ধি পেয়েছে। আশা করি একদিন আমি পাইন অনুবাদক লিখব। সবকিছু পাইথনে। এই উপন্যাসের সুপারট্রেন্ডিং লাইন সম্পর্কে আমরা কিছু কথা বলতে চাই।

২। সিস্টেমের ভূমিকা

সিএমসি মার্কেটস নতুন প্রজন্মের স্মার্ট ট্রেডিং সিস্টেমএখানে একটি নিবন্ধ রয়েছে যা এই সিস্টেম সম্পর্কে জানায়।img

সিএমসি মার্কেটসের নতুন প্রজন্মের স্মার্ট ট্রেডিং সিস্টেমে, প্রযুক্তিগত সূচকগুলির মধ্যে সুপার ট্রেন্ড লাইন টকিং ব্যবহার করা যেতে পারে। যেমন ছবিতে দেখানো হয়েছে, আপনি আপনার পছন্দের উপর ভিত্তি করে উপরের সিগন্যাল, নীচের সিগন্যালের রঙ এবং রুক্ষতা সামঞ্জস্য করতে পারেন। সুতরাং, একটি সুপারট্রেন্ডিং সূচক কি? সুপারট্রেন্ডিং সূচক সূত্রটি বোঝার আগে এটিআর বোঝা প্রয়োজন, কারণ সুপারট্রেন্ডিং সূচকটির মান গণনা করতে এটিআর মান ব্যবহার করে।

এখানে একটি গ্রাফিক রয়েছে যা এই প্রধান অ্যালগরিদমগুলিকে দেখায়।img

মূলত এটি HL2 ((k লাইন গড় মূল্য) দ্বারা n গুণ ATR এর চ্যানেলের বর্ণনা দেয়। তবে নিবন্ধটি তুলনামূলকভাবে সংক্ষিপ্ত ছিল; কোন বিস্তারিত অ্যালগরিদম ছিল না; তারপর আমি সবচেয়ে ভাল সম্প্রদায় ট্রেডিংভিউ নিয়ে ভাবলাম। আমি মনে করি, এটি একটি দুর্দান্ত উদাহরণ।img

এই ছবি থেকে দেখা যাচ্ছে যে, এটি প্রবণতার সাথে সামঞ্জস্যপূর্ণ। কিন্তু দুর্ভাগ্যবশত, এটি কেবল একটি সতর্কতা।

৩। সোর্স কোড শিখুন

আমি মনে করি কোডটি খুব বেশি দীর্ঘ নয়, তাই আসুন আমরা অনুবাদ করি এবং চেষ্টা করি।imgসম্পূর্ণ পাইন কোডটি নিচে দেওয়া হল।

চার, কোড রূপান্তর

এখানে আমরা FMZ এ একটি নতুন কৌশল তৈরি করেছি, যাকে আমরা সুপারট্রেড বলি।img

এবং তারপর আমরা দুইটি প্যারামিটার সেট করব, ফ্যাক্টর, পিডি।img

কোডটি আরও সহজভাবে পরিচালনা করার জন্য, এটি বুঝতে সহজ, তাই পাইথনের উচ্চতর ডেটা এক্সটেনশন প্যাকেজ ব্যবহার করুনপাণ্ডা

দুপুরের খাবারের সময় আমি আমার শিক্ষককে জিজ্ঞাসা করলাম, এফএমজেড এই বইটি সমর্থন করে কিনা। ড্রিম ড্রিম টিচার সত্যিই দারুণ।

1.我们要导入pandas库time库 2.在main函数当中设置使用季度合约(主要跑okex) ৩. একটি চক্র doTicker সেট করুন এবং 15 মিনিটের জন্য 1 বার পরীক্ষা করুন।কোডটি ১৫ মিনিটের চক্রের মধ্যে চালানো। তারপর আমরা doTicker-এ প্রধান কৌশল লিখব।

import pandas as pd
import time

def main():
    exchange.SetContractType("quarter")
    preTime = 0
    Log(exchange.GetAccount())
    while True:
        records = exchange.GetRecords(PERIOD_M15)
        if records and records[-2].Time > preTime:
            preTime = records[-2].Time
            doTicker(records[:-1])
        Sleep(1000 *60)
        

4. আমরা k-রেখার OHCLV নিতে চাই। তাই আমরা GetRecords ব্যবহার করি। ৫. আমরা উদ্ধার করা ডেটাকে panda M15 = pd.DataFrame ((records) এ আমদানি করব। 6. আমরা টেবিলের শিরোনাম ট্যাগ পরিবর্তন করতে চাই. M15.columns = [time ট্যাব,open ট্যাব,high ট্যাব,low ট্যাব,close ট্যাব,volume ট্যাব,OpenInterest ট্যাব]এটি হ'ল "open", "high", "low", "close", "close" এর প্রথম অক্ষরগুলিকে ছোট আকারে পরিবর্তন করা, যাতে পরবর্তী সময়ে কোড লিখতে না হয়।

def doTicker(records):
    M15 = pd.DataFrame(records)
    M15.columns = ['time','open','high','low','close','volume','OpenInterest']  

৭. একটি ডাটা সেট যোগ করা হচ্ছে, যেখানে একটি কলাম hL2= ((high+low) /2)

#HL2
M15['hl2']=(M15['high']+M15['low'])/2

8.接着我们来计算ATRকারণ ATR একটি ভেরিয়েবলের দৈর্ঘ্য ইনপুট করার জন্য গণনা করে, এটি Pd এর মান গ্রহণ করে

আমরা এখন ম্যাক ভাষার ম্যানুয়ালটি পরীক্ষা করে দেখতে পারি যে এটিআর এর প্রকৃত ওভাল্টেজ মানের জন্য অ্যালগরিদমের ধাপগুলি নিম্নরূপঃ TR: MAX ((MAX (((HIGH-LOW), ABS ((REF ((CLOSE, 1) -HIGH)), ABS ((REF ((CLOSE, 1) -LOW)); ATR: RMA ((TR,N)

এখানে TR এর মান নিচের ৩টি মানের মধ্যে সবচেয়ে বড় মানের বিপরীত। ১, বর্তমান ট্রেডিং দিনের সর্বোচ্চ এবং সর্বনিম্ন মূল্যের মধ্যে উচ্চ-নিম্ন প্রান্তিককরণ 2, আগের দিনের বন্ধের দাম এবং সেই দিনের সর্বোচ্চ দামের মধ্যে প্রসারিত রেফ ((CLOSE, 1) -HIGH) ৩, আগের দিনের বন্ধের দাম এবং সেই দিনের সর্বনিম্ন মূল্যের মধ্যে প্রসারিত রেফ (REF ((CLOSE, 1) - LOW) সুতরাং TR: MAX (MAX (HIGH-LOW), ABS (REF (CLOSE, 1) -HIGH)), ABS (REF (CLOSE, 1) -LOW));

পাইথন কম্পিউটারে

M15['prev_close']=M15['close'].shift(1)

পূর্ববর্তী সারি থেকে close এর ডেটা নিতে একটি prev_close সেট করতে হবে, অর্থাৎ close কে ডানদিকে সরিয়ে 1 গ্রিড দিয়ে একটি নতুন প্যারামিটার তৈরি করতে হবে।

ranges= [M15['high'] - M15['low'],M15['high']-M15['prev_close'],M15['low']-M15['prev_close']]

তারপর একটি মধ্যবর্তী ভেরিয়েবল সংজ্ঞায়িত করুন যা TR এর 3 টি তুলনামূলক মানের একটি অ্যারে রেকর্ড করে।

M15['tr'] = pd.DataFrame(ranges).T.abs().max(axis=1)

আমরা ডাটা সেটে একটি নতুন কলামের নাম TR দিয়েছি, যার TR এর মান হল মধ্যবর্তী ভেরিয়েবলের পূর্ণসংখ্যার সর্বোচ্চটি, যার জন্য abs (() এবং max (() ফাংশন ব্যবহার করা হয়।

    alpha = (1.0 / length) if length > 0 else 0.5
    M15['atr']=M15['tr'].ewm(alpha=alpha, min_periods=length).mean()

অবশেষে আমরা এটিআর এর মান গণনা করতে চাই, এটিআরঃ আরএমএ ((TR,N), যা দেখায় যে আরএমএ এর অ্যালগরিদম আসলে একটি স্থির মানের বৈচিত্র্যের ইএমএ অ্যালগরিদম। N হল আমাদের আমদানি করা ভেরিয়েবল, যেখানে ATR এর ডিফল্ট প্যারামিটার হল 14। এখানে আমরা আলফা = length এর বিয়োগ আমদানি করি।

===

তারপর ইভিএম অ্যালগরিদম ব্যবহার করে ইমা গণনা করুন।সম্পূর্ণ ATR গণনা প্রক্রিয়া নিচে দেওয়া হল।

    #ATR(PD)
    length=Pd
    M15['prev_close']=M15['close'].shift(1)
    ranges= [M15['high'] - M15['low'],M15['high']-M15['prev_close'],M15['low']-M15['prev_close']]
    M15['tr'] = pd.DataFrame(ranges).T.abs().max(axis=1)
    alpha = (1.0 / length) if length > 0 else 0.5
    M15['atr']=M15['tr'].ewm(alpha=alpha, min_periods=length).mean()

9 শুরু Up এবং Dn

    M15['Up']=M15['hl2']-(Factor*M15['atr'])
    M15['Dn']=M15['hl2']+(Factor*M15['atr'])

Up=hl2 - ((ফ্যাক্টর * atr) Dn=hl2 + ((ফ্যাক্টর * atr) এটা কি খুব সহজ?

নীচে টিভির ১৫-২১ লাইন থেকে কোডের মূল অংশ রয়েছে।

TrendUp=close[1]>TrendUp[1]? max(Up,TrendUp[1]) : Up
TrendDown=close[1]<TrendDown[1]? min(Dn,TrendDown[1]) : Dn

Trend = close > TrendDown[1] ? 1: close< TrendUp[1]? -1: nz(Trend[1],1)
Tsl = Trend==1? TrendUp: TrendDown

linecolor = Trend == 1 ? green : red

এই প্রবন্ধের মূল উদ্দেশ্য হচ্ছে, এটা প্রকাশ করা, যদি প্যাভিলিয়ামে থাকে, তবে (নীচের লাইন) ট্রেন্ডআপ = max (উপরে, ট্রেন্ডআপ[1]) যদি এটি হ্রাসের পর্যায়ে থাকে, তবে (উপরের লাইন) ট্রেন্ডডাউন=মিনিট (Dn, ট্রেন্ডডাউন[1])অর্থাৎ, একটি প্রবণতার মধ্যে, এটিআর মানগুলি একটি কৌশল ব্যবহার করে যা ব্রিনের মতো একটি কৌশল ব্যবহার করে। চ্যানেলের অন্য দিকে ক্রমাগত সঙ্কুচিত হচ্ছে

এখানে ট্রেন্ডআপ এবং ট্রেন্ডডাউন প্রতিটি গণনার জন্য স্ব-ইনপুট প্রয়োজন। আমি মনে করি, প্রতিটি পদক্ষেপের জন্য পূর্ববর্তী পদক্ষেপের হিসাব নিতে হবে। তাই ডেটা সেটকে লুপে পরিভ্রমণ করতে হবে।

এখানে আপনি নতুন ক্ষেত্র TrendUp, TrendDown, Trend, linecolor তৈরি করবেন এবং তাদের একটি প্রাথমিক মান দেবেন। তারপর fillna ((0) সিনট্যাক্স ব্যবহার করে পূর্বে গণনা করা ফলাফলের মধ্যে ফাঁকা মান সহ ডেটা 0 পূরণ করে।

    M15['TrendUp']=0.0
    M15['TrendDown']=0.0
    M15['Trend']=1
    M15['Tsl']=0.0
    M15['linecolor']='Homily'
    M15 = M15.fillna(0)

একটি ফর লুপ চালু করুন লুপে পাইথন তৃতীয় অপারেশন ব্যবহার করুন

    for x in range(len(M15)):

ট্রেন্ডআপ গণনাTrendUp = MAX ((Up,TrendUp[-1]) if close [-1]>TrendUp[-1] else Up এর অর্থ হল যে যদি শেষ close> শেষ TrendUp, সেট আপ এবং শেষ TrendUp এর মধ্যে বৃহত্তম মানটি সেট আপ না হয় এবং বর্তমান TrendUp এ পাস করা হয়

        M15['TrendUp'].values[x] = max(M15['Up'].values[x],M15['TrendUp'].values[x-1]) if (M15['close'].values[x-1]>M15['TrendUp'].values[x-1]) else M15['Up'].values[x]

একইভাবে, ট্রেন্ডডাউন গণনা করুন।TrendDown=min ((Dn,TrendDown[-1]) if close[-1]

        M15['TrendDown'].values[x] = min(M15['Dn'].values[x],M15['TrendDown'].values[x-1]) if (M15['close'].values[x-1]<M15['TrendDown'].values[x-1]) else M15['Dn'].values[x]

নীচে একটি পতাকা আছে যা নিয়ন্ত্রণের দিকনির্দেশনা গণনা করে। আমি একটি সহজ বান্ডিল তৈরি করেছি।ট্রেন্ড= 1 যদি (বন্ধ > ট্রেন্ডডাউন[-1]) অন্যথায় (x) x = -1 যদি (close

এর মানে হল যে যদি বন্ধের দাম > শেষ ট্রেন্ডডাউন হয় তবে 1 ((আরও পড়ুন) x গ্রহণ করা হবে না। যদি বন্ধের দাম < একটি পূর্ববর্তী ট্রেন্ডআপ হয় তাহলে -১ (খালি) গ্রহণ করা হবে না একটি ট্রেন্ড গ্রহণ করা হবে (অর্থাত্ পরিবর্তন হবে না) ছবির ভাষায় অনুবাদ করার অর্থ হল ট্রেনের উপরে ট্রেনের ট্রানভিশন ফ্ল্যাগটি ভেঙে ফেলা, ট্রেনের নীচে ট্রানভিশন ফ্ল্যাগটি ভেঙে ফেলা, অন্য সময়টি পরিবর্তন হয় না।

        M15['Tsl'].values[x] = M15['TrendUp'].values[x] if  (M15['Trend'].values[x]==1) else M15['TrendDown'].values[x]

Tsl এবং Linecolor গণনা করুনTsl= rendUp if (Trend==1) else ট্রেন্ডডাউন Tsl হল ছবিতে সুপার ট্রেন্ডের মান প্রদর্শনের জন্য ব্যবহৃত হয়। এর অর্থ হল, বেশি দেখার সময় চার্টটিতে ট্রেন চিহ্নিত করা হয় এবং খালি দেখার সময় চার্টটিতে ট্রেন চিহ্নিত করা হয়। linecolor= green if (Trend==1) else red linecolor এর অর্থ হল যদি বেশি দেখা হয় তবে সবুজ রেখা চিহ্নিত করা হয়, যদি ফাঁকা দেখা হয় তবে ফাঁকা রঙ চিহ্নিত করা হয় ((প্রধানত ব্যবহৃত হয় ট্রেডিংভিউ প্রদর্শন)

        M15['Tsl'].values[x] = M15['TrendUp'].values[x] if  (M15['Trend'].values[x]==1) else M15['TrendDown'].values[x]
        M15['linecolor'].values[x]= 'green' if ( M15['Trend'].values[x]==1) else  'red'

এরপর ২৩-৩০ লাইন কোড মূলত প্লট ম্যাপিং।

এবং অবশেষে, দুই লাইন কোড আছে, যা সিগন্যাল কন্ট্রোলের জন্য ব্যবহৃত হয়।ট্রেডিংভিউতে, তার অর্থ হল পতাকাটি বিপরীত করার পরে একটি সংকেত দেওয়া। একটি শর্তাদি স্টেটমেন্টকে পাইথনে রূপান্তর করুন। যদি পূর্ববর্তী ট্রেন্ড ফ্ল্যাগ -1 থেকে 1 হয়, তাহলে এটি উপরের প্রতিরোধকে অতিক্রম করে। যদি পূর্ববর্তী ট্রেন্ড ফ্ল্যাগ ১ থেকে ১-এ চলে যায়, তাহলে এটি একটি ভাঙ্গনকে নির্দেশ করে।

    if(M15['Trend'].values[-1] == 1 and M15['Trend'].values[-2] == -1):
        Log('SuperTrend V.1 Alert Long',"Create Order Buy)
    if(M15['Trend'].values[-1] == -1 and M15['Trend'].values[-2] == 1):
        Log('SuperTrend V.1 Alert Long',"Create Order Sell)

এই পর্বের সম্পূর্ণ কোড নিচে দেওয়া হলঃ

    M15['TrendUp']=0.0
    M15['TrendDown']=0.0
    M15['Trend']=1
    M15['Tsl']=0.0
    M15['linecolor']='Homily'
    M15 = M15.fillna(0)
    
    for x in range(len(M15)):
        M15['TrendUp'].values[x] = max(M15['Up'].values[x],M15['TrendUp'].values[x-1]) if (M15['close'].values[x-1]>M15['TrendUp'].values[x-1]) else M15['Up'].values[x]
        M15['TrendDown'].values[x] = min(M15['Dn'].values[x],M15['TrendDown'].values[x-1]) if (M15['close'].values[x-1]<M15['TrendDown'].values[x-1]) else M15['Dn'].values[x]
        M15['Trend'].values[x] = 1 if (M15['close'].values[x] > M15['TrendDown'].values[x-1]) else ( -1 if (M15['close'].values[x]< M15['TrendUp'].values[x-1])else M15['Trend'].values[x-1] )
        M15['Tsl'].values[x] = M15['TrendUp'].values[x] if  (M15['Trend'].values[x]==1) else M15['TrendDown'].values[x]
        M15['linecolor'].values[x]= 'green' if ( M15['Trend'].values[x]==1) else  'red'
        
    if(M15['Trend'].values[-1] == 1 and M15['Trend'].values[-2] == -1):
        Log('SuperTrend V.1 Alert Long',"Create Order Buy)
        Log('Tsl=',Tsl)
    if(M15['Trend'].values[-1] == -1 and M15['Trend'].values[-2] == 1):
        Log('SuperTrend V.1 Alert Long',"Create Order Sell)
        Log('Tsl=',Tsl)

img img

৫. সমস্ত কোড

আমি পুরো কোড কাঠামোটি সংশোধন করেছি। তবে, আমি মনে করি যে, আমরা আমাদের কর্মক্ষেত্রকে আরও উন্নত করতে চাই এবং আরও বেশি কাজ করার নির্দেশাবলীকে কৌশলগতভাবে অন্তর্ভুক্ত করতে চাই। নিচে সম্পূর্ণ কোড দেওয়া আছে।

'''backtest
start: 2019-05-01 00:00:00
end: 2020-04-21 00:00:00
period: 15m
exchanges: [{"eid":"Futures_OKCoin","currency":"BTC_USD"}]
'''

import pandas as pd
import time

def main():
    exchange.SetContractType("quarter")
    preTime = 0
    Log(exchange.GetAccount())
    while True:
        records = exchange.GetRecords(PERIOD_M15)
        if records and records[-2].Time > preTime:
            preTime = records[-2].Time
            doTicker(records[:-1])
        Sleep(1000 *60)

       
def doTicker(records):
    #Log('onTick',exchange.GetTicker())
    M15 = pd.DataFrame(records)

    #Factor=3
    #Pd=7
    
    M15.columns = ['time','open','high','low','close','volume','OpenInterest']  
    
    #HL2
    M15['hl2']=(M15['high']+M15['low'])/2

    #ATR(PD)
    length=Pd
    M15['prev_close']=M15['close'].shift(1)
    ranges= [M15['high'] - M15['low'],M15['high']-M15['prev_close'],M15['low']-M15['prev_close']]
    M15['tr'] = pd.DataFrame(ranges).T.abs().max(axis=1)
    alpha = (1.0 / length) if length > 0 else 0.5
    M15['atr']=M15['tr'].ewm(alpha=alpha, min_periods=length).mean()


    M15['Up']=M15['hl2']-(Factor*M15['atr'])
    M15['Dn']=M15['hl2']+(Factor*M15['atr'])
    
    M15['TrendUp']=0.0
    M15['TrendDown']=0.0
    M15['Trend']=1
    M15['Tsl']=0.0
    M15['linecolor']='Homily'
    M15 = M15.fillna(0)

    for x in range(len(M15)):
        M15['TrendUp'].values[x] = max(M15['Up'].values[x],M15['TrendUp'].values[x-1]) if (M15['close'].values[x-1]>M15['TrendUp'].values[x-1]) else M15['Up'].values[x]
        M15['TrendDown'].values[x] = min(M15['Dn'].values[x],M15['TrendDown'].values[x-1]) if (M15['close'].values[x-1]<M15['TrendDown'].values[x-1]) else M15['Dn'].values[x]
        M15['Trend'].values[x] = 1 if (M15['close'].values[x] > M15['TrendDown'].values[x-1]) else ( -1 if (M15['close'].values[x]< M15['TrendUp'].values[x-1])else M15['Trend'].values[x-1] )
        M15['Tsl'].values[x] = M15['TrendUp'].values[x] if  (M15['Trend'].values[x]==1) else M15['TrendDown'].values[x]
        M15['linecolor'].values[x]= 'Long' if ( M15['Trend'].values[x]==1) else  'Short'
 

    linecolor=M15['linecolor'].values[-2]
    close=M15['close'].values[-2]
    Tsl=M15['Tsl'].values[-2] 


    if(M15['Trend'].values[-1] == 1 and M15['Trend'].values[-2] == -1):

        Log('SuperTrend V.1 Alert Long','Create Order Buy')
        Log('Tsl=',Tsl)
        position = exchange.GetPosition()
        if len(position) > 0:
            Amount=position[0]["Amount"]
            exchange.SetDirection("closesell")
            exchange.Buy(_C(exchange.GetTicker).Sell*1.01, Amount);
        
        exchange.SetDirection("buy")
        exchange.Buy(_C(exchange.GetTicker).Sell*1.01, vol);

    if(M15['Trend'].values[-1] == -1 and M15['Trend'].values[-2] == 1):
        Log('SuperTrend V.1 Alert Long','Create Order Sell')
        Log('Tsl=',Tsl)
        position = exchange.GetPosition()
        if len(position) > 0:
            Amount=position[0]["Amount"]
            exchange.SetDirection("closebuy")
            exchange.Sell(_C(exchange.GetTicker).Buy*0.99,Amount);
        exchange.SetDirection("sell")
        exchange.Sell(_C(exchange.GetTicker).Buy*0.99, vol*2);

উন্মুক্ত কৌশল সংযোগ http://www.fmz.com/strategy/200625

ষষ্ঠ, পুনর্বিবেচনা এবং সংক্ষিপ্তসার

আমরা প্রায় এক বছরের ডেটা বেছে নিয়েছি। 15 মিনিটের চক্র ব্যবহার করে OKEX কোয়ার্টারাল চুক্তি। এই প্যারামিটারটি হল, ফ্যাক্টর = ৩ Pd = ৪৫ vol=100 ((প্রতিবার 100 টি অর্ডার করুন) এদিকে, বাংলাদেশিদের জন্য, এটি একটি দুর্দান্ত সুযোগ। তবে, এই সময়টাতে, আমরা আমাদের দেশ থেকে বেরিয়ে আসতে পারবো না। তবে, এর মধ্যে ৩১২-এর বড় পতন সিস্টেমের জন্য একটি বড় ধাক্কা। যদি ৩১২ না থাকে তবে আয় আরও ভাল হওয়া উচিত।

img

ছয়, শেষে লেখা।

সুপারট্রেন্ড একটি খুব ভাল ট্রেডিং সিস্টেম।

সুপারট্রেন্ড সিস্টেমের মূল নীতি হল এটিআর চ্যানেলের বিচ্ছিন্নতা কৌশল (কেন্ট চ্যানেলের অনুরূপ) । তবে এর পরিবর্তনের মূল কারণ হল, ডুবুরি ব্রিনের সংকীর্ণকরণ কৌশল বা বিপরীত ডনচিয়ান নীতি ব্যবহার করা। তবে, এই ব্যবসায়িক প্রতিষ্ঠানগুলোকে তাদের নিজস্ব ব্যবসায়িক প্রতিষ্ঠান হিসেবে স্বীকৃতি দেওয়া হয়েছে। একটি চ্যানেল ব্রেকিং টার্ন অপারেশন অর্জনের জন্য।

আমি ট্রেডিং ভিউতে up dn TrendUp TrendDn এর একটি পৃথক প্লট করেছি। এই কৌশলটি আরও ভালভাবে বোঝার জন্য।এক নজরেimg

এছাড়াও গিটহাবের একটি জেএস সংস্করণ আছে । ঠিকানাঃhttps://github.com/Dodo33/gekko-supertrend-strategy/blob/master/Supertrend.js

শেষ পর্যন্ত আমি মূল সংস্করণটি খুঁজে বের করলাম। এটি ২৯ মে, ২০১৩ তারিখে প্রকাশিত হয়েছে। লেখকঃ রাজন্দ্রান আর এমটি৪ ফোরামে প্রকাশিত C++ কোডhttps://www.mql5.com/en/code/viewcode/10851/128437/Non_Repainting_SuperTrend.mq4আমি C++ এর অর্থ বুঝতে পেরেছি, এবং আমি আবারও একটি লেখার সুযোগ পেয়েছি।

আমি আশা করি আপনারা সবাই এর থেকে কিছু শিখতে পারবেন। এটা খুব কঠিন কাজ।


সম্পর্কিত

আরো

zdg4484YYDS!

আইগ্লাইডজ২০১০আপনি যদি এই কৌশলটি সরাসরি ব্যবহার করেন তাহলে OK এক্সচেঞ্জ ট্রেডিং কিভাবে এক্সচেঞ্জের সাথে সংযোগ স্থাপন করতে হবে, একটি ছোট সাদা এক পাইথন হবে না, দেখতে অদ্ভুত

বামম্যানএখানে যদি ৩১২-এর তরঙ্গটি না খায় তবে পরামিতিগুলিকে অনেক বেশি সামঞ্জস্যের সুযোগ দেওয়া উচিত, কারণ সুপারট্রেন্ড মূলত ট্রেন্ড লিস্টটি ধরার জন্য। ৩১২-কে মিস করা উচিত নয়। এছাড়াও lz এর পাইন অনুবাদক শীঘ্রই আসবে বলে আশা করা হচ্ছে।

চ্যাং অনিয়মতবে, আপনি কি জানেন যে, যদি আপনি একটি নির্দিষ্ট সময়সীমার মধ্যে একটি নির্দিষ্ট পরিমাণে পুনরায় পরীক্ষা করেন, তাহলে আপনি কি জানেন যে, এই সময়সীমার মধ্যে আপনি কি করতে পারেন?

ও বড়ঠিক আছে, ঠিক আছে, ধন্যবাদ আপনার অবদানের জন্য

ও বড়যদি এটি ব্যবহার করা না যায়, তাহলে এটি দেখায়ঃTraceback (most recent call last): File "", line 1473, in Run File "", line 8, in ImportError: No module named pandas

চুংফেন ৯১পাইনের অনুবাদক, অপেক্ষায়

টেমুরআমি মনে করি, আমাদের সংস্কৃতিতে শুধু একটা কথা বলা যায়, 'নিষ্ঠুরতা'।

ফ্রাঙ্ক131419আমি ভাবছি একদিন আমি পাইনের একটি অনুবাদক লিখব। সবকিছু পাইথনে।

গড়আমি পুনরাবৃত্তি বাস্তবায়ন করতে চাই এবং তারপর SVM ব্যবহার করে সেরা প্যারামিটার খুঁজে বের করতে চাই।

ডসাইডাসিএই সিস্টেমটি মনে হয় একসময় শীর্ষ দশটি মুনাফার জন্য একটি ফিউচার কৌশল ছিল। দীর্ঘমেয়াদী ধারাবাহিকতা অর্থ উপার্জন করে।

হালকা মেঘহ্যালো, প্লিজ, PD হল ATR এর দৈর্ঘ্য মান, তাই না?

ছোট্ট স্বপ্নপ্রশংসা

ওভালআশা করি আশা করি, পাইন সত্যিই খুব কমই বুঝতে পারে এবং খুব কমই পাঠ্যক্রম রয়েছে।

উপদেশএর মানে হল প্যান্ডাস প্যাকেজ অনুপস্থিত আপনার সিস্টেমটি সম্ভবত পিপ ইনস্টল প্যান্ডাস প্রয়োজন

Ant_Skyদয়া করে বলুন কিভাবে এটি পরিচালনা করা হয়?

উপদেশহা হা হা, ধন্যবাদ বস।

ছোট্ট স্বপ্নএকটি মুহূর্ত, প্রকাশ্যে।

লোনলিম্যানJS সংস্করণ চাই!

উপদেশএনার্জি...

হালকা মেঘভাল, ধন্যবাদ! এবং mq4 কেও সরিয়ে ফেলা হয়েছে, ধন্যবাদ।

উপদেশহ্যাঁ, এটা ঠিক।

উপদেশমহিমান্বিত!

ছোট্ট স্বপ্নআমি একটি JS সংস্করণও লিখেছি।

উপদেশধন্যবাদ ড্রিম ড্রিম শিক্ষক।