【MT4/5】Meta Trader初心者専用55【EA素人】 [無断転載禁止]©2ch.net

レス数が1000を超えています。これ以上書き込みはできません。
1名無しさん@お金いっぱい。2017/08/13(日) 04:06:57.38ID:S2sGbXxW0
↓テンプレ他よろしく

952名無しさん@お金いっぱい。2018/02/25(日) 20:06:33.71ID:kYJaF8Be0
band1とband2の中身が不明

953名無しさん@お金いっぱい。2018/02/25(日) 20:20:53.52ID:/wjoe3Qp0
>>952
σの矢印表示はできていて、それにATRの条件を追加し他時に0.1以上でも矢印が表示されてしまいます。
ATR0.1以下では 表示させたくないのです。

//---- main loop
for(int i= lastbar; i>=offset; i--){
sellbuf[i]= 0;
buybuf[i]=0;
sellbuf2[i]= 0;
buybuf2[i]=0;
ATR_1buf[i]=0;

band1= iBands(NULL,0, period, deviation, 0, PRICE_CLOSE, MODE_UPPER, i);
band2= iBands(NULL,0, period, deviation, 0, PRICE_CLOSE, MODE_LOWER, i);

ATR_1 = iATR(NULL, 15, 1512, i);
double ATR_Level = 0.1;
band1buf[i]= band1;
band2buf[i]= band2;
ATR_1buf[i]= ATR_1;

if (High[i]>=band1 && ATR_1 <= ATR_Level) {
sellbuf[i]= High[i] + markerdist*Point;
if (i < 2 )
{
UD="m Down";
DoAlert(UD);
}}
if (Low[i]<=band2 && ATR_1 <= ATR_Level) {
buybuf[i]= Low[i] - markerdist*Point;
if (i < 2 )
{
UD="m Up.";
DoAlert(UD);
}}

954名無しさん@お金いっぱい。2018/02/25(日) 20:23:44.67ID:/wjoe3Qp0
>>953
>>ATR0.1以下では 表示させたくないのです。
missです。
x ATR0.1以下では 表示させたくないのです。
o ATR0.1以上では 表示させたくないのです。

955名無しさん@お金いっぱい。2018/02/25(日) 22:55:37.06ID:DKlmY9FE0
>>951
1512はどのように導き出したのかわかりませんが、14日間ではなくて、15分足14本分のATRを求めたいのでしたら、単純にperiodは14でいいと思うのですが。。

956名無しさん@お金いっぱい。2018/02/25(日) 23:37:26.45ID:/wjoe3Qp0
>>955
ATR_1 = iATR(NULL, 15, 14, i);
こちら14にしても変わらずでした。

957名無しさん@お金いっぱい。2018/02/26(月) 00:02:16.80ID:Lf513kJV0
たまに外人が作ったインジのソースコードに UniqueID って変数が入ってるのが
あるんですけど なんの意味があるんでしょうか?

958名無しさん@お金いっぱい。2018/02/26(月) 00:14:45.64ID:vJJSaAb+0
ソースを見ればどこで使われてるかわかるでしょ

959名無しさん@お金いっぱい。2018/02/26(月) 08:26:40.16ID:Nn7Ae/Op0
>>956
iは1から?

960名無しさん@お金いっぱい。2018/02/26(月) 09:50:00.12ID:DbVDza050
>>956

変数iは開いているチャート(例えば一分足)のバーの位置(最新バーが0で、古い方向に1ずつ増える)を指していますよね?

ATR_1 = iATR(NULL, 15, 14, i);
で第4引数は15分足チャートのバーの位置を指定しますから、第4引数にiを指定すると、
例えば1分足でiが3だった場合は、15分足チャートでは0または1を指定するのが正しいはずなのに3が指定され意図しない動作となります。

現在チャート(例えば1分足)のバーのiの位置に対応する15分足チャートのバーの位置は

iBarShift(NULL, PERIOD_M15, Time[i], false)

などと指定すれば求められますので、iの位置に上の値を入れるが良いと思うのです。

961名無しさん@お金いっぱい。2018/02/26(月) 12:34:58.79ID:IY4TXibT0
>>940
ObjectCreate&#0;
ObjectSet&#0;
で線を描く

962名無しさん@お金いっぱい。2018/02/26(月) 14:21:45.04ID:HWkMv+da0
>>956
できました!!!ありがとうございます!!!

963名無しさん@お金いっぱい。2018/02/26(月) 22:52:33.58ID:clSa3MCn0
MT4でもクラスを使ったオブジェクト指向プログラミングが出来るようになったと聞いて
ちょっと興味があるんだけど何か参考になるサイトって無い?

オブジェクト指向自体はC++やC#を通してさわりは把握してるけど
MT4独特のクラスの癖みたいなものを勉強できるサイトがあったら知りたい

964名無しさん@お金いっぱい。2018/02/27(火) 07:18:22.43ID:pv+t85r40
>>963
MQL5で調べた方がいいかも。
MQL4は古いサイトが多いからね

965名無しさん@お金いっぱい。2018/02/28(水) 22:42:29.80ID:0oe4F5nm0
>>964
ふむふむ
というわけでちょっと調べてクラス作ってみた
持ってるポジションをエグジットする簡単なクラスだけど
コンパイルしてみたら次の様なWarningが出てきた

possible loss of data due to type conversion

Warningだから無視してもいいんだけどなんか気になる・・・

class Position
{
private:
double m_lots;
double m_exitPrice;
double m_slipPage;
int m_ticketNumber;
color m_arrowColor;

public:
// コンストラクタ
void Position()
{}

// 決済する
void Exit()
{
OrderClose(m_ticketNumber, m_lots, m_exitPrice, m_slipPage, m_arrowColor);
}
};

966名無しさん@お金いっぱい。2018/02/28(水) 23:35:57.26ID:+H3Gyv450
>>965
スリッページは多分int型だから、double型がint型へ暗黙の型変換される
っで、暗黙の型変換でデータが失われるかもよ?ってワーニング

どうでもいいけど、暗黙の型変換、英語ではインプリシットコンバージョン
とかいうらしい。
scala弄ってた時に初めて見て何それ超カッケーと思ったw

967名無しさん@お金いっぱい。2018/02/28(水) 23:44:36.07ID:0oe4F5nm0
>>966
ほんとだ・・・スリップってint型だったのね
ありがとうノシ

968名無しさん@お金いっぱい。2018/03/03(土) 19:10:56.41ID:JRwu9ONl0
クラスオブジェクトを動的配列で作成してみようと思って次の様なプログラム書いたんだけどエラーになる

int N = 5;

MyClass obj[];
ArrayResize(obj, N);
for(int i=0; i<N; i++)
{
*obj[i] = new MyClass(Symbol(), 0);
}

-illigal operation use
'obj' - object pointer expected
'=' - illegal operation use
'=' - l-value required

静的なクラスオブジェクトの配列は作れるんだけど
動的なクラスオブジェクトの配列はどうやったら作れるんだろう?

969名無しさん@お金いっぱい。2018/03/03(土) 20:05:02.36ID:Y1BeF9fz0
>>968
よく読んでないがこういうことじゃね
http://oswald.hatenablog.com/entry/20081221/1229914058

970名無しさん@お金いっぱい。2018/03/03(土) 20:56:00.13ID:JRwu9ONl0
>>969
MT4で以下の文をコンパイルすると

NewClass[] dim = new NewClass[3];

'[' - name expected

というエラーが返されてしまうみたい
うーむ・・・

ちなみに静的クラスオブジェクトだったら以下の文でコンパイルが通った

MyClass *obj[3];
for(int i=0; i<3; i++)
{
obj[i] = new MyClass(Symbol(), 0);
}

問題は上記の"3"の部分を一般変数のNに変えて動的にしようとすると
コンパイルが通らなくなることで・・・

971すん ◆gtqmrk9NFQ 2018/03/05(月) 14:32:51.82ID:eHTwQyEu0
これでできたような気がするんですんが、そもそも、こういう事ではなかったらもうしわけないですん…。
int N = 5;
MyClass objcts[];

for(int i=0; i < N; i++)
{
MyClass obj = new MyClass(Symbol(), 0);
ArrayResize(objects, i+1);
objects[i] = obj;
}

972名無しさん@お金いっぱい。2018/03/05(月) 18:04:38.76ID:uXZX+ZCS0
USDJPYの1分足スキャルピング型EA(自動売買ツール)とサインツールを開発・公開しております。
興味がありましたら見てみてください。
http://awsedrftgyh12345.blogto.jp/archives/cat_163697.html

973名無しさん@お金いっぱい。2018/03/05(月) 20:29:04.69ID:wsEUpVen0
MT5って両建てできるようになってたのな

974名無しさん@お金いっぱい。2018/03/06(火) 18:02:38.88ID:bYSrXx3G0
>>971
これってnewしたインスタンスがリークしてね?

975名無しさん@お金いっぱい。2018/03/06(火) 20:55:44.90ID:pQuQAezh0
>>974
日本語でおk

976名無しさん@お金いっぱい。2018/03/06(火) 21:14:33.89ID:VhUpbW8s0
>>971
> MyClass obj = new MyClass(Symbol(), 0);

この行でエラーになっちゃうみたい。

ちなみに以下の様に変更することでコンパイルエラーはでなくなった。
ちょっと強引なやり方なのでこれがふさわしいのかは分からないけど・・・

int N = 5;

MyClass *obj[];
ArrayResize(obj, N);
for(int i=0; i<N; i++)
{
 obj[i] = new MyClass(Symbol(), 0);
}

MQL4って微妙にC++と流儀が違うのね・・・
CとC++を微妙に混ぜたような・・・

977名無しさん@お金いっぱい。2018/03/06(火) 21:41:19.01ID:RFab8X5G0
どのmt4でも使える無料EAってありませんか

978名無しさん@お金いっぱい。2018/03/06(火) 22:27:05.39ID:DCB7BPxU0
そりゃありますよ

979名無しさん@お金いっぱい。2018/03/06(火) 22:39:50.83ID:YQCio3CT0
山ほどある
稼げないけどね

980名無しさん@お金いっぱい。2018/03/06(火) 23:12:27.20ID:pQuQAezh0
元々mt4に入っとるやろ

981名無しさん@お金いっぱい。2018/03/06(火) 23:35:40.18ID:1lbGcusr0
どのmt4でも使える(稼げる)無料EAってありませんか

982名無しさん@お金いっぱい。2018/03/07(水) 06:29:30.58ID:0ALx2sOl0
とりあえず“ベクター”か“00”で検索してみたら

983名無しさん@お金いっぱい。2018/03/08(木) 23:29:57.38ID:DgULQ00t0
ku-chartみたいな他通貨を呼び出すインジケーターが、バックテストで動かなくて困ってるんですが、何かいい方法はありませんか?
ファイル関数系とdll系は苦手でして。
MT5では動くなら、今から勉強するんですけど。。

984名無しさん@お金いっぱい。2018/03/09(金) 00:29:04.58ID:vqCQDDpS0
MT5では普通に動く。MT4では一工夫いるがやり方はググればすぐ見つかる。

985名無しさん@お金いっぱい。2018/03/09(金) 00:32:17.92ID:vqCQDDpS0
あー、テクニカル指標の計算を自分でプログラム書かないといけないからめんどくさいね。難しいわ。

986名無しさん@お金いっぱい。2018/03/09(金) 01:24:32.87ID:woTxOxP20
>>983
ほか通貨のデータあれば読み込まない?

987名無しさん@お金いっぱい。2018/03/09(金) 01:41:48.33ID:mPVO2vfC0
983です。
動かないですね。。
ヴィジュアルチャートに貼り付けても、呼び出した時だけ表示されて、その後は止まってしまいます。。
mt5を頑張って勉強しようかな

988名無しさん@お金いっぱい。2018/03/09(金) 01:51:40.96ID:Klxr41HF0
最新足がダメなだけで確定足使う分には別ペア参照でも問題ないと思うけど
最新足がテストのペアしか更新されない

989名無しさん@お金いっぱい。2018/03/09(金) 01:57:39.26ID:vqCQDDpS0
恥を承知で自作関数を晒してみる。これをku-chartにコピペして
iMA → iMA_Custom に書き換えれはテスターでも動くはず。

double iMA_Custom(string symbol, int timeframe, int maperiod, int mashift, int mamethod, int price, int shift)
{
double ret = 0;

if(IsTesting())
{
datetime dt = iTime(_Symbol, timeframe, shift);
int collection = 1;
if(mamethod == MODE_EMA || mamethod == MODE_SMMA) collection = 16;
if(Bars(symbol, timeframe) - iBarShift(symbol, timeframe, dt, false) < maperiod * collection) return(0);

double ocBuf[];
ArrayResize(ocBuf, maperiod * collection);
if(price == PRICE_OPEN && CopyOpen(symbol, timeframe, iBarShift(symbol,timeframe,dt,false) + mashift, maperiod * collection, ocBuf) < 0) return(0);
if(price == PRICE_HIGH && CopyHigh(symbol, timeframe, iBarShift(symbol,timeframe,dt,false) + mashift, maperiod * collection, ocBuf) < 0) return(0);
if(price == PRICE_LOW && CopyLow(symbol, timeframe, iBarShift(symbol,timeframe,dt,false) + mashift, maperiod * collection, ocBuf) < 0) return(0);
if(price == PRICE_CLOSE && CopyClose(symbol, timeframe, iBarShift(symbol,timeframe,dt,false) + mashift, maperiod * collection, ocBuf) < 0) return(0);

ret = iMAOnArray(ocBuf, 0, ArrayRange(ocBuf, 0) - maperiod * (collection - 1), 0, mamethod, 0);
ArrayFree(ocBuf);
}else{
ret = iMA(symbol,timeframe,maperiod,mashift,mamethod,price,shift);
}

return(ret);
}

990名無しさん@お金いっぱい。2018/03/09(金) 02:03:42.73ID:vqCQDDpS0
あ、ちょっとバグがあるみたい。すみません。

991名無しさん@お金いっぱい。2018/03/09(金) 02:06:54.11ID:vqCQDDpS0
バグっていうか少し誤差があるみたい。
iMA(…) - iMA_Custom(…) が0にならないわ。

992名無しさん@お金いっぱい。2018/03/09(金) 11:34:52.32ID:mPVO2vfC0
>>989
ありがとう。帰ってから試してみます

993名無しさん@お金いっぱい。2018/03/09(金) 14:22:21.29ID:RVvV5Obn0
https://mt4-ea.com/free/
このサイトで配布してるやつ普通に聖杯だよ

994名無しさん@お金いっぱい。2018/03/09(金) 14:28:06.23ID:RVvV5Obn0
ちな口座縛りあるからコピーツール推奨な

9959892018/03/09(金) 18:00:44.72ID:vqCQDDpS0
>>992
ちょっと間違ってたので訂正します。たぶんこれでいけるかと。

double iMA_Custom(string symbol, int timeframe, int maperiod, int mashift, int mamethod, int price, int shift)
{
double ret = 0;

if(IsTesting())
{
int collection = 1;
if(mamethod == MODE_EMA || mamethod == MODE_SMMA) collection = 16;
if(Bars(symbol, timeframe) - shift < maperiod * collection) return(0);

double ocBuf[];
ArrayResize(ocBuf, maperiod * collection);
if(price == PRICE_OPEN && CopyOpen(symbol, timeframe, shift + mashift, maperiod * collection, ocBuf) < 0) return(0);
if(price == PRICE_HIGH && CopyHigh(symbol, timeframe, shift + mashift, maperiod * collection, ocBuf) < 0) return(0);
if(price == PRICE_LOW && CopyLow(symbol, timeframe, shift + mashift, maperiod * collection, ocBuf) < 0) return(0);
if(price == PRICE_CLOSE && CopyClose(symbol, timeframe, shift, maperiod * collection, ocBuf) < 0) return(0);

ret = iMAOnArray(ocBuf, 0, ArrayRange(ocBuf, 0) - maperiod * (collection - 1), 0, mamethod, 0);
ArrayFree(ocBuf);
}else{
ret = iMA(symbol,timeframe,maperiod,mashift,mamethod,price,shift);
}

return(ret);
}

9969892018/03/09(金) 18:04:17.21ID:vqCQDDpS0
うああ、PRICE_CLOSEのとこ訂正しわすれてた。↓でお願いします。

if(price == PRICE_CLOSE && CopyClose(symbol, timeframe, shift + mashift, maperiod * collection, ocBuf) < 0) return(0);

997名無しさん@お金いっぱい。2018/03/09(金) 20:20:58.67ID:hyH3cZd40
>>993
どれ?

998名無しさん@お金いっぱい。2018/03/09(金) 20:46:12.74ID:RVvV5Obn0
>>997
5つ全部だよ。

バックテストしてみればどれだけすごいかわかる。

999名無しさん@お金いっぱい。2018/03/09(金) 20:58:01.96ID:woTxOxP20
>>998
通貨指定と勝率、plラインが典型的なあれでワロタ。ただのアフィ目的は消えてくれるかな?

1000名無しさん@お金いっぱい。2018/03/09(金) 21:01:55.94ID:RVvV5Obn0
>>999
デモ口座で稼働してコピーツールで取引口座で売買するんだよ。

ibに関しては自分でいい所見つけてくれw

10011001Over 1000Thread
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 208日 16時間 54分 59秒

10021002Over 1000Thread
5ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。


───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────

会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。

▼ プレミアム会員登録はこちら ▼
https://premium.5ch.net/

▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php

レス数が1000を超えています。これ以上書き込みはできません。