人気マンガがだれでも無料♪電子コミック読み放題!!

MT4で自分のインジどおりの指標で自動売買させたく
MQL4を独学勉強中の者です。
(現在、皆様もMQL5へ移行中ではあると思いますが)

iCustom関数では

iCustom(通貨ペア,時間足,インディケータ名,,...,インデックス,バーシフト);

のような記述だと思いますが、バーシフトの部分を

「0(現在)から何本前の足まで」

と範囲を持たせたい時には、どのような記述をすればよいでしょうか?
お知恵をお願い致します。

A 回答 (1件)

読み込ませたい本数分をループさせるって事になりますが…。


ループさせる回数をintで指定するようにして
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Qシフトキーの↑ってどういう意味があるんですか

シフトキーに「↑(実際には白抜き⇧)Shift」って印字されているんですが、この家のマークのような上矢印はどういう意味があるんでしょうか。
MacもWindowsもこのマークがついているみたいですね。ということは、キーボードの元になったタイプライタに関係があるように思うんですが・・・。

誰か教えてください。

Aベストアンサー

「上側の文字を印字しますよ!」という意味だと思います。
1の上は!、4の上は$ですよね。タイプライタの場合は同じバー上にキーが対応していて、シフトを押しながらキーをたたくと印字する棒が全体に上にあがって棒の下にある文字を刻印します。

QMT4 「iCustom関数での条件記述について」

お尋ねします。初心者にてNETや本を参考にしつつEAを作成しております。

EA作成に"MA Candles"というインジを使おうと考えています。
ある条件にてローソク足の色を「青or赤」にて表示するものです。

たとえばエントリーにて下記条件を記述した場合、

if( iCustom(NULL,0,"MA Candles", 2,1) □□□□

□□□□の箇所に「 color 」を指定することは可能でしょうか?

根本的に間違っているのか、はたまたもっと単純なのか。。
皆目見当がつかなくなってます。


検索しましたが有用な情報が得られず、あれこれトライしましたがエラー吐きまくりです。

よろしくお願いします。

Aベストアンサー

iCustom関数はインジケーターで定義されているindicator_buffersの配列?の値を取得するためのものなので、この場合はcolorを指定することはできません。

つまり、iCustom(NULL,0,"MA Candles", 2,1) ですと、"MA Candles"というインジケーターの3つ目のbufferの現在から2本目のバーに対応する値を取得することになります。

実際のインジケーター・プログラムで言うと、Candle1[1]の値になりますね。

色の指定はプログラムの中で実施されています。質問者の方の目的を考えますと、色を直接読み取るように頑張るのではなく、色の決定ロジックを理解してbufferの値を使って色を算出する(つまり、トレンドを見る)ように考えると良いです。

ただ、
当該インジケーター自体は単に期間5と25のクロスでトレンドを見ているだけなので、一般にこの分析手法だけでエッジがあるとは思えないので、私などは近づかないインジケーターです(個人的な趣味なので、使いようによっては意味があるかも知れませんが。。。)。
念のため、このインジケーターの算出ロジックを明確にするため、期間5(黄線)と期間25(緑線)を表示させてみました(添付画像)。
ん~、どうみても、、、使えそうにないです。私的には。

すいません、余分なコメントが多すぎました。。。

iCustom関数はインジケーターで定義されているindicator_buffersの配列?の値を取得するためのものなので、この場合はcolorを指定することはできません。

つまり、iCustom(NULL,0,"MA Candles", 2,1) ですと、"MA Candles"というインジケーターの3つ目のbufferの現在から2本目のバーに対応する値を取得することになります。

実際のインジケーター・プログラムで言うと、Candle1[1]の値になりますね。

色の指定はプログラムの中で実施されています。質問者の方の目的を考えますと、色を直接読み取るように頑張...続きを読む

QSHIFT(シフト)

えーとですね、
>(英和)shift[ift] (三省堂「エクシード英和辞典」より)
━━v.変える[わる], 移す[る]; (ギアを)入れ替える ((up, down)); やりくりする[して暮す]; (責任を)転嫁する; ごまかす; 除く; 〔英話〕 素早く動く; 【言】(音を)推移させる.
・shift foroneself 自力でやりくりする.
・shift off (責任などを)押しつける ((on)).
━━n.変更, 変化, 交替; 移動, 移行; (時にpl.) 方策, やりくり(算段), ごまかし; ゆったりしたドレス; シュミーズ; 【球技】守備位置の移動; 交替の組; 交代制勤務(時間), (特定の勤務シフトの)勤務班[組]; 【言】音韻推移; 【コンピュータ】シフト ((桁送り)); シフト(キー).
・for a shift 間に合わせに.
・make (a) shift やりくりする ((with)).
・one'slast shift 最後の手段.
>まあ・・
 車の(人の心の)ギヤーをロー>セカンド>サード>・・>オーバードライブ
 >クルーズコントロールとかに切り替える時が来たのかもね?
 イエス>ブッダ>おやさま>〇〇って所でしょ?
 貴方はシフトアップしてCANからPARDONにそれから何処にシフトアップしますか?
 教えて下さい!、お願いします!!!
>YouTube - GUNDAM: Tilt-Shift

えーとですね、
>(英和)shift[ift] (三省堂「エクシード英和辞典」より)
━━v.変える[わる], 移す[る]; (ギアを)入れ替える ((up, down)); やりくりする[して暮す]; (責任を)転嫁する; ごまかす; 除く; 〔英話〕 素早く動く; 【言】(音を)推移させる.
・shift foroneself 自力でやりくりする.
・shift off (責任などを)押しつける ((on)).
━━n.変更, 変化, 交替; 移動, 移行; (時にpl.) 方策, やりくり(算段), ごまかし; ゆったりしたドレス; シュミーズ; 【球技】守備位置の移動; 交替の組; ...続きを読む

Aベストアンサー

他人への迷惑が、天理教の教える道ですか?

QMT4(MQL4)プログラミングで動きません。教えて下さい。

MT4(MQL4)プログラミングで動きません。教えて下さい。
下記のようなプログラムを勉強中なのですが、マウスをクリックしても何しても価格を取得してくれません。
ネットに検索すれば、下記のようなサンプルプログラムが幾つも紹介されてますが、全く動きません。

私のやりたいことは、マウスでクリックした場所の価格を取得しそれを元に水平線を描きたいのです。

ご存じの方がおられましたら、ご教授下さいませ。
宜しくお願い致します。



//+------------------------------------------------------------------+
//| expert start function |
//+------------------------------------------------------------------+
int start()
{
double drop_price=WindowPriceOnDropped();
datetime drop_time=WindowTimeOnDropped();
//---- may be undefined (zero)
if(drop_time>0)
{
ObjectCreate("Dropped price line", OBJ_HLINE, 0, drop_price,0);
ObjectCreate("Dropped time line", OBJ_VLINE, 0, drop_time,0);
}
//----
return(0);
}
//+------------------------------------------------------------------+

MT4(MQL4)プログラミングで動きません。教えて下さい。
下記のようなプログラムを勉強中なのですが、マウスをクリックしても何しても価格を取得してくれません。
ネットに検索すれば、下記のようなサンプルプログラムが幾つも紹介されてますが、全く動きません。

私のやりたいことは、マウスでクリックした場所の価格を取得しそれを元に水平線を描きたいのです。

ご存じの方がおられましたら、ご教授下さいませ。
宜しくお願い致します。



//+-----------------------------------------------------...続きを読む

Aベストアンサー

>マウスのドラッグオン、ドロップとばかし思っておりました。いわゆる、マウスのクリック。

Drag&Drop と、マウスのクリックはちがいます。
Drag&Drop とは、「マウスをあるアイテム上で左クリックすることでそのアイテムをつかむことができ(Drag)、左クリックしたままマウスカーソルを移動して、目的の場所で左ボタンを離す(Drop)」という操作を指します。

たとえば、提示されているソースをScriptとして保存し、ナビゲーターウィンドウでDragし、チャート上にDropすると、目的の場所に線を引くことができます。ただしそれっきりですが。。。


>その他の手段でメニューのようなものが作れれば必要ないのですが、巷によくありますMT4のアプリには、文字の内容に応じて各関数の処理をするようなものがあります

すみませんが、私はそのようなものを見たことがなく、またMAを作るのに必要ではないので、知識がありません。お力になれそうにありません。

QC言語で確実に論理右シフトをする方法。

算術右シフトと論理右シフトをC言語にて実装しようとしています。
『ハッカーのたのしみ』にある論理右シフトを用いて算術右シフトを作る方法を使おうと思っているのですが、C言語で確実に論理右シフトするにはどうすればよいのでしょうか。

int x;
(unsigned int) x >>= n;
とするとgccではゼロ拡張してくれるようなのですが、
use of cast expressions as lvalues is deprecated
というWarningが出ます。
この方法が確実とは思えませんし、
unsigned int xx;
xx = x;
も処理系依存と聞きます。
出来ればWarningが出ない形で解決したいのですが、どうすればよいのでしょうか。
教えてください。

Aベストアンサー

ああ, よく考えれば「最初から unsigned で全部処理をする」というのが最も正しい解のような気がします.
それはさておき, 右シフト演算子の左オペランドが signed で負数の場合, 結果は「実装定義」です. 未定義ではありません.
ついでにいうと, signed → unsigned のキャストは 6.3.1.3節のパラグラフ2 にあるように変換されます. 本当は JIS を参照するのが正しいんだけど ISO しか持ってないのでこっちを参照すると
If the new type is unisgned, the value is converted by repeatedly adding or subtracting one more than the maximum value that can be represented in the new type until the value is in the range of the new type.
となっていて, signed int → unsigned int の場合には実質的に「もともとが正ならそのまま, 負なら UINT_MAX+1 を加えた値」となります. ということで 2の補数を使っていればたいていはビットパターンが変化しません.
逆に unsigned → signed の場合は「signed で表現できればそのまま, 表現できなければ実装定義」となります.
ちなみに C++ だと signed → unsigned の変換は「2^n を法として最小の整数」で, 2の補数を使ってる場合には同じことですね.
ん~, 「unsigned int xx; xx = x; も処理系依存」というのも, 本当にここまで考えて書いているのかなぁ....

ああ, よく考えれば「最初から unsigned で全部処理をする」というのが最も正しい解のような気がします.
それはさておき, 右シフト演算子の左オペランドが signed で負数の場合, 結果は「実装定義」です. 未定義ではありません.
ついでにいうと, signed → unsigned のキャストは 6.3.1.3節のパラグラフ2 にあるように変換されます. 本当は JIS を参照するのが正しいんだけど ISO しか持ってないのでこっちを参照すると
If the new type is unisgned, the value is converted by repeatedly adding or subtracti...続きを読む

QMT4(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()という組込み関数はデータを取得できないのでしょいうか?

こんにちは、どうかよろしくお願いします
MT4(MQL)をはじめたばかりです。
基本的な質問で恐縮ですが、根本が理解できておりません。
幾つか教えて頂きたいのです。

<質問1>
MQLで記述したコードはチャートに組み込んで実行していくのは理解できたのですが、2つの異なる時間枠(週足と日足)などの複合的な条件で売買をするシステムは2つのチャートが必要です。このような事はMQLで実装可能でしょうか?
例えば、週足のテクニカル指標のシグナルと日足のテクニカル指標のシグナルとを確認した上で売買を実行...続きを読む

Aベストアンサー

以下、ご回答します。

【質問1】
ご要望のことは実装可能です。例えば、RSIというテクニカル指標について言えば、
第2引数に、タイムフレーム(分足)を指定できます。これを複数、違えて指定すれば
複数の分足についてのRSIが計算できます。
また、ローソク足については、Open[]などの配列ではチャートの分足のみになって
しまいますが、iOpenという関数で、タイムフレームを違えて指定できます。

【質問2】
Custom Indicator でテクニカル指標(MA)と、EAで作成したテクニカル指標(MA)
との関係付けはありません。

EAの中にコーディングされたものだけで、EAは動作します。

【質問3】
チャートにMAが表示されていなくても、EAの中でMAを計算すれば、データは取得できます。
EAのコードだけで、EAの動作はなされます。


Qシフトを押したら英語小文字に

どこを触ったかシフトを押したら半角英語小文字になります。

逆になってしまいました。

どなたか戻す方法を教えてください。お願いします。

Aベストアンサー

 
Shiftキーを押しながらCapsLockを押してCapsLockのランプが消えた状態にして下さい。
同じ操作をしてCapsLockのランプが点灯した状態になると言われる様になります。

 

QMT4(メタトレーダー)でEAを開発中なのですが、MQL4にはどう言う

MT4(メタトレーダー)でEAを開発中なのですが、MQL4にはどう言う訳か関数が有りません。

それは、マウスでクリックした場所の値を返してくれる関数が無いのです。
どういうことかと言えば、メニューの様な文字列を表示し、その文字列をクリックすれば目的のEAや関数が起動するというプログラムを組みたいのです。

巷のメタトレーダーを見ていると、結構組み込んであるのですが、そのプログラミング方法が分かりません。
もし、ご存じの方、教えても良いぞと思われる方がいらっしゃいましたら、どうかご教授下さいませ。
助けて下さいませ。

宜しくお願い致します。

Aベストアンサー

私も書くことはできないのですが、お困りのようですので
日本でも有数といわれるプログラマーのかたのブログを紹介します。
きっと力になってくれると思いますよ。

参考URL:http://d.hatena.ne.jp/fai_fx/

Qシフト演算子について・・・意味がわかりません(T_T)

左シフト演算子<<は最上位ビットの上位を削除して最下位に0を追加、
右シフト演算子>>は最下位ビットが削除されて、最上位ビットに最上位ビットと同じ値が補充される、
論理右シフト>>>は最下位ビット削除され、最上位に0が補充される。

と、ここまではわかりました・・・

ある問題で

int n = -1>> 31;

でnはいくつになるか?というのがあったんですが、
解説の意味がわかりません。
回答はー1です。
「>>演算子によるシフトでは符号ビットが拡張される」
意味がわかりません・・・(@_@)
「>>>演算子であったなら、符号ビットがゼロになるのでN=1となる」
え・・・???!!!
ふごーびっと???

シフト演算子ですから、
「-1の31こ右にビットをシフトする」
んだな・・・と思ったところ、
まったくどう考えてよいのかわからず、
回答を見たところ、余計わからなくなりました。

だれかたすけてください(T_T)

Aベストアンサー

右シフトの動作はこちらの通りです。
http://www.microsoft.com/japan/msdn/library/ja/jscript7/html/jsoprrshift.asp

右に1ビットシフトしたとき、全体のビットが右に1ビットシフトし、
最上位ビットには符号ビットが入ります。
-1は、全ビットが1で、符号ビット(MSB=最上位ビット)も1ですから、
何ビット右シフトしても常に-1です。

参考URL:http://www.microsoft.com/japan/msdn/library/ja/jscript7/html/jsoprrshift.asp

QMT4(メタトレーダー)自動売買エラーについて

お願いします!教えてください。
現在VPSサーバーにてEAで自動売買をしております。
ここずっと順調に取引してたのですが、今朝急にVPSのメンテかエラーでサーバーが再起動したみたいで、
MT4も再起動され、事前にスタートアップのフォルダに入れてたんで問題なく立ち上がったのですが、
立ち上げたら『(EA名)のパラメーターのエラー』にみたいな窓が出ました。
とっさの事でそのエラー名を覚えてないのですが、
次の瞬間勝手に6つポジションを持ちました。

このEAは最初にショートとロングを3つずつ持つ仕様なので、
EAがエラーになったことで現在のポジション関係なく、リスタートしたということでしょうか?
再起動前からポジションを複数持ってるのですが、取引に問題は出るのでしょうか?
エラー内容についてご存知の方、ご教授願いします!

Aベストアンサー

多くのEAは再起動してもポジション認識します。
6ポジ持ったということは、再起動してはいけないEAということなのでしょう。


人気Q&Aランキング

おすすめ情報