उच्च आवृत्ति व्यापार एक चुनौतीपूर्ण और प्रतिस्पर्धी क्षेत्र है जो तेजी से व्यापार निष्पादन और बाजार के सूक्ष्म संरचना में संवेदनशील अंतर्दृष्टि पर निर्भर करता है। एक उल्लेखनीय रणनीति पेनी जंप है, जो छोटे लेकिन लगातार लाभ प्राप्त करने के लिए बाजार में
शेयर बाजार में,
उदाहरण के लिए, मान लीजिये शेयर बाजार की मूल गहराई इस प्रकार थी: 200 ∙ $1.01 x $1.03 ∙ 200. फिर एक हाथी अंदर आता है और 3000 शेयरों के लिए $1.01 प्रति शेयर पर खरीद ऑर्डर देता है. इस बिंदु पर, बाजार की गहराई 3,200 ∙ $1.01 x $1.03 ∙ 200 में बदल जाएगी. यह क्रिया एक हाथी को पेश करने जैसा है, जो बाजार में अन्य प्रतिभागियों का ध्यान केंद्रित हो जाता है.
प्रतिस्पर्धी बाजार उच्च आवृत्ति वाले व्यापारियों के लिए, उनके लाभ मुख्य रूप से अन्य व्यापारियों के इरादों पर अनुमान लगाने के लिए बाजार के सूक्ष्म संरचना के विश्लेषण से आते हैं। एक बार एक बड़ा खिलाड़ी दिखाई देने के बाद, उच्च आवृत्ति वाले व्यापारी मामूली मूल्य उतार-चढ़ाव को पकड़ने के लिए जल्दी से स्थिति स्थापित करेंगे। उनका लक्ष्य कम समय में अक्सर व्यापार करना और छोटे लेकिन संचयी लाभ जमा करना है।
हाथी की दुविधा हालांकि हाथी बाजार में बड़े पैमाने पर काम करना चाहते हैं, लेकिन उनके कार्यों से उनके व्यापारिक इरादे भी सामने आते हैं, जिससे वे उच्च आवृत्ति वाले व्यापारियों के लिए लक्ष्य बन जाते हैं। उच्च आवृत्ति वाले व्यापारी समय से पहले पद स्थापित करने का प्रयास करते हैं और फिर मूल्य उतार-चढ़ाव से लाभान्वित होते हैं। बाजार में हाथियों की उपस्थिति प्रतिस्पर्धी बाजारों में प्रतिक्रियाओं को ट्रिगर कर सकती है, जिससे उनकी व्यापारिक रणनीतियों पर प्रभाव पड़ता है।
बाज़ार में धोखा वास्तविकता में, बड़े संस्थागत निवेशक आमतौर पर बाजार में बड़ी संख्या में खरीद या बिक्री के आदेश नहीं देते हैं, क्योंकि इस तरह के व्यवहार से बाजार के अन्य प्रतिभागियों को प्रतिरोध उपाय करने या बाजार में हेरफेर करने का कारण बन सकता है। इसलिए, वे भ्रम पैदा करने, क्षेत्र में उच्च आवृत्ति वाले व्यापारियों को आकर्षित करने और फिर कीमत में उतार-चढ़ाव से लाभ कमाने के लिए जल्दी से बेचने या खरीदने की रणनीति अपना सकते हैं।
पेनी जंप रणनीति का मूल विचार यह है कि एक बार जब एक
इतना ही नहीं, उच्च आवृत्ति वाले व्यापारी खरीद के बाद लाभ भी कमा सकते हैं, भले ही कीमत में वृद्धि न हो, क्योंकि वे जानते हैं कि बड़े खिलाड़ी ने आधार मूल्य का समर्थन किया है; इसलिए वे इस बड़े खिलाड़ी को अपने शेयरों को जल्दी से बेच सकते हैं और मामूली मध्यस्थता लाभ प्राप्त कर सकते हैं।
रणनीति स्रोत कोडःhttps://www.fmz.com/strategy/358
ऊपर दिया गया रणनीति कोड एक उदाहरण है, जिसका उपयोग पेनी जंप रणनीति को लागू करने के लिए किया जाता है। नीचे कोड की विस्तृत व्याख्या है, जिससे शुरुआती समझ सकते हैं कि यह कैसे काम करता हैः
var Counter = {
i: 0,
w: 0,
f: 0
};
// Variables
var InitAccount = null;
function CancelAll() {
while (true) {
var orders = _C(exchange.GetOrders);
if (orders.length == 0) {
break;
}
for (var i = 0; i < orders.length; i++) {
exchange.CancelOrder(orders[i].Id);
}
Sleep(Interval);
}
}
function updateStatus(msg) {
LogStatus("Number of debugging sessions:", Counter.i, "succeeded:", Counter.w, "failed:", Counter.f, "\n"+msg+"#0000ff\n"+new Date());
}
function main() {
if (DisableLog) {
EnableLog(false);
}
CancelAll();
InitAccount = _C(exchange.GetAccount);
Log(InitAccount);
var i = 0;
var locks = 0;
while (true) {
Sleep(Interval);
var depth = _C(exchange.GetDepth);
if (depth.Asks.length === 0 || depth.Bids.length === 0) {
continue;
}
updateStatus("Searching within the elephant... Buy one: " + depth.Bids[0].Price + ", Sell one:" + depth.Asks[0].Price + ", Lock times: " + locks);
var askPrice = 0;
for (i = 0; i < depth.Asks.length; i++) {
if (depth.Asks[i].Amount >= Lot) {
askPrice = depth.Asks[i].Price;
break;
}
}
if (askPrice === 0) {
continue;
}
var elephant = null;
// skip Bids[0]
for (i = 1; i < depth.Bids.length; i++) {
if ((askPrice - depth.Bids[i].Price) > ElephantSpace) {
break;
}
if (depth.Bids[i].Amount >= ElephantAmount) {
elephant = depth.Bids[i];
break;
}
}
if (!elephant) {
locks = 0;
continue;
}
locks++;
if (locks < LockCount) {
continue;
}
locks = 0;
updateStatus("Debug the elephant... The elephant is in gear " + i + ", " + JSON.stringify(elephant));
exchange.Buy(elephant.Price + PennyTick, Lot, "Bids[" + i + "]", elephant);
var ts = new Date().getTime();
while (true) {
Sleep(CheckInterval);
var orders = _C(exchange.GetOrders);
if (orders.length == 0) {
break;
}
if ((new Date().getTime() - ts) > WaitInterval) {
for (var i = 0; i < orders.length; i++) {
exchange.CancelOrder(orders[i].Id);
}
}
}
var account = _C(exchange.GetAccount);
var opAmount = _N(account.Stocks - InitAccount.Stocks);
if (opAmount < 0.001) {
Counter.f++;
Counter.i++;
continue;
}
updateStatus("Successful payment: " + opAmount +", Start taking action...");
exchange.Sell(elephant.Price + (PennyTick * ProfitTick), opAmount);
var success = true;
while (true) {
var depth = _C(exchange.GetDepth);
if (depth.Bids.length > 0 && depth.Bids[0].Price <= (elephant.Price-(STTick*PennyTick))) {
success = false;
updateStatus("Didn't get it, start to stop loss, currently buying one: " + depth.Bids[0].Price);
CancelAll();
account = _C(exchange.GetAccount);
var opAmount = _N(account.Stocks - InitAccount.Stocks);
if (opAmount < 0.001) {
break;
}
exchange.Sell(depth.Bids[0].Price, opAmount);
}
var orders = _C(exchange.GetOrders);
if (orders.length === 0) {
break;
}
Sleep(CheckInterval);
}
if (success) {
Counter.w++;
} else {
Counter.f++;
}
Counter.i++;
var account = _C(exchange.GetAccount);
LogProfit(account.Balance - InitAccount.Balance, account);
}
}
मैं आपके द्वारा प्रदान की गई रणनीति कोड लाइन द्वारा लाइन को पार्स करूंगा ताकि आप इसके संचालन को विस्तार से समझ सकें।
var Counter = {
i: 0,
w: 0,
f: 0
};
यह कोड काउंटर नामक एक ऑब्जेक्ट को आरंभ करता है, जिसका उपयोग किसी रणनीति की ट्रेडिंग सांख्यिकीय जानकारी को ट्रैक करने के लिए किया जाता है। विशेष रूप से इसमें तीन विशेषताएं शामिल हैंः
इन गुणों को रणनीति निष्पादन प्रक्रिया के दौरान दर्ज और अद्यतन किया जाएगा।
var InitAccount = null;
कोड की यह पंक्ति InitAccount नामक एक चर को आरंभ करती है, जो रणनीति निष्पादित होने पर खाता जानकारी संग्रहीत करेगी।
function CancelAll() {
while (true) {
var orders = _C(exchange.GetOrders);
if (orders.length == 0) {
break;
}
for (var i = 0; i < orders.length; i++) {
exchange.CancelOrder(orders[i].Id);
}
Sleep(Interval);
}
}
यह एक फ़ंक्शन है जिसका नाम हैCancelAll()
इसका उद्देश्य बाजार में सभी अधूरे आदेशों को रद्द करना है। आइए इसके कार्यों को चरण-दर-चरण समझाएंः
while (true)
: यह एक अनंत लूप है, यह तब तक चलता रहेगा जब तक कोई अधूरा आदेश नहीं है।var orders = _C(exchange.GetOrders)
: यह कोड लाइन चालू खाते में सभी लंबित आदेशों को पुनर्प्राप्त करने के लिए exchange.GetOrders फ़ंक्शन का उपयोग करती है और उन्हें ऑर्डर चर में संग्रहीत करती है।if (orders.length == 0)
: कोड की यह पंक्ति किसी भी अधूरे आदेशों की जांच करती है. यदि आदेश सरणी की लंबाई 0 है, तो इसका मतलब है कि कोई अधूरे आदेश नहीं हैं और लूप बाधित हो जाएगा (ब्रेक) ।for (var i = 0; i < orders.length; i++)
: यह एक फोर लूप है जो सभी अधूरे आदेशों के माध्यम से पुनरावृत्ति करता है.exchange.CancelOrder(orders[i].Id)
: कोड की यह पंक्ति प्रत्येक आदेश को उसके आईडी द्वारा रद्द करने के लिए exchange.CancelOrder() फ़ंक्शन का उपयोग करती है।Sleep(Interval)
: इस कोड लाइन में एक निश्चित समय (मिलीसेकंड में) के लिए ठहराव के साथ प्रतीक्षा अवधि की शुरूआत की गई है, ताकि यह सुनिश्चित किया जा सके कि रद्द किए गए आदेशों का संचालन बहुत बार न हो।इस कोड लाइन में एक प्रतीक्षा अवधि की शुरूआत की गई है, जिसमें एक निश्चित समय (मिलीसेकंड में) के लिए ठहराव किया गया है, ताकि यह सुनिश्चित किया जा सके कि रद्द किए गए आदेशों का संचालन बहुत बार न हो।
function updateStatus(msg) {
LogStatus("Number of debugging sessions:", Counter.i, "succeeded:", Counter.w, "failed:", Counter.f, "\n" + msg + "#0000ff\n" + new Date());
}
यह एक फ़ंक्शन है जिसका नाम हैupdateStatus(msg)
, जिसका उपयोग लेनदेन की स्थिति की जानकारी को अपडेट और रिकॉर्ड करने के लिए किया जाता है। यह एक msg पैरामीटर स्वीकार करता है, जिसमें आमतौर पर वर्तमान बाजार की स्थिति के बारे में जानकारी होती है। फ़ंक्शन के विशिष्ट कार्यों में शामिल हैंः
का उपयोग करनाLogStatus()
रणनीति निष्पादन के दौरान स्थिति पट्टी में प्रदर्शित जानकारी को रिकॉर्ड करने के लिए कार्य। यह व्यापार की गिनती, सफल गिनती और विफलता की गिनती के बारे में पाठ प्रदर्शित करता है।
दmsg
पैरामीटर जोड़ा गया है, जिसमें वर्तमान बाजार की स्थिति के बारे में जानकारी है।
वर्तमान समय (new Date()
) समय की जानकारी प्रदर्शित करने के लिए संलग्न है।
इस कार्य का उद्देश्य रणनीति निष्पादन के दौरान निगरानी और विश्लेषण के लिए लेनदेन की स्थिति की जानकारी को रिकॉर्ड करना और अद्यतन करना है।
function main() {
if (DisableLog) {
EnableLog(false);
}
CancelAll();
InitAccount = _C(exchange.GetAccount);
Log(InitAccount);
var i = 0;
var locks = 0;
while (true) {
Sleep(Interval);
var depth = _C(exchange.GetDepth);
if (depth.Asks.length === 0 || depth.Bids.length === 0) {
continue;
}
updateStatus("Searching within the elephant... Buy one: " + depth.Bids[0].Price + ", Sell one:" + depth.Asks[0].Price + ", Lock times: " + locks);
var askPrice = 0;
for (i = 0; i < depth.Asks.length; i++) {
if (depth.Asks[i].Amount >= Lot) {
askPrice = depth.Asks[i].Price;
break;
}
}
if (askPrice === 0) {
continue;
}
var elephant = null;
// skip Bids[0]
for (i = 1; i < depth.Bids.length; i++) {
if ((askPrice - depth.Bids[i].Price) > ElephantSpace) {
break;
}
if (depth.Bids[i].Amount >= ElephantAmount) {
elephant = depth.Bids[i];
break;
}
}
if (!elephant) {
locks = 0;
continue;
}
locks++;
if (locks < LockCount) {
continue;
}
locks = 0;
updateStatus("Debug the elephant... The elephant is in gear " + i + ", " + JSON.stringify(elephant));
exchange.Buy(elephant.Price + PennyTick, Lot, "Bids[" + i + "]", elephant);
var ts = new Date().getTime();
while (true) {
Sleep(CheckInterval);
var orders = _C(exchange.GetOrders);
if (orders.length == 0) {
break;
}
if ((new Date().getTime() - ts) > WaitInterval) {
for (var i = 0; i < orders.length; i++) {
exchange.CancelOrder(orders[i].Id);
}
}
}
var account = _C(exchange.GetAccount);
var opAmount = _N(account.Stocks - InitAccount.Stocks);
if (opAmount < 0.001) {
Counter.f++;
Counter.i++;
continue;
}
updateStatus("Successful payment: " + opAmount +", Start taking action...");
exchange.Sell(elephant.Price + (PennyTick * ProfitTick), opAmount);
var success = true;
while (true) {
var depth = _C(exchange.GetDepth);
if (depth.Bids.length > 0 && depth.Bids[0].Price <= (elephant.Price-(STTick*PennyTick))) {
success = false;
updateStatus("Didn't get it, start to stop loss, currently buying one: " + depth.Bids[0].Price);
CancelAll();
account = _C(exchange.GetAccount);
var opAmount = _N(account.Stocks - InitAccount.Stocks);
if (opAmount < 0.001) {
break;
}
exchange.Sell(depth.Bids[0].Price, opAmount);
}
var orders = _C(exchange.GetOrders);
if (orders.length === 0) {
break;
}
Sleep(CheckInterval);
}
if (success) {
Counter.w++;
} else {
Counter.f++;
}
Counter.i++;
var account = _C(exchange.GetAccount);
LogProfit(account.Balance - InitAccount.Balance, account);
}
}
यह मुख्य निष्पादन कार्य हैmain()
आइए इसके संचालन की पंक्ति-दर-पंक्ति व्याख्या करें:
if (DisableLog)
: कोड की यह पंक्ति जांचती है कि क्या DisableLog चर सत्य है, और यदि ऐसा है, तो यह लॉग रिकॉर्डिंग को अक्षम कर देगा। यह सुनिश्चित करने के लिए है कि रणनीति द्वारा अनावश्यक लॉग रिकॉर्ड नहीं किए जाते हैं।
CancelAll()
: यह सुनिश्चित करने के लिए पहले समझाए गए CancelAll() फ़ंक्शन को कॉल करें कि कोई अधूरा ऑर्डर न हो।
InitAccount = _C(exchange.GetAccount)
: कोड की यह पंक्ति चालू खाते की जानकारी प्राप्त करती है और इसे InitAccount चर में संग्रहीत करती है। इसका उपयोग रणनीति निष्पादन शुरू होने पर खाता स्थिति रिकॉर्ड करने के लिए किया जाएगा।
var i = 0;
औरvar locks = 0;
: दो चर, i और ताले, जो बाद की रणनीति तर्क में इस्तेमाल किया जाएगा आरंभ.
while (true)
: यह एक अनंत लूप है, जिसका उपयोग मुख्य रूप से रणनीतियों के निरंतर निष्पादन के लिए किया जाता है।
इसके बाद, हम मुख्य रणनीति तर्क को स्पष्ट करेंगेwhile (true)
लूप लाइन द्वारा लाइन.
while (true) {
Sleep(Interval);
var depth = _C(exchange.GetDepth);
if (depth.Asks.length === 0 || depth.Bids.length === 0) {
continue;
}
updateStatus("Searching within the elephant... Buy one: " + depth.Bids[0].Price + ", Sell one:" + depth.Asks[0].Price + ", Lock times: " + locks);
Sleep(Interval)
: यह कोड लाइन रणनीति के निष्पादन आवृत्ति को नियंत्रित करने के लिए, समय की एक अवधि के लिए नींद की अनुमति देता है। अंतराल पैरामीटर नींद अंतराल (मिलीसेकंड में) को परिभाषित करता है।
var depth = _C(exchange.GetDepth)
: वर्तमान बाजार गहराई की जानकारी प्राप्त करें, जिसमें बिक्री आदेशों और खरीद आदेशों की कीमतें और मात्राएं शामिल हैं। यह जानकारी गहराई चर में संग्रहीत की जाएगी।
if (depth.Asks.length === 0 || depth.Bids.length === 0)
: यह कोड लाइन बाजार की गहराई की जानकारी की जांच करती है, यह सुनिश्चित करती है कि बिक्री आदेश और खरीद आदेश दोनों मौजूद हैं। यदि उनमें से एक मौजूद नहीं है, तो यह इंगित करता है कि बाजार में पर्याप्त व्यापारिक जानकारी नहीं हो सकती है, इसलिए रणनीति इंतजार करना जारी रखेगी।
updateStatus("Searching within the elephant... Buy one: " + depth.Bids[0].Price + ", Sell one:" + depth.Asks[0].Price + ", Lock times: " + locks)
: यह कोड लाइन रणनीति की स्थिति की जानकारी को अद्यतन करने के लिए updateStatus फ़ंक्शन को कॉल करती है। यह उच्चतम बोली मूल्य, निम्नतम पूछ मूल्य और पहले लॉक किए गए समय (लॉक) सहित वर्तमान बाजार की स्थिति को रिकॉर्ड करती है।
var askPrice = 0;
for (i = 0; i < depth.Asks.length; i++) {
if (depth.Asks[i].Amount >= Lot) {
askPrice = depth.Asks[i].Price;
break;
}
}
if (askPrice === 0) {
continue;
}
var elephant = null;
var askPrice = 0;
: askPrice चर को आरंभ करें, इसका उपयोग शर्तों को पूरा करने वाले बिक्री आदेशों की कीमत को संग्रहीत करने के लिए किया जाएगा.
for (i = 0; i < depth.Asks.length; i++)
: यह एक फोर लूप है जिसका उपयोग बाजार के बिक्री आदेशों की कीमत और मात्रा की जानकारी को पार करने के लिए किया जाता है।
if (depth.Asks[i].Amount >= Lot)
: लूप में, जांचें कि प्रत्येक बिक्री आदेश की मात्रा निर्दिष्ट लॉट (हाथ गणना) से अधिक या बराबर है या नहीं। यदि हां, तो उस बिक्री आदेश की कीमत को askPrice में स्टोर करें और लूप को समाप्त करें।
if (askPrice === 0)
: यदि शर्तों को पूरा करने वाले कोई बिक्री आदेश नहीं पाए जाते हैं (askPrice अभी भी 0 है), तो रणनीति इंतजार करना जारी रखेगी और बाद के संचालन को छोड़ देगी।
var elephant = null;
: हाथी चर को आरंभ करें, इसका उपयोग
for (i = 1; i < depth.Bids.length; i++) {
if ((askPrice - depth.Bids[i].Price) > ElephantSpace) {
break;
}
if (depth.Bids[i].Amount >= ElephantAmount) {
elephant = depth.Bids[i];
break;
}
}
if (!elephant) {
locks = 0;
continue;
}
locks++;
if (locks < LockCount) {
continue;
}
locks = 0;
बाजार खरीद आदेशों की कीमत और मात्रा की जानकारी को पार करना जारी रखें, पहले खरीद आदेश (ऑर्डर[0]) को छोड़ दें।
if ((askPrice - depth.Bids[i].Price) > ElephantSpace)
: जांचें कि क्या वर्तमान बोली मूल्य और askPrice के बीच का अंतर ElephantSpace से अधिक है। यदि हां, तो यह इंगित करता है कि यह
if (depth.Bids[i].Amount >= ElephantAmount)
: जांचें कि क्या वर्तमान खरीद आदेश की मात्रा ElephantAmount से अधिक या बराबर है. यदि हां, तो खरीद आदेश की जानकारी को हाथी चर में संग्रहीत करें.
if (!elephant)
: यदि
locks++
: यदि
if (locks < LockCount)
: जांचें कि लॉक समय की संख्या आवश्यकता (लॉककाउंट) को पूरा करती है या नहीं। यदि नहीं, तो प्रतीक्षा करना जारी रखें।
updateStatus("Debug the elephant... The elephant is in gear " + i + ", " + JSON.stringify(elephant));
exchange.Buy(elephant.Price + PennyTick, Lot, "Bids[" + i + "]", elephant);
var ts = new Date().getTime();
while (true) {
Sleep(CheckInterval);
var orders = _C(exchange.GetOrders);
if (orders.length == 0) {
break;
}
if ((new Date().getTime() - ts) > WaitInterval) {
for (var i = 0; i < orders.length; i++) {
exchange.CancelOrder(orders[i].Id);
}
}
}
updateStatus("Debug the elephant... The elephant is in gear " + i + ", " + JSON.stringify(elephant))
: रणनीति की वर्तमान स्थिति को रिकॉर्ड करने के लिए updateStatus फ़ंक्शन को कॉल करें, जिसमें पाया गया
exchange.Buy(elephant.Price + PennyTick, Lot, "Bids[" + i + "]", elephant)
: पाए गए
var ts = new Date().getTime()
: समय अंतराल की बाद की गणना के लिए वर्तमान समय का टाइमस्टैम्प प्राप्त करें।
while (true)
: एक नया अनंत लूप दर्ज करें, जिसका उपयोग
Sleep(CheckInterval)
: आदेश की स्थिति की जांच की आवृत्ति को नियंत्रित करने के लिए रणनीति कुछ समय के लिए सोती है।
var orders = _C(exchange.GetOrders)
चालू खाता की सभी आदेश जानकारी प्राप्त करें।
if (orders.length == 0)
: जांचें कि क्या कोई अधूरा आदेश है, यदि नहीं, तो लूप को तोड़ें।
(new Date().getTime() - ts) > WaitInterval
: वर्तमान समय और जब
for (var i = 0; i < orders.length; i++)
: सभी अधूरे आदेशों के माध्यम से पार करें।
exchange.CancelOrder(orders[i].Id)
: प्रत्येक अधूरे आदेश को रद्द करने के लिए exchange.CancelOrder फ़ंक्शन का उपयोग करें.
var account = _C(exchange.GetAccount);
var opAmount = _N(account.Stocks - InitAccount.Stocks);
if (opAmount < 0.001) {
Counter.f++;
Counter.i++;
continue;
}
updateStatus("Successful payment: " + opAmount + ", Start taking action...");
exchange.Sell(elephant.Price + (PennyTick * ProfitTick), opAmount);
var success = true;
while (true) {
var depth = _C(exchange.GetDepth);
if (depth.Bids.length > 0 && depth.Bids[0].Price <= (elephant.Price - (STTick * PennyTick))) {
success = false;
updateStatus("Didn't get it, start to stop loss, currently buying one: " + depth.Bids[0].Price);
CancelAll();
account = _C(exchange.GetAccount);
var opAmount = _N(account.Stocks - InitAccount.Stocks);
if (opAmount < 0.001) {
break;
}
exchange.Sell(depth.Bids[0].Price, opAmount);
}
var orders = _C(exchange.GetOrders);
if (orders.length === 0) {
break;
}
Sleep(CheckInterval);
}
if (success) {
Counter.w++;
} else {
Counter.f++;
}
Counter.i++;
var account = _C(exchange.GetAccount);
LogProfit(account.Balance - InitAccount.Balance, account);
}
var account = _C(exchange.GetAccount)
: चालू खाते की जानकारी प्राप्त करें।
var opAmount = _N(account.Stocks - InitAccount.Stocks)
updateStatus("Successful payment: " + opAmount + ", Start taking action...")
:
exchange.Sell(elephant.Price + (PennyTick * ProfitTick), opAmount)
: सफलतापूर्वक खरीदे गए
एक नया अनंत लूप दर्ज करें, बिक्री आदेशों के निष्पादन के लिए प्रतीक्षा करने के लिए इस्तेमाल किया।
var depth = _C(exchange.GetDepth)
बाजार की गहन जानकारी प्राप्त करें।
if (depth.Bids.length > 0 && depth.Bids[0].Price <= (elephant.Price - (STTick * PennyTick)))
: बाजार गहराई की जानकारी की जाँच करें, यदि बाजार मूल्य पहले ही स्टॉप-लॉस स्तर पर गिर गया है, तो स्टॉप-लॉस ऑपरेशन निष्पादित करें।
CancelAll()
: स्थिति जोखिम से बचने के लिए सभी अधूरे आदेशों को रद्द करने के लिए CancelAll() फ़ंक्शन को कॉल करें।
if (opAmount < 0.001)
: खरीदारी की मात्रा को फिर से जांचें, यदि यह 0.001 से कम है, तो यह इंगित करता है कि खरीदारी विफल हो गई है, लूप से बाहर निकलें।
exchange.Sell(depth.Bids[0].Price, opAmount)
: स्टॉप-लॉस ऑपरेशन निष्पादित करें, शेष परिसंपत्तियों को वर्तमान बाजार की सबसे कम कीमत पर बेचें।
अंत में, सफल और असफल लेनदेन की संख्या को अद्यतन करें, यह देखते हुए कि लेनदेन सफल था या नहीं, और ट्रेडिंग लाभ दर्ज करें।
यह पूरी रणनीति की पंक्ति-दर-पंक्ति व्याख्या है। इस रणनीति का मुख्य विचार बाजार में
आम तौर पर, यह रणनीति एक उच्च आवृत्ति वाली ट्रेडिंग रणनीति है जिसका उद्देश्य बाजार की गहराई की जानकारी का उपयोग करना है ताकि छोटे समय में बड़े खरीद ऑर्डर की पहचान की जा सके और खरीद और बिक्री लेनदेन किए जा सकें। इसके लिए बाजार की निरंतर निगरानी और छोटे मुनाफे को जल्दी से प्राप्त करने के लिए खरीद और बिक्री संचालन के निष्पादन की आवश्यकता होती है। हालांकि, यह एक उच्च जोखिम वाली रणनीति भी है, क्योंकि इसके लिए महत्वपूर्ण नुकसान से बचने के लिए जोखिम प्रबंधन और स्टॉप-लॉस तंत्र पर विचार करते हुए बाजार में उतार-चढ़ाव के लिए त्वरित प्रतिक्रियाओं की आवश्यकता होती है।
कृपया ध्यान दें कि रणनीति विशिष्ट बाजारों और ट्रेडिंग प्लेटफार्मों पर आधारित है। विभिन्न बाजारों और एक्सचेंजों के लिए, उचित समायोजन और अनुकूलन की आवश्यकता हो सकती है। व्यावहारिक अनुप्रयोग में, निवेशकों को सावधानीपूर्वक परीक्षण करने और रणनीति के प्रदर्शन का मूल्यांकन करने की आवश्यकता है ताकि यह सुनिश्चित हो सके कि यह उनके निवेश लक्ष्यों और जोखिम सहिष्णुता के अनुरूप है।
जैसा कि आप रणनीति को निष्पादित करना जारी रखते हैं, यह बार-बार निम्नलिखित संचालन करेगाः
सबसे पहले, रणनीति में बिक्री आदेशों और खरीद आदेशों की वर्तमान स्थिति को समझने के लिए बाजार की गहन जानकारी की जांच की जाएगी।
इसके बाद, रणनीति उन बिक्री आदेशों को खोजने का प्रयास करेगी जो मानदंडों को पूरा करते हैं, विशेष रूप से लॉट से अधिक या बराबर मात्रा वाले बिक्री आदेश। यदि एक योग्य बिक्री आदेश पाया जाता है, तो बिक्री आदेश की कीमत askPrice के रूप में दर्ज की जाएगी।
इसके बाद, रणनीति
यदि लगातार पर्याप्त संख्या में
पूरी रणनीति लगातार उपरोक्त कार्यों को करती है ताकि अधिक से अधिक
पेनी जंप रणनीति उच्च आवृत्ति व्यापार में एक विशिष्ट उदाहरण है, जो बाजार के प्रतिभागियों के बीच सूक्ष्म खेल और प्रतिस्पर्धा का प्रदर्शन करती है। यह रणनीति क्रिप्टोक्यूरेंसी बाजार में विशेष रूप से प्रमुख है क्योंकि इसके बड़े उतार-चढ़ाव हैं, जहां संस्थागत निवेशक और उच्च आवृत्ति वाले व्यापारी सभी त्वरित लाभ का पीछा कर रहे हैं। हालांकि, इससे बाजार चुनौतियों से भरा होता है, प्रतिस्पर्धात्मक लाभ बनाए रखने के लिए रणनीतियों के निरंतर अनुकूलन और समायोजन की आवश्यकता होती है। इस भयंकर प्रतिस्पर्धी दुनिया में, केवल वे व्यापारी जो बाजार के सूक्ष्म संरचना को समझने में अच्छे हैं और जल्दी से प्रतिक्रिया करते हैं, सफलता प्राप्त कर सकते हैं।