- ベストアンサー
MQL4のプログラミングについて
- 自動売買システムのプログラミングで、シグナルにより自動的にとったポジションから 'x' Pipsの利食いで決済させるプログラムを書きたいです。
- 具体的には、特定のプログラムのシステムでとったポジションを次のシグナルが出ずとも 'x' Pipsの利食いで決済する条件を入れたいです。
- プログラミングについて初心者で、具体的な方法についてアドバイスをいただきたいです。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
その他の回答 (1)
関連するQ&A
- MT4(MQL)の初歩がわかりません
こんにちは、どうかよろしくお願いします MT4(MQL)をはじめたばかりです。 基本的な質問で恐縮ですが、根本が理解できておりません。 幾つか教えて頂きたいのです。 <質問1> MQLで記述したコードはチャートに組み込んで実行していくのは理解できたのですが、2つの異なる時間枠(週足と日足)などの複合的な条件で売買をするシステムは2つのチャートが必要です。このような事はMQLで実装可能でしょうか? 例えば、週足のテクニカル指標のシグナルと日足のテクニカル指標のシグナルとを確認した上で売買を実行するなどです。 <質問2> 初心者向けMQL関連の書籍(非常に親切で解りやすくとてもありがたい書籍です) を拝読したところ、テクニカル指標(MA)を表示するサンプルプログラム(Custom Indicator)と実際にMAのシグナルで売買するサンプルプログラム(Expert Advisor)の2つの例がありました。 Expert Advisor側のサンプルプログラムの中でiMA()という組込み関数が使用されてました。組込みとはMT4に元々用意されていたMAを呼び出したと理解しておりますが、そうすうるとCustom Indicatorで作成されチャート上に表示されたMAとは、関連性が無くそれぞれ独立したシステムなのでしょうか? 仮に私オリジナルのテクニカル指標をExpert Advisor側で作成してチャートに表示させても、Expert Advisor側でそのシグナルは関連付けできないのでExpert Advisor側でもそれと同じテクニカル指標のコードを記述するとこで、トレードシグナルと判断させることがMT4の基本的な考え方なのでしょうか? それともCustom Indicatorのテクニカル指標のシグナルを受取ってExpert Advisor側で判断できる方法もあるのでしょうか?MT4的な考え方が漠然としていて、よく理解できないのです <質問3> 上記質問の関連ですが、MAのシグナルで売買するExpert Advisor側のプログラムを仮に作成してチャートに組込んで使用する場合、そのチャートにMAが表示されていないとiMA()という組込み関数はデータを取得できないのでしょいうか?
- ベストアンサー
- FX・外国為替取引
- FXの自動売買サービスが停止できず困っています
あるFXの自動売買サービスに申し込んだのですが、損失が拡大しそうなためシステムの停止を申請したのに受け入れてもらえません。 メタトレーダー上で複数の顧客の資金を一斉に運用するシステムですが、個別に決済するとシステム全体に不具合が起こるので現在のポジションが全て決済されるまで停止できないそうです。 ポジション保有中は出金もできないそうです。 そのシステムの販売ページには、「お客様の好きなタイミングでいつでも入出金できる」とはっきり書いてあります。 また、購入後のサポートページには「ポジション保有中の場合は、すべてのポジションが解消された後の停止作業となりますので予めご了承ください。」 とありますが、自分は停止申請した時点で、すべてのポジションを強制決済した後停止すると解釈していました。 販売ページに上記のような記述がありながら、実際にはシステムを停止できずどんどん損失が膨らんでいる状況にあります。 毎日新しいポジションを持つので、本当にすべてのポジションが決済される日がいつになるのか見当もつきません・・ 法的な手段に訴える等でもかまいませんので、なんとか全ての資金を失う前にシステムを止めさせることはできないでしょうか?
- ベストアンサー
- FX・外国為替取引
- 初心者におすすめのプログラミング言語
VBAでシフト表を自動作成できる物を作ったのですが、欲しい条件などを入れようと思ってもシステム的に難しかったり、処理が重かったりして不便なので、 初心者でもできるプログラミング言語を教えて欲しいです。
- ベストアンサー
- その他(プログラミング・開発)
- MT4の自動売買プログラムで出来る?勉強法は?
FXをはじめてまだ日は浅いのですが・・・ 最近、シストレの広告などを見て、自分のルールをプログラム化する事が出来るのなら、チャートを見ることが出来ない時もエントリータイミングを逃すことが無く、いらない感情も発生せず、トレード出来るのかなという思いが頭をよぎり、MT4の自動売買のプログラミングに興味をもっています。 MT4についても詳しく知りませんし、プログラミングも無知の状態です。 そこで、ご存知の方がいらっしゃいましたら教えていただきたいのですが、MT4のプログラミングで下記の様な事がプログラム化できるのでしょうか。 例) (1)ボリンジャーバンドの+2σと-2σのバンド幅が35pips以上ある時に+2σを抜けたらショート エントリー。-2σを抜けたらロングエントリー。 (2)21移動平均線が下向きの状態でローロク足が移動平均線に達したらショートエントリー.。 逆ならロングエントリー。 (3)建玉数は資産の2%の金額÷損失pips数とする。 (4)ポジションが建った場合は指値+40pips、逆指値-30pipsにする。 (5)1日で2回負けたらその日はトレードしない。(若しくは1日のトレード回数は5回までとか) 出来るのであれば、プログラミングの勉強をしてみようかなと考えています。 又、MT4のプログラミングを勉強するにあたって、わかりやすく参考になる書籍やブログ等をご存知の方がいらっしゃいましたら、教えていただきますでしょうか。
- ベストアンサー
- FX・外国為替取引
- メタトレーダー4の使い方
こんにちは メタトレーダー4を使って、為替の自動売買がしたいです 15分足でRSIが80以上になったら、売り建てして、5銭利益が出たら、決済。 または15分足でRSIが20以下になったら、買い建てして、5銭利益が出たら、決済。 という自動売買をしたいのですが、どうやればいいのですか? プログラムを自分で組まなければいけないのですか? 不勉強ですいません。よろしくお願いします。
- ベストアンサー
- FX・外国為替取引
- C++のプログラミングについての質問です。
C++のプログラミングについての質問です。 f(x)=\int_{1}^{0} \frac{1+e^t}{\sin(xt)}dt -0.1=0 (式を皆さんに分かってもらえるように表記する方法が分からないため、TeX表記します。) このようになるようなx2の値を求めるプログラムを教えてください。 ちなみに、定積分は積分区間は100等分して、シンプソン法と狙い撃ち法を用いて プログラムを作ってください。 P.S 狙い撃ち法は簡単に言うと x2=\frac{f(x0)-f(x1)}{x1*f(x0) - x0*f(x1)} この式を使って後はシンプソン法で求めた値を上式に突っ込むだけです。 一応自分が考えたプログラムを載せます。 間違いがあればご指摘お願いします。 ↓ // kadai5.cpp : コンソール アプリケーションのエントリ ポイントを定義します。 // #include "stdafx.h" #include <stdio.h> #include <stdlib.h> #include <math.h> int _tmain(int argc, _TCHAR* argv[]) { int t; double ta,x0=100,x1=x0-0.01,x2,S0=0,S1=0,Ds0,Ds1,fx0,fx1,y00,y01,y02,y10,y11,y12,esp=0.000001; for(;;){ for(t=0;t<=99;t=t+2){ ta=t*0.01; y00=sin(x0*ta)/(1+exp(ta)); y01=sin((x0+1)*(ta))/(1+exp(ta)); y02=sin((x0+2)*(ta))/(1+exp(ta)); Ds0=0.01*(y00+4*y01+y02)/3; S0=S0+Ds0; y10=sin(x1*ta)/(1+exp(ta)); y11=sin((x1+1)*(ta))/(1+exp(ta)); y12=sin((x1+2)*(ta))/(1+exp(ta)); Ds1=0.01*(y10+4*y11+y12)/3; S1=S1+Ds1; printf("S0=%lf \n S1=%lf",S0,S1); } fx0=S0-0.01; fx1=S1-0.01; x2=((x1*fx0)-(x0*fx1))/(fx0-fx1); printf("x=%lf \n",x2); if(fabs(x1-x2) <= esp)break; x0=x1; x1=x2; } return 0; }
- 締切済み
- C・C++・C#
- プログラミングについて質問です。
実は先日、授業で以下のような課題が出ました。 32*x^6-192*x^5+452*x^4-448*x^3+210*x^2-36*x+1=0 の 0≦X≦2 の中の解全てをNewton法で ・精度 ε = 10^(-6) 程度 ・Fortran等のプログラミング言語によってプログラムしそのリストを提出せよ。 一応、以下のように作ってみたんですが・・・ プログラム文(Java言語) public class Newton{ public static void main(String[]args){ double x,x_new; x=0; while(true){ x_new=x-(32*x*x*x*x*x*x+192*x*x*x*x*x+432*x*x*x*x+448*x*x*x+210*x*x+36*x+1)/(192*x*x*x*x*x+960*x*x*x*x+1728*x*x*x+1344*x*x+420*x+36); if(Math.abs(x_new-x)<Math.pow(10.0,-6)){ System.out.print("Answer x="); System.out.println(x); break; } else if(Math.abs(x_new-x)>Math.pow(10.0,5.0)){ System.out.println("No Solution"); break; } else{ x=x_new; } } } } 出力結果 x=-0.03407365205941606 という感じでやってみたんですけど、いまいち合ってるのかどうか分かりません。どなたかアドバイスください。
- ベストアンサー
- Java
- メタトレーダーでCloseがある値を抜けたらフラッグを立てて、変更注文
メタトレーダーでCloseがある値を抜けたらフラッグを立てて、変更注文が出せるプログラムを 考えています。簡単に書くと int start() { int Position=-1; int Flag; for(it=0;i<OrdersTotal();i++){ //ポジションチェック if(OrderSelect(i, SELECT_BY_POS) == false) break; if(OrderSymbol()==Symbol()) Position = i; } if(Position==-1){ポジションが無ければ注文。省略} else { OrderSelect(Ticket,SELECT_BY_POS); //ポジション選択 if(OrderSymbol()==Symbol()){ double EntryPrice = OrderOpenPrice(); //オープン値 //50pips以上になったらストップロス値を変更 if(EntryPrice + 50 * Point < Close[0] && Flag == 0) { Flag = 1; double SL2 = EntryPrice; MyOrderModify(SL2, 0, MAGIC); } //100pips以上になったらストップロス値を変更 else if(EntryPrice + 100 * Point < Close[0] && Flag == 1) { Flag = 2; double SL3 = EntryPrice + 50 * Point; MyOrderModify(SL3, 0, MAGIC); } //--省略 以上です。このプログラムだとフラグを保持することができません。 ティックが変わるたびにstart()が呼ばれ、フラグは0になってしまいます。 もしいい方法がありましたらご教授ください。よろしくお願いします。
- ベストアンサー
- FX・外国為替取引
お礼
なるほど、そのようですね。 しかしHelpを見れば解決するような事でしたか・・・ もっと自分で頑張ってみるべきだったかもしれませんね。。 わざわざご丁寧にありがとうございました!