アルゴリズムと機械の外国為替戦略 | OneStepRemoved

  • Articles
  • Sophisticated Web Sites
  • Automated Trading
  • お客様の声
  • お問い合わせ

Become an Algo trader in Baby Steps

4 月 4, 2016 によって リオル Alkalay 10 コメント

The world of traders is divided into two groups; those who trade using algorithms and those who don’t. Those who trade using algorithms, aka algotraders, are well aware of the advantages of trading with an algo… And for those who don’t use algos? They are equally aware of the algo advantages but are reluctant to dive into its complexity; they are deterred from learning how. But the road to success in trading is not by avoiding challenges, but overcoming them, perhaps in baby steps.

First Baby Step to becoming an Algo trader

Let me ask you a question. What do you think is the first thing you’d need to do to become an algotrader? You might respond, “Learn programming, もちろんです! How else?” Well, you’d be wrong.

If you plan to learn programming for the sole purpose of becoming an algotrader, you’re likely to get lost. 最終的に, in despair or frustration, you’ll give up on algotrading.

There are numerous languages, from MQL to R to Python, and you have to decide which one to start with. You might find yourself wasting valuable time learning far too many trivial functions. It may take quite a long time before you even create a trading algo, let alone a profitable one.

But there’s another way, which I call reverse engineering.

The first step is to figure out which trading algo you want to make. 他の言葉で, what are the functions and strategy it should implement? Then you test it and finally, move on to the programming part. This way, you’re focused like a spotlight. You know exactly what your algo should do and can focus on the exact functionalities you need to learn to make it happen.

Everything will just come intuitively; which language, how and in what. All the pieces will fall much quicker into place because you already know what to look for.

The best way to start is by using a flowchart. It is actually one of the first things you learn in programming schools.

And what determines the flow? もちろんです, it’s the conditions. What we call the “ifs.” “Ifs” can be one condition or have many “ands” and “ors.” That’s how you decide what your algo should do in any given circumstances. The conditions to the algo are what the brain is to the body; they do the thinking.

Second Baby Step: Use Excel

Once you’ve made a flowchart of conditions, rather than using a complex tool, use Microsoft Excel or some other spreadsheet software.

Algo

ソース: MT4

Extract historical data of a price data; start by using only the closing price. If you want to trade on a daily interval, extract daily data and so on. Use a separate column for each of the conditions in the flowchart, that way it’s easy to write and figure out. Add another column for a buy and sell output to mark when you “opened” and when you “closed” a position. And finally add one column of accumulated profit/ loss.

Use separate columns for each conditions and fill the chart. All you need now is to run a linear chart on one column, accumulated profit/loss, and look at the algo’s historical performance.

Once you master the basics you can move on to move advanced back-testing and curve fitting. But for a start that will do.

Algo

最後に, Learn to Program

わかりました, you’re not a “baby” anymore; you have a good idea of what an algo trader needs to do. Now that you’ve got the concept down pat, you’re ready to begin learning programming.

In terms of which language to start with, that will depend on the circumstances. If you are already using an MT4 platform, it’s a no brainer; learn MQL which runs on MT4. The MQL website is filled with “how to” materials. And since you already have a diagram of your algo and an idea what you want to do, finding your way should be simple.

But if you trade with a different broker, you’ll have to decide which best suits. 自ら, I recommend starting with MQL, just because it’s easier. その後、, you can move into Python, which is a rather easy language to learn or C++ if your algo needs to work fast. If you algo is heavy on the math then perhaps R would fit.

Here are some places you can learn online:

MQL

Coursera

Code Academy

EDX

または, もちろんです, you can learn from a book. I am more of a book person, but that’s just me.

Then there is another issue—API. API is the mechanism that enables your algo to communicate with your broker and execute your trades. Some brokers work better with certain programming languages than others. Most large brokers have communities and forums that can go into detail as to the best way to use an API.

Unlike the first two baby steps, no one would ever say that learning to program was a baby step. むしろ, it’s more of a giant leap. It takes time to learn and to master, though it is worth it in the long run. Meanwhile, you can always use libraries of codes on the web for more complex algos. The thing is that once you’ve accomplished the first two baby steps, making the final leap into programming is a no brainer.

以下の下でファイルさ: あなたの概念を歴史的にテストします。 タグが付いて: アルゴリズム, API, エクセル, mql, プログラミング, R

Too Many Charts

7 月 5, 2012 によって ショーンオバートン 2 コメント

A million charts on the screen. It looks like a blob of every known currency pair with a mix of every time frame added for good measure. You, 私の友達, suffer a nightmare juggling the EA settings on all these charts.

The idea of running a single Expert Advisor that trades all charts and multiple time frames stands out as an obvious solution. It’s not a good one, しかし. The way that MetaTrader 4 is designed prevents this setup from working smoothly.

The start() function in MQL4

MQL4 Expert Advisors only run in one of three different ways. The init() function is called when you load the EA onto a chart. The deinit() function operates whenever you remove the EA. That leaves the start() 関数. It’s like the beating heart of all MQL4 programs.

Incoming ticks tell the chart to notify an attached expert advisor about the updated price. When that occurs, the expert advisor runs the start() 関数. That function contains all of the code that traders associate with expert advisors: placing trades, implementing trailing stops, など. All of those actions depend on incoming ticks.

、 organization of MQL4 creates a problem for the goal of creating an EA that places trades for all charts. Expert advisors only update when a tick comes in. If I wanted to trade the GBP/JPY from a chart attached to the EUR/USD, any delay in EUR/USD ticks causes a delay in executing GBP/JPY trades.

This probably does not seem like a big deal. It isn’t a big deal – ほとんどの時間. It can, しかし, create a nagging problem of wondering why a noticeable percentage of trades seem to execute late. Traders on one minute charts would even notice missed signals. Although it’s not frequent, even the major pairs often go longer than one minute in between ticks.

Work-arounds

One idea to reduce the number of open charts while ignoring the incoming tick problem is to create an EA that trades on 複数の時間枠 for the currency pair where it’s attached. If I wanted to trade the AUDCAD on M30, H1, H4 and D1 charts, then I could place the EA on one of the those charts but have it look for trades on the selected time frames. This type of solution could decrease the number of open charts by 75% 以上.

The idea of controlling everything from a single chart is very similar to the market scanning indicator that we created several months ago. There is really no difference between that indicator and the expert advisor proposed here. I feel that missing an indicator signal is of far less consequence than missing trade signals. Expert advisors are more likely to perform extra, ongoing operations like trailing stops that indicators completely ignore. The consequence of delayed ticks is far less significant for an indicator than it is for an EA.

以下の下でファイルさ: メタト レーダーのヒント タグが付いて: EA, 専門家アドバイザー, インジケーター, メタト レーダー, mql, multiple time frame, scanner, スタート

MQL 組織

5 月 1, 2012 によって ショーンオバートン Leave a Comment

すべての MQL エキスパートアドバイザーと指標のいくつかの重要なコンポーネントが含まれて. The general organization of MQL programs does not vary too often.

Files usually start with a declaration of #defines (pronounced pound define) global variables and external variables, also known as an extern data type. They appear near the top of the code to help the read gain an understanding of the variables that will run in the program. 理想的には, the names of the variables and how they are organized should assist the programmer with form a general understanding of what the expert advisor or indicator might do.

The next section is usually the init() 関数, which is the word initialize abbreviated. This section of the code is particularly relevant to programming custom indicators. Most of the general indicator settings like declaring the indicator buffers, the colors to use and other basic features are set within this section. I use init() in every expert advisor that we build to convert the inputs into an appropriate setting for the broker’s pricing. If a client inputs a stop loss of 50 into an EA, I don’t need to do anything if it’s a 4 digit broker. I do, しかし, need to convert the input to work with a 5 digit broker. I run a quick check within init() to see if Digits == 3 || Digits == 5. もしそうなら, then I multiply inputs affected by that setting by 10.

deinit() is the least important section; it’s pretty easy to deinitialize an MQL file because it usually does not take up any system resources. It’s rarely used for anything important. The only uses that I ever have for deinit() are to close an open file handle or to make some sort of closing note. This is often done either on the chart directly through the Comment() function or more often by writing directly into the ログ ファイル.

The start() function is the real meat of an MQL expert advisor or indicator. Whenever MetaTrader detects an incoming tick, it alerts any MQL programs. Those programs then call the start function so that it can do whatever needs doing. All trading operations, calculations, account monitoring, など, occur within this section.

All of the other custom functions within the program appear below start(). I usually prefer to rank them in order of their importance or the frequency with which I call them throughout the program. The order of placement of functions does not affect performance in any way at all. It’s strictly a cosmetic practice that makes programming code more legible.

以下の下でファイルさ: MQL (オタクのため) タグが付いて: deinit, 専門家アドバイザー, インジケーター, init, mql, MQL4, スタート

MQL データ型

4 月 30, 2012 によって ショーンオバートン 2 コメント

MQL4 は、プログラム内の 7 つのデータ型をサポートしています. Each type is associated with different trading tasks that programmers need to perform. The goal of this article is to provide a brief reference for when to use each data type.

The double data type is probably the most common type found in MQL programs. This is because it is the type responsible for calculating floating point numbers. Say for example, that an expert advisor needs to determine when to adjust a trailing stop. The expert advisor looks at the current price and subtracts it from the current stop loss to maintain the appropriate distance (1.3230-1.3209=0.0021). The distance requires a decimal point. When the expert advisor saves the distance to memory, it needs to save the information after the decimal point. That forces the programmer to choose a variable of type double.

Integers, or int, is the simpler version of double. Double values require a decimal place to hold the number’s value accurately. An integer, or whole number, does not have a decimal place. Integers are appropriately used when the MQL programmer knows for a certain fact that the number will never contain a decimal. An example would be if you wanted to implement a max trades feature. If the number of open trades in the account exceeds a certain number, then prevent trades. We know in advance that there is no such thing at 4.76 trades being open. There can only be 4 trades open or 5 trades open. This clearly indicates the need to use an integer.

Datetime values are just what they sound like. They represent both the date and time. More specifically, a datetime variable represents the number of seconds that have elapsed since January 1, 1970. This is where it gets a little tricky. The number of seconds that have elapsed is actually an integer. Datetimes store integer values but then associate them with a date and time.

値 0 would indicate that the time is 00:00 1 月 1, 1970. 値 60 stands for one minute later at 00:01 1/1/1970, ように. One benefit of knowing that the datetime type stores information as integers is that you can easily determine the amount of time that happens between an event. If the event starts at 15:35 and ends at 18:12, you can simply subtract 18:12 – 15:35 and wind up with the number of seconds between those values. That information can then be used to determine the number minutes/hours/days between the two events.

The color data type, not surprisingly, holds color information such as black, イエロー, red and so on. Much like datetime types, color also uses integers to store the information. The difference, しかし, is that extracting the color information from the integer is not at all obvious. Increasing a color type from 32768 by one will not necessarily make it more or less green. Colors use the integer information to retrieve the red, green and blue components of the color in hexadecimal format. Explaining hexadecimals is well beyond the scope of this article. It’s unlikely to come up in your MQL programming. I’ve been doing this for over five years and only came across one project that required manipulating a color in way more complicated than alternating between two set colors.

A string is anything that resembles a word or sentence. It always uses quotes to contain the information. My favorite use of strings is to gather information to display on the chart or in a ログ ファイル whenever I need to debug an expert advisor.

Char is the final data type. It’s so closely related to a string that I wasn’t even aware this type existed until I looked up information for this article. If we study the word “貿易”, then we will find that it is composed of the five characters t, r, 、, d and e.

A final note on data types. There are two ways that types are held in memory. An extern variable is one that shows up in the inputs screen whenever an expert advisor or indicator loads. Static variables are the opposite. They remain within the MQL program and never visible outside of it.

以下の下でファイルさ: MQL (オタクのため) タグが付いて: bool, color, data type, datetime, double, extern, int, mql, static, 文字列

MQL のデバッグ

3 月 6, 2012 によって ショーンオバートン 1 コメント

MQL は非常に単純なスクリプト言語です。. MQL をデバッグ, 残念なことに, 全然簡単ではないです。. MetaQuotes 供給 MetaEditor コンパイラは単に高度なツールを使用するほとんどのプログラマが慣れてを含まない.

MQL のデバッグの問題

洗練された Ide の visual Studio およびその他 (統合開発環境) 多くのプログラマはそれ中コードをデバッグしやすく機能を含む. これの最大の例は、ブレーク ・ ポイント. ブレークポイントは、コード内のポイント コンパイラがコードの特定の行に到着したとき、プログラムの実行を停止するコンピューターに指示.

たとえばないセットがどこ、トレーリング ストップ新しい停止正しく. 視覚的に、専門家のアドバイザーを実行することほとんどのプログラマのための自然な本能 backtester, 末尾の停止の計算の直後後のコード行にブレークポイントを挿入します。. ブレークポイント停止コード, それが時に思ったしてソフトウェアの脳の内部ピアにプログラマを許可する決定をしました。. Visual Studio の重要な利点はすべての変数の値が明確に表示されています。. 順を追ってプログラムを歩くことは. たびに、手順のいずれか希望のルールに従っていません。, 必要な変更は通常明白であります。. MetaQuotes で mql5 をブレーク ・ ポイントをありがたいことに含まれて. MQL4 で利用いただけません.

Intellisense サポートの欠如以上の何も私のプログラミングの速度に影響を与える. Intellisense は、順のような予約語の使用を検出します。() または ObjectGet(). MetaEditor には初歩的な intellisense が含まれています, しかしそれは Visual Studio がとても便利なので、細かい詳細を欠いています。.

プログラミング c# 第 1 を入力可能で変数またはクラスの数文字に慣れてください。, IDE は、残りの部分を入力し、. 私のタイプ “Mes” c# およびスペース バーを押し, 私はメッセージ ボックス オプションが表示されることを知っています。 (適切な名前空間を宣言したと仮定すると). MetaEditor 予約語の候補者のリストを提供します。. プログラマにし選択するかマウスを押しますオプションを入力する必要があります。.

私を押すことを要求する些細なことだ知っているスペース バーの代わりに入力してください, しかし、どのように多くの時間 resuses をコードは、同じ予約語や変数について考える. 余分なキーの押下は本当に不要な入力動の多く追加を行う. 手根管の痛み手首の支柱を既に着ているを 30 歳の二倍に本当であります。.

MetaEditor の最大の弱点は、変数名が検出されないこと. 私たちはしばしば数千行のコードを含む専門家のアドバイザーを書く. 独自の課題が万に変数名を追跡. ときコーダーの繰り返し同じ変数名のセットの種類, それは単に最初の 3 文字を入力し、上の移動にいいだろう. コピーと貼り付けは、まともな代替を提供可能性があります。. 問題は、変数は、一緒にしてグループ化通常. 保つことができません。 5 別のコピーと貼り付けアイテム入手.

MetaEditor により無効な型を返す関数. として宣言された関数は、文字列を返すことができます。, 整数またはすべてでは何も. MQL4 コンパイラはこれらが有効かどうかを追跡しません. それは実質の時間のテスト中に無効な型を発見するプログラマに任せて. この監督は誤って間違った型を返します無意識のプログラマにとっては悪夢.

二重の機能が誤って整数変数に返されると、これは二倍に本当. MQL4 は int キャストに違法な二重を妨げない. さらに悪いこと, 専門家アドバイザーの実行が継続、 0 例外やエラー メッセージをスローする代わりに整数の値. 私は無駄な変数の追跡どのように多くの時間を数えることができません。, 不適切なデータ型を宣言することを実現するため. これは通常、私は自動操縦で発生します。, コードをドキドキ. 髪を引っ張る欲求不満のいくつかの時間のコスト通常時に効率的に思えるもの.

MQL のデバッグ技術

、 MQL プログラマ ここのスタッフには通常次の方法のいずれかに訴える. 組み合わせでそれらを使用して向上さらにデバッグ プロセスがあります。.

コンパイラ エラーをデバッグします。

この 1 つは、最もイライラすることができます。. MetaEditor コードのどの行は、コンパイル エラーを発生を示唆しようとしています。. それが誤ってよりも頻繁にそれが右のそれを取得するための試みと言う. 何も完全に合法的なコンパイラ フラグとして問題のあるコード行を見てするよりも刺激があります。.

私はほとんど常にエラーが消えるまで、ますます大規模なコード セクションをコメント アウト リゾートします。. 1 行のコードをコメント アウトし始めます. 動作しないかどうか, 10 行をコメントし、. 動作しないかどうか, 全体関数またはコードのセクションをコメントさせてもらいます. 場合、コンパイラが最後に正しく動作, あなたはコメント アウト コードの最後のセクションにバグが含まれていることを知っています。.

次, あなたがバック トラックします。. エラーが再現されるまで問題のあるコメント アウト セクションを小さく作り始める. 今のところ, 最後にゼロの使用上に問題の実際の原因.

リアルタイムで、または、backtester でデバッグします。

デバッグの私の好ましい方法は、コメントを画面上に関連する意思決定情報のほとんど, 行われているコメントを使用して() 関数. Visual backtester を実行します。, データが視覚情報に関連してどのように動作するかを見てください。.

画面にコメントが本質的に応急ブレーク ・ ポイントです。. プログラマは問題を明らかにするコードをステップ実行することができます彼らが表示する方法とタイミングを制御します。. 唯一の違いは、コメントできない強制的ようにコードの実行. 表示されるテキストは非常に小さい. それはさておき, それがとても強いことが本当に好き. コメント機能が常に滞りなく動作します。, コードのデバッグは、プログラマの最良の友となってください。.

次のレベルは、このスクリーン ショットを撮る. ときに顧客なぜ専門家アドバイザー行儀特定の方法について質問します。, 最も簡単な答えは、スクリーン ショットが付属します。. 模倣の休憩ポイントは通常防弾答えを提供コメント – プログラマと顧客見ることができる文字通り EA が決定をした時に思った. MQL4 は、WindowScreenShot を提供しています。() これを行う関数.

常に重要なアクション中にスクリーン ショットを取るのプログラム私たちが EAs, 貿易を入力または終了条件の調整など. 目標の動作について質問に答える将来を視野に入れて、すべての意思決定の視覚的な記録を提供することです。.

私たちのデフォルトのテンプレートは WriteScreenshots と呼ばれる真/偽変数を含む. トレーダーは、このデバッグ機能かどうか気にするかどうかを制御します。. 唯一の欠点は、すべての記録されたアクションが約 50 kb のハード ドライブの空き容量を食べること.

ログ ファイル 最後のデバッグ オプションを表す. 主な欠点は、そう醜いと読みにくいが. 私はほとんど常にこの理由でスクリーン ショットを好む.

それにもかかわらず, ログ ファイル その場所を持ってください. それらを使用する主な方法は、エラーのキャッチャーとして. プロセスがいずれかのメタト レーダー自体やブローカー取引問題のためゆがんで行くたびに, それをキャッチする最も簡単な場所はログ ファイルです。.

MQL ファイルのデバッグを学ぶ時間がかかるスキルは、します。. プログラマの処分でツールがより高いレベルの言語に利用できる多くの異なる. 一度あなたは MetaEditor、メタト レーダーではるかに簡単なツールの操作に慣れる, プロセスを通常クリアのバグをより簡単に取得します.

以下の下でファイルさ: メタト レーダーのヒント タグが付いて: 休憩ポイント, コメント, ログ, metaeditor, MetaQuotes, メタト レーダー, mql, MQL4, MQL5 を, スクリーン ショット, Visual Studio

MQL ex4 をデコンパイルします。

12 月 28, 2011 によって ショーンオバートン 48 コメント

内容を表示するコンパイル済みのソースコードを開いて破ることを意味ファイルを逆コンパイル. 逆の目標はいくつかの方法でそれを変更するために元のソースにアクセスするには.

MQ4 と EX4 の違い

ときに 専門家アドバイザーをインストールします。, 専門家またはインジケーター フォルダーに記載されているファイルの 2 種類を気づいている可能性があります。. .mq4 ファイルは、MQL 言語でプログラミング コードを元を保持します。. プログラマは EA やインジケーターを変更するためにこの種類のファイルにアクセスすることができます。.

コンピューターは、人間が読める形式の ex4 ファイル情報を保存しません. 代わりに, 0 と 1 のシリーズに、コードをコンパイルします。, 呼ばれるビット, リアルタイムで読み上げます. メモ帳でも、MetaEditor で ex4 ファイルを開く場合, 上がるすべては、波状の文字とちんぷんかんぷんで.

最高のアナロジーは、ゲームの計画のアイデアを検討するには. 相手チームの守備がゆっくりと移動することがわかっている場合, 頻繁に通過しようとする可能性があります。. ゲームの再生方法の仕様のすべてを知らない. 一連の状況の全般的な応答を開発すること. それは mq4 ファイルです。.

Ex4 ファイルがより頻繁に渡す計画を実装するゲームで行われた意思決定のシリーズ. アイデアは行く準備ができて, にもかかわらず、個々 の演劇がない知られている彼らは、将来的にいたので. 演劇の開発と, プレイヤーは一般的なゲームの計画を取るし、リアルタイムで実装.

逆コンパイルする理由

デコンパイル ex4 ファイル要求のほとんどが購入トレーダーから来る、 商業のエキスパートアドバイザー 製品に満足していません。. Mq4 ファイルを生成、コンパイル済みの ex4 ファイルを破壊. 、 専門家アドバイザーのプログラマ MQL 内容を取るし、必要な変更を加える.

多くはデコンパイラ ファイルに無害な変更を加えるだろう. 成功の指標は、市場の方向性を予測するかもしれない, まだそれがアラートを生成を取引する良い時期だと. 新しい取引設定信号が長すぎるチャートを見つめてからユーザーを救うかもしれない. トレーダーは、彼らがするソース コードへのアクセスを必要があることと誤解 MQL インジケーターをプログラムします。. ICustom 関数を使用するプログラマを求めるために簡単だ他の誰かに侵入ではなくのコード. これは、コードに不正なアクセスを必要とせずコードの正当な使用.

いくつか私に不満トレーダー アプローチ、じゃんじゃんお金を失う専門家のアドバイザー. 彼らは戦略から潜在的に有用な概念をサルベージの希望でファイルの内容を変更したいです。. 私が買っている外国為替トレーダーに話も “生活時のライセンス” 専門家アドバイザー, 廃業ベンダーを持っている. デコンパイル ex4 が彼らにアクセスできなくすることができますが、当然所有製品のライセンスの制限を削除します。.

一般的で倫理的な応答では、私は状況に同情します。, 私の意見で. 私は疑う, しかし, を、 商用 EA の変更に関する法的問題, 顧客の支持されていません。.

その後、, 盗賊が誰か他の人の作品のように、それを支払う必要はありません。. 私は残念なことにすべての時間のこの要求を取得します。. OneStepRemoved.com は、逆コンパイル サービスを提供していません. 他の人の仕事を盗むを中心に要求の多すぎます。.

場合します。 エキスパートアドバイザーを販売します。 または カスタム インディケータを販売します。, 最も適切なアプローチは、します。 プログラムで DLL メタト レーダー ファイル. それは DLL の暗号化により.

MQL 言語は取引以外の心で何か書き込まれませんでした。. コードのセキュリティと逆のリスク MetaQuotes 開発チームの懸念ではなかった. 優位性につながる メタト レーダーのプログラマ 東ヨーロッパ ソフトウェアを逆コンパイル MQL を開発し、インターネットでリリースするから. Ex4 および mq4 形式間で行き来は非常に, 非常に簡単.

逆コンパイル後の情報の損失

Ex4 ファイルを逆コンパイルは mq4 ファイルを得られる. それではないです。, しかし, 元の mq4 ファイルと同じ. デコンパイル ex4 ファイル変数名を取り除き新しいコンピューター名に置き換えられます.

優れたプログラミング方法は、目的の後変数名を必要とします。. 変数の場合の距離を保持します。 ステルスの停止, 、 MQL プログラマ 名前を付けること stealthStop または stealthStopDistance. 逆コンパイルされたバージョンは i_594 や g_12 のような恐ろしい何かに名前を変更します. 逆コンパイルのプロセスは完全に元の mq4 ファイルの論理的な流れを破壊します。.

プログラムを考えてみましょう 30-50 変数. それらの変数の変更の一つの名前. コードの最初の概観は意味をなさない. 変数名は任意の方法でそれらの機能を反映して.

関数の名前と入力, externs または外部変数とも呼ばれます, 保持されます。. 明確に自分のコードの構造を作らない. 一緒に, 彼らは通常、十分な情報を形成、 プログラマ 変数の名前を再現するには.

マーキングのプロセス デコンパイル ex4 コードと少なくとも醜い変数名の変更 1.5 時間. それは多くの時間をことができますコードが数百行よりも長い場合は変数の数が異常に高い. レビュー プロセスは mq4 ファイルに変更を加える場合に必要です。. その現在の機能が明確でない限り MQL の既存のコードを変更することについては移動する方法はありません。.

Mq4 ファイルへの変更は他のようなまさに MT4 プログラミング プロジェクト後のレビュー プロセスが終了. コーダー必要がありますプログラムの変更とそれが正常に動作することを確認するファイルをデバッグ.

Ex4 デコンパイラを見つける

基本的な検索を実行することができます。 “mql デコンパイラ”, “デコンパイル ex4 mq4” または任意の同様の組み合わせ. 結果のページは通常、ベンダーの間で激しい競争を表示します。. ファイルの逆コンパイルを取得することは珍しくないです。 $8-15 1 ファイルあたり.

ファイルの配信回を異なる個々 のベンダー. かかることが任意の場所、数時間から 1 週間に逆コンパイルされたファイルを受信するレポートを聞いてきた. 正当な理由のためのファイルを逆コンパイルするいると仮定すると, 知っている人を信頼するは難しい. 業界, 結局その程度です, 主を盗んでいるお客様をターゲットします。. 信頼できる泥棒を求めると同類である信頼できる逆コンパイル サービスを求めて.

以下の下でファイルさ: 外国為替市場のしくみ?, メタト レーダーのヒント タグが付いて: 逆コンパイルします。, デコンパイラ, 逆コンパイル, ex4, mql

堅牢なエキスパートアドバイザー

12 月 5, 2011 によって ショーンオバートン Leave a Comment

あなたがしたい場合 プログラム専門家アドバイザー, それはあなたがファイルを使用する可能性がある方法を検討することが重要です. 私は、新しい参照の最も一般的な間違い MQL プログラマ 作る彼らはメモリに過度に依存していることです. 電源障害などのイベント, エキスパートアドバイザーとの取引時にハードドライブのクラッシュまたは弱いインターネット接続が大混乱をもたらすことができます. EAは、理想的にピックアップし、あなたが正常に条件を復元することができますたびに実行することができる必要があります.

メモリの問題

問題は時々設定を変更するような日常的なものから生じます. クライアントが私たちに来たときに私はそのハードな方法を学びました ダラスオフィス 2週間の非常に複雑なEAを注文します. すべてがで完全に働きました backtester. 一晩テスト, しかし, 何かがゴチャゴチャ行く前に数時間以上続いたことはありません. 私は、設定を変更していないクライアントに指示; ちょうどそれをオンにして一人でそれを残します. 何らかの理由で, これらの命令の重要性がで沈没したことはありません. それは、彼の定義することを実現するために私に年齢を取りました “一人でそれを残します” かなり鉱山と噛合しませんでした. 彼は取引中に行われた少しの微調整は、私がメモリに保存されている設定で混乱しました.

私は特定の方法でソフトウェアを使用するようにクライアントに指示することができます. 多くの場合, 彼らはある程度の命令から外れます. それは人間の本性です. 私は、これらの課題から学びました, 任意のプロたいものです. 私たち プログラミング テンプレートには、特別な指示の必要性を最小限にするための構造に変更しました.

グローバル変数

グローバル変数はメモリに頼るの問題を回避するための一般的なツールです. EAをチャートから削除された場合, それが作成されたグローバル変数は、あなたのためにアクセス可能です, EAまたはその他のEAはメタトレーダーの内の任意の場所から読み取ります.

グローバル変数の使用は、洗練されたに聞こえますが, それは実際には非常に単純なアプローチです. メタトレーダーは、変数名とそのインストールディレクトリに非表示のテキストフ​​ァイルを管理, それが保存されている値と、それが最後に変更された時間. たび以上に 6 前回からの経過週 MQL グローバル変数を使用します, メタトレーダーは、自動的に削除されます.

A マルチンゲール このシステムは、単純な統計量を追跡するために、グローバル変数を使用することを選ぶかもしれません. マルチンゲール リスクへのアプローチとワイルドです, そうトレーダーは現実的に最大レベルが取引一目で知りたいことができ. グローバル変数は、その必要性から、簡単な作業を行います. 取引する次のレベルは、グローバル変数よりも大きい場合に, その後 MQLコード グローバル変数を更新する必要があります.

覚えておくべき唯一のアイテムは、グローバル変数は、6週間後に期限切れということです. EAは、その現在の値にグローバル値をリセットすることで情報をリフレッシュする必要がある場合があります. そうすることでメタトレーダーの観点から変数新鮮に保つだろう.

A screen shot of global variables in MetaTrader 4

代わりにそれを格納する情報を読みます

私はに頼ることを好みます MQL'S注文を選択() 私は必要な情報を再作成するためのコマンド. それはより複雑であるが, 利点は、EAはいつでも機能することができるということです, 任意の場所, 設計通り. ハードドライブがクラッシュした場合, それは回復の観点から問題ではありません. あなたはダウンタイムの間にトラブルにまだあります, しかし. あなたのMT4のアカウントに同じEAをロードすることができ、それがすぐに情報を再構築しています.

上記を取ります マルチンゲール シナリオ, 私たちは、取引の開閉時間を比較することにより、取引レベルの数を再構築することができ. 貿易場合 #1 のクローズ時間を持っています 2011 12月. 5 00:00 貿易 #2 またのクローズ時間を持っています 2011 12月. 5 00:00, それは、同じ貿易グループの一部であることを教えてくれる. これまでのところ, 我々は持っています 2 取引レベル. 貿易場合 #5 で閉鎖 2011 12月. 5 00:00 しかし、何の取引はその後なかったです, その後、私たちは取引ことを知っています 5 合計レベル. EAは、すべての可能な組み合わせをループしているから、最高数を選ぶことができます.

注文履歴からの読み込みのアプローチは、この単純な例のためにやり過ぎのビットです, あなたはより多くの複雑な情報を計算する必要がある場合、それは動的に、エラーのリスクが最小限に便利です.

以下の下でファイルさ: 外国為替市場のしくみ?, メタト レーダーのヒント, 未分類 タグが付いて: EA, 専門家アドバイザー, global variable, マルチンゲール, メモリ, メタト レーダー, mql, OrderSelect, power failure, テンプレート

メールで無料の取引戦略

トレンド分析

申し訳ありませんが. No data so far.

アーカイブ

  • ルール
  • 外国為替市場のしくみ?
  • インジケーター
  • メタト レーダーのヒント
  • MQL (オタクのため)
  • NinjaTrader ヒント
  • Pilum
  • QB プロ
  • お金を失うことを停止します。
  • あなたの概念を歴史的にテストします。
  • 戦略の取引のアイデア
  • 未分類
  • What's happening in the current markets?

翻訳


無料の取引戦略

プライバシー ポリシーRisk Disclosure

著作権 © 2022 OneStepRemoved.com, (株). すべての権利予約.