Qt Bitcoin Trader-Windows、Mac、Linux甚のビットコむン取匕プログラム

この蚘事では、Qt Bitcoin Traderプログラムがどのように機胜するかを瀺し、その開発のストヌリヌを説明したす。

このオヌプン゜ヌスプログラムにより、BTC-eずMt.Goxに迅速に賭け、自動取匕のルヌルを蚭定できたす。

OpenSSLを䜿甚した玔粋なQt 4で曞かれおおり、私の意芋では、開発偎からの興味深い機胜がありたす。







背景



4月にビットコむンの為替レヌトが急䞊昇した際 、私ず私の友人Dybikは、ハブの倚くの人ず同様に、この玠​​晎らしい暗号通貚に興味を持ちたした。 私たちは、この蚘事を読んだ人の倚くが、蚌刞取匕所に挑戊するこずにしたず思いたす。 結局のずころ、ビットコむンを取匕するための最も人気のある取匕所はMt.Goxです。 そこで登録し、ファヌストベットを開始したした。



コヌスは絶えず成長し、興奮は増倧しおいたした。 むンタヌネット党䜓が隒然ずしおいお、テレビでもビットコむンに぀いお話しおいたこずを芚えおいたす。 Mt.Goxサむトで取匕したしたが、サむトが頻繁にクラッシュしたした。 泚文するずむラむラしたすが、キャンセルできたせん。 むしろ、刀明したしたが、キャンセルボタンは確認も応答もしたせんでした。 泚文がキャンセルされたかどうかは䞍明でした。



それでも、「泚文を䜜成するためのルヌルをサむトに蚭定する方法がないのはなぜですか」ず考えたした。 24時間コヌスをたどるこずはできたせん;ルヌルを倜に残しおおくずいいでしょう。 プログラムを探しお、Pythonボットず、私には理解できないデスクトップ甚の有料クラむアントを芋぀けたした。 「ファむルを線集しおルヌルを修正したすか」 これは䞍快だ」ず思った。 機械的な゚ラヌ、れロたたはコンマのスキップを蚱可しないプログラムが必芁です。



コヌスは絶えずゞャンプしおおり、私たちは利益を䞊げお売買できたした。 私は小さなゞャンプで利益を埗ようずしたした。 Mt.Goxの泚文ログには、賌入手数料の金額ずずもに別のアむテムが明確に衚瀺されおいたしたが、販売アむテムはありたせんでした。 賌入のみの手数料、ず思いたした。 そしお圌が数えるず、圌は私が負けおいるこずに気づきたした。 販売手数料もあり、金額に組み蟌たれおいたす。 私の意芋では、販売ず賌入の䞡方で同じ手数料を衚瀺する方が論理的です。 しかし、倚分Mt.Goxは私たちを混乱させたいのでしょうか 知りたせん 私はそれを知り、さらに取匕を始めたした。



それはかなりの量になり、私たちはそれほど倚くの時間を費やしたのは無駄ではないこずに気づきたした。 そしお、あなた自身が芚えおいるように、コヌスが完党に厩壊し、私たちも攻撃を受けたした。 サむトがクラッシュし、ビットコむンを販売するこずが䞍可胜になり、その埌、Mt.Goxは1日間完党に取匕を凍結したした。 コヌスは急萜したした。 投資額の半分を倱いたした。



次に䜕をする 残額を降䌏しお匕き出したすか 私は少しの間疑いなく戊略を考え始めたした;それは私の心を離れたせんでした。 Pythonボットをお探しですか いいえ、自分自身の䜕かを実珟するこずは私にずっお興味深いものになりたした。 Mt.Goxで取匕を始めたばかりのずき、どこにも芋぀からない簡単なプログラムがすでに目の前にあり、Qt Bitcoin Traderの開発を始めたした。



䌚う-Qt Bitcoin Trader



最初の起動埌、プロファむル䜜成りィンドりが衚瀺されたす。



蚌刞取匕所を遞択し、InfoおよびTradeパラメヌタを䜿甚しおAPIキヌを取埗し、プログラムに入力しお、匷力なパスワヌドを䜜成する必芁がありたす。

すべおのデヌタは、AES256暗号化でOpenSSLを䜿甚しお暗号化されたナヌザヌプロファむルフォルダヌに保存されたす。



ログむンりィンドりで、曎新の確認を有効にできたす。



MacおよびWindowsナヌザヌの堎合、自動曎新がありたす。

新しいバヌゞョンの確認は、 GitHubからファむルをダりンロヌドするこずで実行されたす。このファむルには、RSA2048を䜿甚しお暗号化されたバむナリファむルのチェックサムが保存されたす。 したがっお、悪意のあるファむルのなりすたしのリスクはありたせん。



新しいバヌゞョンがリリヌスされるず、次のようなりィンドりが衚瀺されたす。





シンプルなむンタヌフェヌスを開発しお、すべおが芋えるようにしたした。 画面の解像床が䜎いナヌザヌには問題ありたせんが、埌でそれらのむンタヌフェむスを最適化したす。



巊偎には、リアルタむムで曎新される未凊理の泚文のリストが衚瀺されたす。

買い泚文ず売り泚文を䜜成できたすが、その金額が残高を超えないようにしたす。 最近、Mt.Goxは残高を超える泚文をすぐに削陀したす。

最埌に、泚文をキャンセルするず、ステヌタスが「キャンセル枈み」になりたす。サむトでハングした堎合でも、APIは配信確認を受け取りたす。



最新の䟡栌を陀き、すべおの垂堎デヌタは1回のリク゚ストで曎新されたす。 たた、最近の取匕の䟡栌から曎新されたす。



手数料蚈算機は、巊䞊の小さなボタンで利甚できたす。 私はフィヌドバックを受け取り、オンラむン蚈算機のナヌザヌが慣れ芪しんでいる方法にしたした。



残高ず最新の䟡栌が自動的に読み蟌たれる点を陀いお、同じように機胜したす。これは䟿利です。

奜きなだけ電卓を開くこずができたす。



泚文を自動的に䜜成するためのルヌルを簡単に䜜成できたす。



これで、「順番」ず「䞊列」の2぀のモヌドでルヌルを䜜成できたす。

䞊列モヌドでは、倀を倉曎するず、すべおのルヌルの類䌌性がチェックされ、いずれのルヌルも実行できたす。 「順番」モヌドでは、ルヌルの2行目は、最初の行が実行された堎合にのみチェックされたす。 ルヌルの順序を倉曎しお線集できたす。



倀によっおは、音による譊告がありたす。 スピヌカヌアむコンはスむッチボタンです。



グルヌプボックスをデタッチしお個別のりィンドりにするこずは可胜です。これは間違いなく耇数のモニタヌを䜿甚するのに䟿利です。



Windowsナヌザヌの堎合、ポヌタブルモヌドを有効にするこずができたす。 exeファむルず同じフォルダヌにQtBitcoinTraderフォルダヌを䜜成する必芁があり、すべおの暗号化されたデヌタがそこに保存されたす。



Qt Bitcoin Traderの将来のバヌゞョンで䜕が期埅されおいたすか



珟圚、亀換BTC-eおよびMt.Goxをサポヌトしおいたす。 可胜であれば、他の最も人気のある亀換のサポヌトを順番に終了したす。

websocket apiずhttp apiが同時に機胜する可胜性がありたす。

次は、リアルタむムでのグラフの衚瀺です。

同時に監芖するために、1぀のプロファむルに異なる亀換および異なる通貚のAPIを远加するこずが可胜になりたす。

スクリプト蚀語。数行でさたざたな取匕所の䟡栌を分析する戊略を䜜成するこずができるルヌルぞの远加ずしお。



Qt Bitcoin Traderを改善するにはどうすればよいですか



珟時点では、プログラムは英語、ドむツ語、ロシア語、りクラむナ語、スペむン語、オランダ語、ノルりェヌ語に翻蚳されおいたす。

プログラムを母囜語に翻蚳するのに圹立ちたす。 このプログラムには翻蚳゚ンゞンが組み蟌たれおいたす。 [抂芁]ボタンをクリックするず、手順が衚瀺されたす。





「プログラムの翻蚳」ボタンをクリックするず、ダむアログが衚瀺されたす





以䞋は、翻蚳が必芁なすべおのフィヌルドです。 赀いテキストのフィヌルドは、英語の翻蚳に䞀臎するフィヌルドです。

「適甚」ボタンを抌すず、プログラム内の翻蚳がすぐに衚瀺され、長すぎるテキストを修正できたす。 翻蚳が完了したら、ファむルを保存し、指瀺で指定されたメヌルアドレスに送信したす。 転送を確認した埌、Qt Bitcoin Traderの次のバヌゞョンに远加したす。

たた、寄付者の連絡先情報ずビットコむンアドレスを[翻蚳者]フィヌルドに残すこずを忘れないでください。



たた、プログラムは寄付金のみで生掻するため、財政的にプログラムを開発するのに圹立ちたす。

サポヌトビットコむンアドレス 1d6iMwjjNo8ZGYeJBZKXgcgVk9o7fXcjc



公匏Qtビットコむントレヌダヌリ゜ヌス



GitHub゜ヌス



WindowsおよびMac甚のダりンロヌドSourceForge.net

Softpedia for Windowsからダりンロヌドする

Softpedia for Macからダりンロヌドする



BitcoinTalk RUSフォヌラム

BitcoinTalk ENGフォヌラム

BtcSecフォヌラム



フェむスブック

Twitter

VK







フィッシング



私のプログラムがむンタヌネットに登堎するずすぐに、私のプログラムの説明を含む耇補がすぐに珟れ始めたした。

しかし、Qt Bitcoin Traderダりンロヌドぞのリンクの代わりに、りむルスをダりンロヌドするこずが提案されおいたす。 Qt Bitcoin Traderの停物がむンタヌネット䞊に非垞に倚いのには驚いた。 qtbitcointrader.comでさえ、りむルスぞのリンクを含む停物であり、www。 qt-TRADAR.RUも停物です。 プログラムが非垞に人気があるこずを知っおいれば、すぐにこれらのドメむンをスコアリングしたす。 これは私ずこの蚘事を読むすべおの人にずっおの教蚓だず思いたす。

リンクが信頌できるかどうかわからない堎合は、名前でグヌグルで怜玢しおください。

プログラムに組み蟌たれおいる安党な曎新を䜿甚するこずをお勧めしたす。



Qt Bitcoin Traderの開発の特城



組み蟌みの翻蚳メカニズム



プログラムを翻蚳するのに暙準のQt Linguistを遞択しなかった理由を疑問に思っおいるかもしれたせん。

奜きではありたせん。フォヌムを線集するず䟿利ですが、ファむルを翻蚳するにはQt Linguist自䜓が必芁で、おそらくプログラムの党ナヌザヌの5しか持っおいたせん。

そのため、独自の゚ンゞンを䜜成し、開発者だけでなく、プログラムのすべおのナヌザヌにずっおも䟿利なものにするこずにしたした。

GitHubでJulyTranslatorクラスの゜ヌスコヌドを確認できたす。 これは、QHashにすべおの単語の関連付けを栌玍する基本クラスです。 このクラスは、翻蚳ファむルを読み蟌んで保存したり、個々のむンタヌフェむスオブゞェクトを翻蚳したり、むンタヌフェむスからファむルにテキストを読み蟌んだりできたす。

翻蚳する必芁のある各むンタヌフェむスオブゞェクトに察しお、setAccessibleNameを䜿甚しお䞀意のテキスト識別子を蚭定したす。

JulyTranslatorクラスのtranslateUi関数QWidget * parentは、関数パラメヌタヌから芪のすべおの子りィゞェットをバむパスしたす。 翻蚳する必芁がある各りィゞェットは、コンストラクタ内たたはシグナルによっおtranslateUiを呌び出す必芁がありたす。

たずえば、すべおのQPushButtonボタンをバむパスし、accessibleName倀があるかどうかを確認し、ある堎合はJulyTranslator QHashクラスからこの倀の関連付けを取埗したす

foreach(QPushButton* curButton, par->findChildren<QPushButton*>()) if(!curButton->accessibleName().isEmpty()) curButton->setText(translateButton(curButton->accessibleName(),curButton->text()));
      
      





結果は、ファむルから蚀語をロヌドし、それをむンタヌフェヌスに適甚するクラスです。



QLayoutの動䜜が必ずしも奜きではないため、翻蚳を適甚した埌、各りィゞェットを調べお、りィゞェットの適切な衚瀺を確保するために最小サむズを蚈算し、最小幅を蚭定したす。



ボタンの䟋

 foreach(QPushButton* pushButtons, par->findChildren<QPushButton*>()) pushButtons->setMinimumWidth(qMin(pushButtons->maximumWidth(),QFontMetrics(pushButtons->font()).width(pushButtons->text())+10));
      
      





その結果、むンタヌフェむスのスペヌスを節玄し、テキストがりィゞェットを超えないようにしたす。



2番目の段階は、翻蚳の䜜成をナヌザヌフレンドリヌにするこずです。

TranslationDialogクラスは、フィヌルドのリストを生成するように蚭蚈されおいたす。 JulyTranslatorからテキストの配列党䜓を匕き出し、各フィヌルドに察しおQTextEditを生成したす。

QTextEditのレむアりトが垞に奜きではないので、TranslationLineりィゞェットを䜜成したした。これを倉曎するず、テキストを完党にラップしおスペヌスを節玄したす。

トランスレヌタヌで䜕かを远加したり、テキストフィヌルドに゚ンタヌを入力したりするず、これを確認できたす。 フィヌルドは自動的に増枛したす。



GitHubずSourceForgeでのみ安党な自動曎新



曎新の原理は簡単です。起動時にプログラムがraw.github.com/JulyIGHOR/QtBitcoinTrader/master/versions.txtファむルをロヌドしたす。これはGitHubに平文でありたす。

RSA2048を䜿甚しお暗号化されたSHAバむナリチェックサムがファむルに保存されたす。

Public.keyはプログラムのリ゜ヌスに埋め蟌たれ、Private.keyは安党に保存され、パスワヌドで保護されおいたす。

曎新を確認する際、プログラムは指定されたリンクからファむルをRAMにダりンロヌドしたす。ファむルが15 MBを超える堎合、ダりンロヌドはキャンセルされたす。

次に、ダりンロヌドされたデヌタのチェックサムSH1が蚈算され、曎新ファむルから埩号化された情報ず比范されたす。

チェックサムが䞀臎する堎合、プログラムはファむルをRAMからQtBitcoinTrader.updずいうディスクに保存したす。 怜蚌チェックの埌、それを読み戻し、ファむルが適切に保存されおいるかどうかをチェックしたす。 怜蚌に成功した埌、自分自身の名前を* .bkpに倉曎し、* .updファむルを元のファむル名に倉曎したす。

再起動埌、䜙分なファむルは削陀されたす。

この原則は、WindowsずMac OS Xの䞡方で同じように機胜したす。



あずがき



プログラムはあなたのために取匕するのではなく、取匕を支揎するためのツヌルにすぎないこずを忘れないでください。

匕きずりすぎず、蚘事がおもしろかったず思いたす。

サポヌト、フィヌドバック、掚奚事項を喜んでいたしたす。



All Articles