プログラム中級編2019.06.11今回は、複利システムの作り方です。サンプルプログラムはこちらです。Zip圧縮していますので解凍してご利用ください。SampleLotダウンロードサンプルプログラムの使い方は、以下の記事で説明しています。今回やるのは、他の人が作ったシステムの導入方法です。次回から、内容が少々複雑になりますので、サンプルプログラムを作ってダウンロード出来るようにしておきます。そのプログラムを使うための方法です。複利システムとは、口座の資金が売買取引により増えるたびに、ロット数を増やして行くというものです。(ちなみに資金が減って行くとロット数も減って行きます。)逆マーチンゲール法と呼ばれるポジションサイジングの手法の一つです。マーチンゲール法を説明すると長くなるので、ここでの説明は省きますが、気になる人は検索すると直ぐに見つかると思いますので、調べてみてください。この手法を使うと、取引結果が右肩上がりのシステムでは、資金が何倍にも増加し、取引結果が右肩下がりのシステムでも資金の減少が穏やかになります。具体的に今回のプログラムでは、常時口座に入っている資金のレバレッジ約10倍のロット数を売買します。例を出すと、口座に入っているのが1万2千ドルの場合は、1.2ロットの売買をします。1万6千ドルの場合は1.6ロット、8千ドルの場合は0.8ロットの売買になります。プログラムの説明に行きます。0.5;//最後に、double型に0.1をかける。//これにより、口座に入っているのが1万2千ドルの場合は、1.2ロットになる。;おそらく、パッと見ただけでは何をしているのか理解出来ないと思います。今回は少しややこしいので、分かりやすく説明出来るかどうか不安なのですが、なんとか説明して行こうと思います。dluble型とint型の変数を作ります。この二つの変数の違いで今回重要なのは、小数点以下が使えるか使えないかというところです。この違いが後々重要になってくるので覚えて置いてください。変数の宣言が終わったら、次に下記の処理をします。10000;AccountBalance()は、現在の口座にある資金を出してくれます。一万通貨で0.1ロットなので、今回はレバレッジ10倍にするために、10000で割ります。口座に一万ドル入っていた場合に、変数blotsに入るロット数を1にするためです。次に、下記の処理をします。して変数clotsにいちいち入れなおすかということから説明します。変数clotsがint型だからです。数字を入れると、0.1ロットが取引枚数の最低枚数なので、バグって取引してくれなくなります。int型は、小数点以下の数字を切り捨ててくれるので、この不具合がなくなります。次に、何故10倍にしているかの説明です。0.1ロットの単位を切り捨てて、1ロット以上の単位だけで取引したい場合は、変数blotsだけを入れれば良いのですが、今回は0.1ロットの単位まで入れるために、一度10倍にしてから、int型の変数のclotsに入れます。int型は小数点以下の数字は入れれないので、小数点以下の数字がある場合は全て切り捨てて変数にいれます。1.23という数字を入れようとすれば、小数点以下が切り捨てられて、変数には1が入ります。そこで、小数点第一の数字まで残しておきたい場合は、一度10倍にして、1.23を12.3にします。これで、10倍にする前の余分な小数点第一位未満の数字を切り捨てることが出来ます。あとで、double型に入れるときに10分の1にすれば、ロット数の最低枚数の小数点第一まで変数に入れることが出来ます。最後に何故、0.5を足しているかの説明です。結果を先に言うと四捨五入するためです。int型に入れると、自動的に切り捨てるために四捨五入することが出来ません。1.26を10倍にした後の12.6の0.6を四捨五入して、13にしたくても、切り捨てられて12になります。そこで解決策として、0.5を足します。これにより、12.6に0.5を足して13.1になり、小数点以下が切り捨てられて13になります。ちなみに、12.3の場合は0.5を足しても12.8になり、小数点以下が切り捨てられて12になります。最後には、下記の処理をします。;先程int型の変数clotsに10倍にして入れたロット数を10分の1にして、double型の変数alotsに入れます。これで、例えば口座に12115ドルとか半端な数字で残高が残っていても、レバレッジ約10倍の1.2ロットという数字を入れることが出来ます。後は、オーダー関数のロット数を入れるところに、変数alotsを入れれば、複利システムの完成です。複利システムのように取引毎にロット数が変わるシステムにした場合、バックテストのグラフのところの下の方に、ロット数の数量も出るようになりますので、視覚的にも分かりやすいです。今回はこれで終了です。ポジションサイジングは、システムトレードだけでなく、投資をする上でかなり重要な要素なので、他にも色々と試してみると良いと思いますよ。内容には注意を払っていますが、保障は出来ません。実際に運用する場合は、自己責任でお願いします。今回の記事は、「特定の時間の別の時間足のバーの取得」です。1時間足のチャートで10本前のバーの21日移動平均線と同じ時間の30分足のチャートの21日移動平均線を取得したいとします。今回の記事は「メールの設定の仕方」です。オーダーシステムの方では記載しておりましたが、こちらでは説明させて頂いていませんでしたので改めて説明させて頂きます。今回は、オリジナル関数の作り方です。内容が少し難しくなって来ましたので、今回から中級編にします。サンプルプログラムはこちらです。Zip圧縮していますので解凍してご利用ください。記事を新しい仕様で書き直しております。旧仕様の記事になります。今回は、時間系の関数の説明です。サンプルプログラムはこちらです。Zip圧縮していますので解凍してご利用ください。サンプルプログラムの使い方は、以下の記事で説明しています。プログラム中級編SendMailについて今回の記事は「SendMailについて」です。SendMail関数はメールを送る関数です。SendMail関数の引数について説明します。プログラム中級編オーダーシステムお客様から売買ルールをお聞きして制作代行するサービスも行っています。詳しくはこちらメルマガFXで完全自動売買を行える自作システムの作り方を出来るだけ分かりやすく順を追って説明していきます。※携帯メールアドレスではご利用頂けません。登録フォームメルマガの解除はこちら。4の導入プログラム入門編プログラム初級編プログラム中級編システムトレード実践編オーダーシステムプロフィールお問い合わせリンクについて利用規約ホーム検索トップサイドバーオーダーシステムお客様から売買ルールをお聞きして制作代行するサービスも行っています。詳しくはこちらメルマガFXで完全自動売買を行える自作システムの作り方を出来るだけ分かりやすく順を追って説明していきます。※携帯メールアドレスではご利用頂けません。登録フォームメルマガの解除はこちら。EAのテラスシステムトレード徹底比較プログラマーなFX~完全自動売買への道~メタトレ!完全自動売買のススメ為替王タイトルとURLをコピーしました。