<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
		xmlns:xhtml="http://www.w3.org/1999/xhtml"
>

<channel>
	<title>メタトレーダープログラミング めたぷろ &#187; プログラミング</title>
	<atom:link href="http://metatraderfx.net/tag/%e3%83%97%e3%83%ad%e3%82%b0%e3%83%a9%e3%83%9f%e3%83%b3%e3%82%b0/feed/" rel="self" type="application/rss+xml" />
	<link>http://metatraderfx.net</link>
	<description>メタトレーダーを使ったプログラミング方法を説明していきます。</description>
	<lastBuildDate>Tue, 28 Dec 2010 13:58:56 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.6</generator>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://metatraderfx.net/tag/%e3%83%97%e3%83%ad%e3%82%b0%e3%83%a9%e3%83%9f%e3%83%b3%e3%82%b0/feed/" />
		<item>
		<title>FXメタトレーダー実践プログラミング</title>
		<link>http://metatraderfx.net/metatrader-beginner/fx%e3%83%a1%e3%82%bf%e3%83%88%e3%83%ac%e3%83%bc%e3%83%80%e3%83%bc%e5%ae%9f%e8%b7%b5%e3%83%97%e3%83%ad%e3%82%b0%e3%83%a9%e3%83%9f%e3%83%b3%e3%82%b0/</link>
		<comments>http://metatraderfx.net/metatrader-beginner/fx%e3%83%a1%e3%82%bf%e3%83%88%e3%83%ac%e3%83%bc%e3%83%80%e3%83%bc%e5%ae%9f%e8%b7%b5%e3%83%97%e3%83%ad%e3%82%b0%e3%83%a9%e3%83%9f%e3%83%b3%e3%82%b0/#comments</comments>
		<pubDate>Thu, 08 Jul 2010 14:35:13 +0000</pubDate>
		<dc:creator>kei</dc:creator>
				<category><![CDATA[FXについて]]></category>
		<category><![CDATA[MQL4]]></category>
		<category><![CDATA[インジケータ]]></category>
		<category><![CDATA[メタトレーダープログラミング]]></category>
		<category><![CDATA[メタトレーダー入門]]></category>
		<category><![CDATA[自動売買]]></category>
		<category><![CDATA[インジケーター]]></category>
		<category><![CDATA[トレイリングストップ]]></category>
		<category><![CDATA[プログラミング]]></category>
		<category><![CDATA[入門]]></category>

		<guid isPermaLink="false">http://metatraderfx.net/?p=511</guid>
		<description><![CDATA[お久しぶりです。
年末からやたら忙しい状態がつづいていて、部署が変わったから楽になるかと思ったら、もっとひどくなってしまいました。
そんな訳で、更新もままならない状況です。
楽しみにしている方には、申し訳ないと思います。
出来る範囲で、ゆっくりとやっていきたいので期待せずにまっていてください。
ちょっと前に見つけて、今日買った本について
「FXメタトレーダー実践プログラミング」という本です。





FXメタトレーダー実践プログラミング

価格：2,940円（税込、送料別）





前作の「FXメタトレーダー入門」の続編に当たるものです。





FXメタトレーダー入門

価格：2,940円（税込、送料別）





FXメタトレーダー実践プログラミングは、結構いいですよ。
前作は、メタトレーダーの使い方とプログラムの触りでしたが、今回のはやりたい事をだいたい実現できるだけの情報が載っています。
目次はこんな感じ。

第１章 メタトレーダーの構成を知る（メタトレーダーを使いこなす前に／メタトレーダーとＭＱＬ４プログラミング）
第２章 カスタム指標プログラムで独自のテクニカル分析（カスタム指標プログラムの基本／組み込みテクニカル指標関数の使い方／オブジェクトを利用したカスタム指標／テクニカル指標のデータをファイルに出力）
第３章 トレード関数で柔軟な注文を実現（トレード関数を使いこなす／トレード時のエラーチェック／トレード関数のライブラリー化／エキスパートプログラムによる注文）
第４章 エキスパートプログラムでシステムトレード自由自在（売買システムの基本構成／仕掛けのパターン／手仕舞いのパターン／そのほかのシステムのパターン／ストラテジーテスターでの検証）
第５章 ＭＱＬ４をさらに使いこなしたい人のために（データの型／プリプロセッサ命令／変数の種類／配列の種類／数学関数／オブジェクトの表示／ファイルの入出力／文字列に関する関数／日時に関する関数／マーケット情報／口座情報／関数のライブラリー化）
付録Ａ ＭＱＬ４関数一覧
付録Ｂ 参考図書

いい感じで知りたい情報が分かります。
多少なり、プログラムの経験があればそれなりのプログラムが組めるようになります。

興味のある方は、本屋で立ち読みしてみてください。

]]></description>
			<content:encoded><![CDATA[<p style="text-align: left; ">お久しぶりです。</p>
<p style="text-align: left; ">年末からやたら忙しい状態がつづいていて、部署が変わったから楽になるかと思ったら、もっとひどくなってしまいました。</p>
<p style="text-align: left; ">そんな訳で、更新もままならない状況です。</p>
<p style="text-align: left; ">楽しみにしている方には、申し訳ないと思います。</p>
<p style="text-align: left; ">出来る範囲で、ゆっくりとやっていきたいので期待せずにまっていてください。</p>
<p style="text-align: left; ">ちょっと前に見つけて、今日買った本について</p>
<p style="text-align: left; ">「<a href="http://hb.afl.rakuten.co.jp/hgc/09f4ab6a.89c21c1d.09f4ab6b.318ea709/?pc=http%3a%2f%2fitem.rakuten.co.jp%2fbook%2f6198986%2f%3fscid%3daf_ich_link_txt&amp;m=http%3a%2f%2fm.rakuten.co.jp%2fbook%2fi%2f13286562%2f" target="_blank">FXメタトレーダー実践プログラミング</a>」という本です。</p>
<table style="text-align: left; " border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td valign="top">
<div style="border: 1px solid; margin: 0px; padding: 6px 0px; width: 160px; text-align: center; float: left;"><a href="http://hb.afl.rakuten.co.jp/hgc/09f4ab6a.89c21c1d.09f4ab6b.318ea709/?pc=http%3a%2f%2fitem.rakuten.co.jp%2fbook%2f6198986%2f%3fscid%3daf_ich_link_tbl&amp;m=http%3a%2f%2fm.rakuten.co.jp%2fbook%2fi%2f13286562%2f" target="_blank"><img src="http://hbb.afl.rakuten.co.jp/hgb/?pc=http%3a%2f%2fthumbnail.image.rakuten.co.jp%2f%400_mall%2fbook%2fcabinet%2f7759%2f77599090.jpg%3f_ex%3d128x128&amp;m=http%3a%2f%2fthumbnail.image.rakuten.co.jp%2f%400_mall%2fbook%2fcabinet%2f7759%2f77599090.jpg%3f_ex%3d80x80" border="0" alt="FXメタトレーダー実践プログラミング" /></p>
<p style="font-size:12px;line-height:1.4em;text-align:left;margin:0px;padding:2px 6px">FXメタトレーダー実践プログラミング</p>
<p></a></p>
<p style="font-size:12px;line-height:1.4em;text-align:left;margin: 0px;padding:2px 6px">価格：2,940円（税込、送料別）</p>
</div>
</td>
</tr>
</tbody>
</table>
<p style="text-align: left; ">前作の「<a href="http://hb.afl.rakuten.co.jp/hgc/09f4ab6a.89c21c1d.09f4ab6b.318ea709/?pc=http%3a%2f%2fitem.rakuten.co.jp%2fbook%2f5221871%2f%3fscid%3daf_ich_link_txt&amp;m=http%3a%2f%2fm.rakuten.co.jp%2fbook%2fi%2f12655817%2f" target="_blank">FXメタトレーダー入門</a>」の続編に当たるものです。</p>
<table style="text-align: left; " border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td valign="top">
<div style="border: 1px solid; margin: 0px; padding: 6px 0px; width: 160px; text-align: center; float: left;"><a href="http://hb.afl.rakuten.co.jp/hgc/09f4ab6a.89c21c1d.09f4ab6b.318ea709/?pc=http%3a%2f%2fitem.rakuten.co.jp%2fbook%2f5221871%2f%3fscid%3daf_ich_link_tbl&amp;m=http%3a%2f%2fm.rakuten.co.jp%2fbook%2fi%2f12655817%2f" target="_blank"><img src="http://hbb.afl.rakuten.co.jp/hgb/?pc=http%3a%2f%2fthumbnail.image.rakuten.co.jp%2f%400_mall%2fbook%2fcabinet%2f7759%2f77599063.jpg%3f_ex%3d128x128&amp;m=http%3a%2f%2fthumbnail.image.rakuten.co.jp%2f%400_mall%2fbook%2fcabinet%2f7759%2f77599063.jpg%3f_ex%3d80x80" border="0" alt="FXメタトレーダー入門" /></p>
<p style="font-size:12px;line-height:1.4em;text-align:left;margin:0px;padding:2px 6px">FXメタトレーダー入門</p>
<p></a></p>
<p style="font-size:12px;line-height:1.4em;text-align:left;margin: 0px;padding:2px 6px">価格：2,940円（税込、送料別）</p>
</div>
</td>
</tr>
</tbody>
</table>
<p style="text-align: left; "><a href="http://hb.afl.rakuten.co.jp/hgc/09f4ab6a.89c21c1d.09f4ab6b.318ea709/?pc=http%3a%2f%2fitem.rakuten.co.jp%2fbook%2f6198986%2f%3fscid%3daf_ich_link_txt&amp;m=http%3a%2f%2fm.rakuten.co.jp%2fbook%2fi%2f13286562%2f" target="_blank">FXメタトレーダー実践プログラミング</a>は、結構いいですよ。</p>
<p style="text-align: left; ">前作は、メタトレーダーの使い方とプログラムの触りでしたが、今回のはやりたい事をだいたい実現できるだけの情報が載っています。</p>
<p style="text-align: left; ">目次はこんな感じ。</p>
<ul>
<li>第１章 メタトレーダーの構成を知る（メタトレーダーを使いこなす前に／メタトレーダーとＭＱＬ４プログラミング）</li>
<li>第２章 カスタム指標プログラムで独自のテクニカル分析（カスタム指標プログラムの基本／組み込みテクニカル指標関数の使い方／オブジェクトを利用したカスタム指標／テクニカル指標のデータをファイルに出力）</li>
<li>第３章 トレード関数で柔軟な注文を実現（トレード関数を使いこなす／トレード時のエラーチェック／トレード関数のライブラリー化／エキスパートプログラムによる注文）</li>
<li>第４章 エキスパートプログラムでシステムトレード自由自在（売買システムの基本構成／仕掛けのパターン／手仕舞いのパターン／そのほかのシステムのパターン／ストラテジーテスターでの検証）</li>
<li>第５章 ＭＱＬ４をさらに使いこなしたい人のために（データの型／プリプロセッサ命令／変数の種類／配列の種類／数学関数／オブジェクトの表示／ファイルの入出力／文字列に関する関数／日時に関する関数／マーケット情報／口座情報／関数のライブラリー化）</li>
<li>付録Ａ ＭＱＬ４関数一覧</li>
<li>付録Ｂ 参考図書</li>
</ul>
<p style="text-align: left; ">いい感じで知りたい情報が分かります。</p>
<p style="text-align: left; ">多少なり、プログラムの経験があればそれなりのプログラムが組めるようになります。</p>
<p style="text-align: left; ">
<p style="text-align: left; ">興味のある方は、本屋で立ち読みしてみてください。</p>
<p style="text-align: left; ">
]]></content:encoded>
			<wfw:commentRss>http://metatraderfx.net/metatrader-beginner/fx%e3%83%a1%e3%82%bf%e3%83%88%e3%83%ac%e3%83%bc%e3%83%80%e3%83%bc%e5%ae%9f%e8%b7%b5%e3%83%97%e3%83%ad%e3%82%b0%e3%83%a9%e3%83%9f%e3%83%b3%e3%82%b0/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://metatraderfx.net/metatrader-beginner/fx%e3%83%a1%e3%82%bf%e3%83%88%e3%83%ac%e3%83%bc%e3%83%80%e3%83%bc%e5%ae%9f%e8%b7%b5%e3%83%97%e3%83%ad%e3%82%b0%e3%83%a9%e3%83%9f%e3%83%b3%e3%82%b0/" />
	</item>
		<item>
		<title>いろんな通貨ペアを一緒に表示したい</title>
		<link>http://metatraderfx.net/metatrader-beginner/%e3%81%84%e3%82%8d%e3%82%93%e3%81%aa%e9%80%9a%e8%b2%a8%e3%83%9a%e3%82%a2%e3%82%92%e4%b8%80%e7%b7%92%e3%81%ab%e8%a1%a8%e7%a4%ba%e3%81%97%e3%81%9f%e3%81%84/</link>
		<comments>http://metatraderfx.net/metatrader-beginner/%e3%81%84%e3%82%8d%e3%82%93%e3%81%aa%e9%80%9a%e8%b2%a8%e3%83%9a%e3%82%a2%e3%82%92%e4%b8%80%e7%b7%92%e3%81%ab%e8%a1%a8%e7%a4%ba%e3%81%97%e3%81%9f%e3%81%84/#comments</comments>
		<pubDate>Tue, 08 Dec 2009 15:15:46 +0000</pubDate>
		<dc:creator>kei</dc:creator>
				<category><![CDATA[FXについて]]></category>
		<category><![CDATA[インジケータ]]></category>
		<category><![CDATA[メタトレーダー入門]]></category>
		<category><![CDATA[インジケーター]]></category>
		<category><![CDATA[スキャルピング]]></category>
		<category><![CDATA[プログラミング]]></category>
		<category><![CDATA[本]]></category>
		<category><![CDATA[為替鬼]]></category>
		<category><![CDATA[複数通貨ペア]]></category>

		<guid isPermaLink="false">http://metatraderfx.net/?p=488</guid>
		<description><![CDATA[最近、「いろんな通貨を一緒に表示したい」という質問をよく受けます。
たぶん、為替鬼さんの

&#60;a href=&#8221;http://hb.afl.rakuten.co.jp/hgc/09f4ab6a.89c21c1d.09f4ab6b.318ea709/?pc=http%3a%2f%2fitem.rakuten.co.jp%2fbook%2f6104387%2f&#38;m=http%3a%2f%2fm.rakuten.co.jp%2fbook%2fi%2f13214593%2f&#8221; target=&#8221;_blank&#8221;&#62;為替鬼のFXスキャルピング入門&#60;/a&#62; 
為替鬼のFXスキャルピング入門
の影響かなって思っています。
 
実は、月刊 FX (エフエックス) 攻略.com (ドットコム) に連載し始めた頃、気になって作ってみようと思ったことがあります。
思ったことがあるってところが味噌で、実は挫折しました。
※最後まで作りきる気力がなかった。
単純に、複数通貨をプロットしたりするのはある程度考えればできるんです。
ですが、通貨ペアによって情報が更新されない時間があって、それがまちまちなんです。
インジケーターを作るときに、過去にさかのぼればさかのぼるほど、ズレが大きくなって意味がなくなっちゃうんです。
対処方法もあることにはあります。
足ごとの時間を取得して、合わせてあげればいいんです。
でも、ここで挫折しました。
面倒なんだもん！！
ということで、誰かクリアしたらください。
いや、作らないといけないのかな。
気持ち的にやる気が出たら作ってみます。
]]></description>
			<content:encoded><![CDATA[<p>最近、「いろんな通貨を一緒に表示したい」という質問をよく受けます。</p>
<p>たぶん、為替鬼さんの</p>
<p><a href="http://hb.afl.rakuten.co.jp/hgc/09f4ab6a.89c21c1d.09f4ab6b.318ea709/?pc=http%3a%2f%2fitem.rakuten.co.jp%2fbook%2f6104387%2f&amp;m=http%3a%2f%2fm.rakuten.co.jp%2fbook%2fi%2f13214593%2f" target="_blank"><img src="http://hbb.afl.rakuten.co.jp/hgb/?pc=http%3a%2f%2fthumbnail.image.rakuten.co.jp%2f%400_mall%2fbook%2fcabinet%2f4780%2f47800978.jpg%3f_ex%3d128x128&amp;m=http%3a%2f%2fthumbnail.image.rakuten.co.jp%2f%400_mall%2fbook%2fcabinet%2f4780%2f47800978.jpg%3f_ex%3d80x80" border="0" alt="" /></a></p>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 102px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;"><span style="font-family: monospace; line-height: normal; white-space: pre-wrap; ">&lt;a href=&#8221;http://hb.afl.rakuten.co.jp/hgc/09f4ab6a.89c21c1d.09f4ab6b.318ea709/?pc=http%3a%2f%2fitem.rakuten.co.jp%2fbook%2f6104387%2f&amp;m=http%3a%2f%2fm.rakuten.co.jp%2fbook%2fi%2f13214593%2f&#8221; target=&#8221;_blank&#8221;&gt;為替鬼のFXスキャルピング入門&lt;/a&gt; </span></div>
<div><span style="font-family: monospace;"><span style="line-height: normal; white-space: pre-wrap;"><span style="font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; white-space: normal; line-height: 19px;"><a href="http://hb.afl.rakuten.co.jp/hgc/09f4ab6a.89c21c1d.09f4ab6b.318ea709/?pc=http%3a%2f%2fitem.rakuten.co.jp%2fbook%2f6104387%2f&amp;m=http%3a%2f%2fm.rakuten.co.jp%2fbook%2fi%2f13214593%2f" target="_blank">為替鬼のFXスキャルピング入門</a></span></span></span></div>
<div><span style="font-family: monospace;"><span style="line-height: normal; white-space: pre-wrap;"><span style="font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; white-space: normal; line-height: 19px;">の影響かなって思っています。</span></span></span></div>
<div><span style="font-family: monospace;"><span style="line-height: normal; white-space: pre-wrap;"><span style="font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; white-space: normal; line-height: 19px;"> </span></span></span></div>
<p>実は、<a href="http://pt.afl.rakuten.co.jp/c/08db4a24.d3bb2e1d/?url=http%3a%2f%2fsearch.books.rakuten.co.jp%2fbksearch%2fnm%3fsv%3d30%26h%3d30%26o%3d0%26g%3d000%26v%3d%26s%3d%26e%3d%26b%3d1%26sitem%3d%25B7%25EE%25B4%25A9%2bFX%2b%2528%25A5%25A8%25A5%25D5%25A5%25A8%25A5%25C3%25A5%25AF%25A5%25B9%2529%2b%25B9%25B6%25CE%25AC.com%2b%2528%25A5%25C9%25A5%25C3%25A5%25C8%25A5%25B3%25A5%25E0%2529%26f%3dA%26nitem%3d" target="_blank">月刊 FX (エフエックス) 攻略.com (ドットコム)</a> に連載し始めた頃、気になって作ってみようと<span style="text-decoration: underline;"><span style="color: #ff0000;">思ったこと</span></span>があります。</p>
<p><span style="text-decoration: underline;">思ったことがある</span>ってところが味噌で、実は挫折しました。</p>
<p>※最後まで作りきる気力がなかった。</p>
<p>単純に、複数通貨をプロットしたりするのはある程度考えればできるんです。</p>
<p>ですが、通貨ペアによって情報が更新されない時間があって、それがまちまちなんです。</p>
<p>インジケーターを作るときに、過去にさかのぼればさかのぼるほど、ズレが大きくなって意味がなくなっちゃうんです。</p>
<p>対処方法もあることにはあります。</p>
<p>足ごとの時間を取得して、合わせてあげればいいんです。</p>
<p>でも、ここで挫折しました。</p>
<p><span style="text-decoration: underline;"><strong>面倒なんだもん！！</strong></span></p>
<p>ということで、誰かクリアしたらください。</p>
<p>いや、作らないといけないのかな。</p>
<p>気持ち的にやる気が出たら作ってみます。</p>
]]></content:encoded>
			<wfw:commentRss>http://metatraderfx.net/metatrader-beginner/%e3%81%84%e3%82%8d%e3%82%93%e3%81%aa%e9%80%9a%e8%b2%a8%e3%83%9a%e3%82%a2%e3%82%92%e4%b8%80%e7%b7%92%e3%81%ab%e8%a1%a8%e7%a4%ba%e3%81%97%e3%81%9f%e3%81%84/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://metatraderfx.net/metatrader-beginner/%e3%81%84%e3%82%8d%e3%82%93%e3%81%aa%e9%80%9a%e8%b2%a8%e3%83%9a%e3%82%a2%e3%82%92%e4%b8%80%e7%b7%92%e3%81%ab%e8%a1%a8%e7%a4%ba%e3%81%97%e3%81%9f%e3%81%84/" />
	</item>
		<item>
		<title>インジケータからEAを作ってみるときに</title>
		<link>http://metatraderfx.net/metatrader-beginner/%e3%82%a4%e3%83%b3%e3%82%b8%e3%82%b1%e3%83%bc%e3%82%bf%e3%81%8b%e3%82%89ea%e3%82%92%e4%bd%9c%e3%81%a3%e3%81%a6%e3%81%bf%e3%82%8b%e3%81%a8%e3%81%8d%e3%81%ab/</link>
		<comments>http://metatraderfx.net/metatrader-beginner/%e3%82%a4%e3%83%b3%e3%82%b8%e3%82%b1%e3%83%bc%e3%82%bf%e3%81%8b%e3%82%89ea%e3%82%92%e4%bd%9c%e3%81%a3%e3%81%a6%e3%81%bf%e3%82%8b%e3%81%a8%e3%81%8d%e3%81%ab/#comments</comments>
		<pubDate>Tue, 10 Nov 2009 12:34:56 +0000</pubDate>
		<dc:creator>kei</dc:creator>
				<category><![CDATA[MQL4]]></category>
		<category><![CDATA[インジケータ]]></category>
		<category><![CDATA[メタトレーダープログラミング]]></category>
		<category><![CDATA[メタトレーダー入門]]></category>
		<category><![CDATA[自動売買]]></category>
		<category><![CDATA[インジケーター]]></category>
		<category><![CDATA[プログラミング]]></category>
		<category><![CDATA[ＥＡ]]></category>

		<guid isPermaLink="false">http://metatraderfx.net/?p=440</guid>
		<description><![CDATA[かなりご無沙汰しています。
仕事が忙しくてなかなか更新できなかったり、プライベートでも子供が生まれたりと、どこにいても忙しい毎日をおくっているため、なかなか更新できないでいます。
ちょっと質問を受けたので、その回答を
 
質問：
インジケータのソースが手に入ったので、それをベースにEAを作ろうと思っていますがどこをどうしていいかわかりません。
 
まあ、こんな感じの質問です。
簡単に回答してしまうとインジケータからEAを作るのは、かなりプログラムがわかっていないと難しいです。
理由は簡単で、足単位で計算しているプログラムを必要な足の情報だけを取得するように変更する必要があるからです。
だいたい、ソースが提供されているインジケータは、サンプルみたいなものでかなり適当に作られていることが多いです。
いい感じに関数化してあり、部品として流用可能ならあまりわからなくてもEA化ができるかもしれませんが、再利用など考えていないことが多いので整理しなおす必要があります。
 
この辺は、経験がものを言うのでチャレンジしてもらうことはものすごくいいことです。
でも、難しいじゃないですか。
 
ということで、なるべく簡単にインジケータのデータをEAで利用するには、「iCustom」を利用してインジケータをそのまま利用してしまうことです。
インジケータの情報を取得する２で説明しているので、そっちの方向でまずがんばってみてください。
]]></description>
			<content:encoded><![CDATA[<p>かなりご無沙汰しています。</p>
<p>仕事が忙しくてなかなか更新できなかったり、プライベートでも子供が生まれたりと、どこにいても忙しい毎日をおくっているため、なかなか更新できないでいます。</p>
<p>ちょっと質問を受けたので、その回答を</p>
<p> </p>
<p><strong>質問：</strong></p>
<p><strong>インジケータのソースが手に入ったので、それをベースにEAを作ろうと思っていますがどこをどうしていいかわかりません。</strong></p>
<p> </p>
<p>まあ、こんな感じの質問です。</p>
<p>簡単に回答してしまうとインジケータからEAを作るのは、かなりプログラムがわかっていないと<span style="color: #ff0000;">難しい</span>です。</p>
<p>理由は簡単で、足単位で計算しているプログラムを必要な足の情報だけを取得するように変更する必要があるからです。</p>
<p>だいたい、ソースが提供されているインジケータは、サンプルみたいなものでかなり適当に作られていることが多いです。</p>
<p>いい感じに関数化してあり、部品として流用可能ならあまりわからなくてもEA化ができるかもしれませんが、再利用など考えていないことが多いので整理しなおす必要があります。</p>
<p> </p>
<p>この辺は、経験がものを言うので<span style="text-decoration: underline;">チャレンジしてもらうことはものすごくいいことです。</span></p>
<p>でも、難しいじゃないですか。</p>
<p> </p>
<p>ということで、なるべく簡単にインジケータのデータをEAで利用するには、「iCustom」を利用してインジケータをそのまま利用してしまうことです。</p>
<p><a href="http://metatraderfx.net/metatrader-beginner/%e3%82%a4%e3%83%b3%e3%82%b8%e3%82%b1%e3%83%bc%e3%82%bf%e3%81%ae%e6%83%85%e5%a0%b1%e3%82%92%e5%8f%96%e5%be%97%e3%81%99%e3%82%8b%ef%bc%92/" target="_blank">インジケータの情報を取得する２</a>で説明しているので、そっちの方向でまずがんばってみてください。</p>
]]></content:encoded>
			<wfw:commentRss>http://metatraderfx.net/metatrader-beginner/%e3%82%a4%e3%83%b3%e3%82%b8%e3%82%b1%e3%83%bc%e3%82%bf%e3%81%8b%e3%82%89ea%e3%82%92%e4%bd%9c%e3%81%a3%e3%81%a6%e3%81%bf%e3%82%8b%e3%81%a8%e3%81%8d%e3%81%ab/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://metatraderfx.net/metatrader-beginner/%e3%82%a4%e3%83%b3%e3%82%b8%e3%82%b1%e3%83%bc%e3%82%bf%e3%81%8b%e3%82%89ea%e3%82%92%e4%bd%9c%e3%81%a3%e3%81%a6%e3%81%bf%e3%82%8b%e3%81%a8%e3%81%8d%e3%81%ab/" />
	</item>
		<item>
		<title>オーダーやオーダー変更時に失敗する場合</title>
		<link>http://metatraderfx.net/metatrader-beginner/%e3%82%aa%e3%83%bc%e3%83%80%e3%83%bc%e3%82%84%e3%82%aa%e3%83%bc%e3%83%80%e3%83%bc%e5%a4%89%e6%9b%b4%e6%99%82%e3%81%ab%e5%a4%b1%e6%95%97%e3%81%99%e3%82%8b%e5%a0%b4%e5%90%88/</link>
		<comments>http://metatraderfx.net/metatrader-beginner/%e3%82%aa%e3%83%bc%e3%83%80%e3%83%bc%e3%82%84%e3%82%aa%e3%83%bc%e3%83%80%e3%83%bc%e5%a4%89%e6%9b%b4%e6%99%82%e3%81%ab%e5%a4%b1%e6%95%97%e3%81%99%e3%82%8b%e5%a0%b4%e5%90%88/#comments</comments>
		<pubDate>Wed, 22 Jul 2009 16:03:51 +0000</pubDate>
		<dc:creator>kei</dc:creator>
				<category><![CDATA[MQL4]]></category>
		<category><![CDATA[メタトレーダー入門]]></category>
		<category><![CDATA[自動売買]]></category>
		<category><![CDATA[ストップレベル]]></category>
		<category><![CDATA[プログラミング]]></category>
		<category><![CDATA[入門]]></category>
		<category><![CDATA[ＥＡ]]></category>

		<guid isPermaLink="false">http://metatraderfx.net/?p=419</guid>
		<description><![CDATA[EAでのトレイルストップがうまくいかない質問を受けたので、たぶんこれかな？ってのを回答しておきます。
わたしも初期はこれで悩んだので。。。
OrderSendやOrderModifyを行うとエラーになることがあると思います。
こんなとき何が悪いかちょっと確認してほしいことがあります。
１．注文の方向でAskとBidが間違っていないか。
２．StoplossとTakeprofitの幅
の2点です。
1番は、結構よくやります。
2番は、ストップレベルポイントというのがあって、現在のポイントからいくつか離さないといけないというルールがあります。
だいたい、20pipsぐらいだと思います。
この値は、会社などで違ってきます。
調べる方法は、
MarketInfo(Symbol(),MODE_STOPLEVEL);
を使います。
インジケーターでもEAでもいいので、適当なのを作って以下のソースを書いてみてください。
Comment(&#8221;ストップレベル：&#8221;,MarketInfo(Symbol(),MODE_STOPLEVEL));
これで、最低離さなければいけない値が表示されます。
もう一つ気をつけなければいけないのは、スリップです。
注文するときにスリップページをいくつにするか指定していますよね。
3pipsを指定していたら、20+3で23離す必要があります。
何でもいいけど、20pipsは大きいですよね。
だから、私がEAを作るときは、LossとTakeは保険（通信障害などの）でかける程度にして、実際のクローズはEAにやらせるようにしています。
これだと、1pipsでも狙えます。
あまり細かいとスリップが大きいとダメですがね。
参考にしてみてください。
]]></description>
			<content:encoded><![CDATA[<p>EAでのトレイルストップがうまくいかない質問を受けたので、たぶんこれかな？ってのを回答しておきます。</p>
<p>わたしも初期はこれで悩んだので。。。</p>
<p><a href="http://googolyenfx.blog18.fc2.com/blog-entry-334.html" target="_blank">OrderSend</a>や<a href="http://googolyenfx.blog18.fc2.com/blog-entry-328.html" target="_blank">OrderModify</a>を行うとエラーになることがあると思います。</p>
<p>こんなとき何が悪いかちょっと確認してほしいことがあります。</p>
<p>１．注文の方向でAskとBidが間違っていないか。</p>
<p>２．StoplossとTakeprofitの幅</p>
<p>の2点です。</p>
<p>1番は、結構よくやります。</p>
<p>2番は、ストップレベルポイントというのがあって、現在のポイントからいくつか離さないといけないというルールがあります。</p>
<p>だいたい、20pipsぐらいだと思います。</p>
<p>この値は、会社などで違ってきます。</p>
<p>調べる方法は、</p>
<p><a href="http://googolyenfx.blog18.fc2.com/blog-entry-84.html" target="_blank">MarketInfo</a>(Symbol(),<a href="http://googolyenfx.blog18.fc2.com/blog-entry-86.html" target="_blank">MODE_STOPLEVEL</a>);</p>
<p>を使います。</p>
<p>インジケーターでもEAでもいいので、適当なのを作って以下のソースを書いてみてください。</p>
<p>Comment(&#8221;ストップレベル：&#8221;,MarketInfo(Symbol(),MODE_STOPLEVEL));</p>
<p>これで、最低離さなければいけない値が表示されます。</p>
<p>もう一つ気をつけなければいけないのは、スリップです。</p>
<p>注文するときにスリップページをいくつにするか指定していますよね。</p>
<p>3pipsを指定していたら、20+3で23離す必要があります。</p>
<p>何でもいいけど、20pipsは大きいですよね。</p>
<p>だから、私がEAを作るときは、LossとTakeは保険（通信障害などの）でかける程度にして、実際のクローズはEAにやらせるようにしています。</p>
<p>これだと、1pipsでも狙えます。</p>
<p>あまり細かいとスリップが大きいとダメですがね。</p>
<p>参考にしてみてください。</p>
]]></content:encoded>
			<wfw:commentRss>http://metatraderfx.net/metatrader-beginner/%e3%82%aa%e3%83%bc%e3%83%80%e3%83%bc%e3%82%84%e3%82%aa%e3%83%bc%e3%83%80%e3%83%bc%e5%a4%89%e6%9b%b4%e6%99%82%e3%81%ab%e5%a4%b1%e6%95%97%e3%81%99%e3%82%8b%e5%a0%b4%e5%90%88/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://metatraderfx.net/metatrader-beginner/%e3%82%aa%e3%83%bc%e3%83%80%e3%83%bc%e3%82%84%e3%82%aa%e3%83%bc%e3%83%80%e3%83%bc%e5%a4%89%e6%9b%b4%e6%99%82%e3%81%ab%e5%a4%b1%e6%95%97%e3%81%99%e3%82%8b%e5%a0%b4%e5%90%88/" />
	</item>
		<item>
		<title>iADXって？</title>
		<link>http://metatraderfx.net/metatrader-beginner/iadx%e3%81%a3%e3%81%a6%ef%bc%9f/</link>
		<comments>http://metatraderfx.net/metatrader-beginner/iadx%e3%81%a3%e3%81%a6%ef%bc%9f/#comments</comments>
		<pubDate>Fri, 17 Jul 2009 13:58:28 +0000</pubDate>
		<dc:creator>kei</dc:creator>
				<category><![CDATA[MQL4]]></category>
		<category><![CDATA[メタトレーダープログラミング]]></category>
		<category><![CDATA[メタトレーダー入門]]></category>
		<category><![CDATA[ADX]]></category>
		<category><![CDATA[DMI]]></category>
		<category><![CDATA[プログラミング]]></category>
		<category><![CDATA[入門]]></category>

		<guid isPermaLink="false">http://metatraderfx.net/?p=400</guid>
		<description><![CDATA[質問にあったので、iADXについて。
まず、どこの資料を参考にするか。
私の場合は、
mt4 (MetaTrader4)使い倒シストレ
を愛用しています。


無料で利用できるMQL4の日本語リファレンスマニュアルとしては、一番便利だと思います。
MT4関係で調べ物をするときに一番利用しているサイトと言っても過言ではありません。
すべての関数を隅々までのぞいてみると、気がつかなかったことが見えてくると思いますよ。
分からない単語が出てきたら、検索してみてください。
きっとわかりやすい説明のサイトがあると思います。
で、本題のiADX。

double iADX( string symbol, int timeframe, int period, int applied_price, int mode, int shift)

symbol &#8211; 計算したい通貨名。NULLを指定すると現在の通貨。
timeframe &#8211; 時間枠。時間枠列挙型のどれか。0は現在の時間枠。
period &#8211; 計算で使用する足の数
applied_price &#8211; 適用価格。これは価格定数のどれかをとる。
mode &#8211; インジケータの線指定。これはインジケータラインの値をとる。
shift &#8211; 現在の足から何本前の値を出したいか

適用価格
PRICE_CLOSE 終値
PRICE_OPEN 始値
PRICE_HIGH 高値
PRICE_LOW 安値
PRICE_MEDIAN 中央値、(high + low)/2
PRICE_TYPICAL 代表値、(high + low + close)/3
PRICE_WEIGHTED 重み付け値、(high + low + close + close)/4

インジケータの線指定
MODE_MAIN インジケータの基本線
MODE_PLUSDI +DIインジケータ線
MODE_MINUSDI -DIインジケータ線
こんな感じの関数仕様です。

質問をくださった方は、MODEの意味が分からないといっていました。
実はこの関数、ADXといいながら、DMIも表示できてしまいます。
ここが分かりにくかったところなんだと思います。
でも、普通は一緒に使うので利用しやすいようにとの配慮でしょう。

ADX(Average Directional Movement Index)：トレンドの強さを測定する指標
DMI(Directional Movement Index)：一般的に方向性指数といわれる

ADXは、MODE_MAIN。
DMIは、MODE_PLUSDI、MODE_MINUSDI
で表します。

簡単に説明すると、ADXでトレンドの向きを確かめて、DMIで強さを見ます。
いろいろな方法があるので、詳しくは書きませんが一度動きを確かめてみるとおもしろいかもしれませんね。
]]></description>
			<content:encoded><![CDATA[<p>質問にあったので、iADXについて。</p>
<p>まず、どこの資料を参考にするか。</p>
<p>私の場合は、</p>
<p style="padding-left: 30px;"><a href="http://googolyenfx.blog18.fc2.com/" target="_blank"><span><span style="color: #000000;"><span style="text-decoration: none;">mt4 (MetaTrader4)使い倒シストレ</span></span></span></a></p>
<p style="padding-left: 30px;">を愛用しています。</p>
<p style="padding-left: 30px;">
<p style="padding-left: 30px;"><a href="http://googolyenfx.blog18.fc2.com/" target="_blank"></a></p>
<pre style="padding-left: 30px;">無料で利用できるMQL4の日本語リファレンスマニュアルとしては、一番便利だと思います。</pre>
<p style="padding-left: 30px;">MT4関係で調べ物をするときに一番利用しているサイトと言っても過言ではありません。</p>
<p style="padding-left: 30px;">すべての関数を隅々までのぞいてみると、気がつかなかったことが見えてくると思いますよ。</p>
<p style="padding-left: 30px;">分からない単語が出てきたら、検索してみてください。</p>
<p style="padding-left: 30px;">きっとわかりやすい説明のサイトがあると思います。</p>
<p>で、本題の<a href="http://googolyenfx.blog18.fc2.com/blog-entry-167.html" target="_self"><span style="color: #000000;"><span style="text-decoration: none;">iADX</span></span></a>。<br />
<br/><br/><br />
<span style="font-family: Georgia; line-height: 19px; white-space: normal; font-size: 13px;">d</span>ouble iADX( string symbol, int timeframe, int period, int applied_price, int mode, int shift)<br />
<br/><br/><br />
symbol &#8211; 計算したい通貨名。NULLを指定すると現在の通貨。</p>
<p>timeframe &#8211; 時間枠。時間枠列挙型のどれか。0は現在の時間枠。</p>
<p>period &#8211; 計算で使用する足の数</p>
<p>applied_price &#8211; 適用価格。これは価格定数のどれかをとる。</p>
<p>mode &#8211; インジケータの線指定。これはインジケータラインの値をとる。</p>
<p>shift &#8211; 現在の足から何本前の値を出したいか<br />
<br/><br/><br />
適用価格</p>
<p>PRICE_CLOSE<span style="white-space: pre;"> </span>終値</p>
<p>PRICE_OPEN<span style="white-space: pre;"> </span>始値</p>
<p>PRICE_HIGH<span style="white-space: pre;"> </span>高値</p>
<p>PRICE_LOW<span style="white-space: pre;"> </span>安値</p>
<p>PRICE_MEDIAN<span style="white-space: pre;"> </span>中央値、(high + low)/2</p>
<p>PRICE_TYPICAL<span style="white-space: pre;"> </span>代表値、(high + low + close)/3</p>
<p>PRICE_WEIGHTED<span style="white-space: pre;"> </span>重み付け値、(high + low + close + close)/4<br />
<br/><br/><br />
インジケータの線指定</p>
<p>MODE_MAIN<span style="white-space: pre;"> </span>インジケータの基本線</p>
<p>MODE_PLUSDI<span style="white-space: pre;"> </span>+DIインジケータ線</p>
<p>MODE_MINUSDI<span style="white-space: pre;"> </span>-DIインジケータ線</p>
<p>こんな感じの関数仕様です。<br />
<br/><br/><br />
質問をくださった方は、MODEの意味が分からないといっていました。</p>
<p>実はこの関数、ADXといいながら、DMIも表示できてしまいます。</p>
<p>ここが分かりにくかったところなんだと思います。</p>
<p>でも、普通は一緒に使うので利用しやすいようにとの配慮でしょう。<br />
<br/><br/><br />
ADX(Average Directional Movement Index)：トレンドの強さを測定する指標</p>
<p>DMI(Directional Movement Index)：一般的に方向性指数といわれる<br />
<br/><br/><br />
ADXは、MODE_MAIN。</p>
<p>DMIは、MODE_PLUSDI、MODE_MINUSDI</p>
<p>で表します。<br />
<br/><br/><br />
簡単に説明すると、ADXでトレンドの向きを確かめて、DMIで強さを見ます。</p>
<p>いろいろな方法があるので、詳しくは書きませんが一度動きを確かめてみるとおもしろいかもしれませんね。</p>
]]></content:encoded>
			<wfw:commentRss>http://metatraderfx.net/metatrader-beginner/iadx%e3%81%a3%e3%81%a6%ef%bc%9f/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://metatraderfx.net/metatrader-beginner/iadx%e3%81%a3%e3%81%a6%ef%bc%9f/" />
	</item>
		<item>
		<title>CSVファイルを出力してみる。</title>
		<link>http://metatraderfx.net/metatrader-beginner/csv%e3%83%95%e3%82%a1%e3%82%a4%e3%83%ab%e3%82%92%e5%87%ba%e5%8a%9b%e3%81%97%e3%81%a6%e3%81%bf%e3%82%8b%e3%80%82/</link>
		<comments>http://metatraderfx.net/metatrader-beginner/csv%e3%83%95%e3%82%a1%e3%82%a4%e3%83%ab%e3%82%92%e5%87%ba%e5%8a%9b%e3%81%97%e3%81%a6%e3%81%bf%e3%82%8b%e3%80%82/#comments</comments>
		<pubDate>Tue, 16 Jun 2009 15:18:59 +0000</pubDate>
		<dc:creator>kei</dc:creator>
				<category><![CDATA[MQL4]]></category>
		<category><![CDATA[インジケータ]]></category>
		<category><![CDATA[メタトレーダー入門]]></category>
		<category><![CDATA[CSV]]></category>
		<category><![CDATA[ファイル出力]]></category>
		<category><![CDATA[プログラミング]]></category>
		<category><![CDATA[入門]]></category>

		<guid isPermaLink="false">http://metatraderfx.net/?p=358</guid>
		<description><![CDATA[今回は、ファイル出力を行いたいと思います。
タイトルでは、CSVファイルを出力することになっていますが、なるべく利用しやすいように文字列の行書きだしの関数を作ります。
CSVファイルも出力できますし、ログとして出力することもできます。
EAでもインジケータでもいいのですが、とりあえず、インジケーターで作成してみましょう。
何でもいいので、MetaEditorでインジケーターを作成してください。
別にパラメータなど入りませんので、適当でかまいません。
以下の関数をコピーして、最後にでもペースとしてください。
int LogWrite(string strFileName,string strText)
{
int handle;
handle=FileOpen(strFileName, FILE_BIN&#124;FILE_READ&#124;FILE_WRITE);
if(handle&#60;1)
{
Print(&#8221;can&#8217;t open file error-&#8221;,GetLastError());
return(-1);
}
FileSeek(handle, 0, SEEK_END);
strText = strText + &#8220;\r\n&#8221;;
FileWriteString(handle, strText, StringLen(strText));
FileClose(handle);
return(0);
}
int LogWrite(string strFileName,string strText)
{
int handle;
handle=FileOpen(strFileName, FILE_BIN&#124;FILE_READ&#124;FILE_WRITE);
if(handle&#60;1)
{
Print(&#8221;can&#8217;t open file error-&#8221;,GetLastError());
return(-1);
}
FileSeek(handle, 0, SEEK_END);
strText = strText + &#8220;\r\n&#8221;;
FileWriteString(handle, strText, StringLen(strText));
FileClose(handle);
return(0);
}
この関数は、
１．ファイルを開く
２．ファイルの最後に移動
３．ファイルへ出力
４．ファイルを閉じる
このことを行っています。
ちょこっと難しいというか、分かりにくいのが、
FileOpen(strFileName, FILE_BIN&#124;FILE_READ&#124;FILE_WRITE);
の
FILE_BIN&#124;FILE_READ&#124;FILE_WRITE
バイナリーモードで読み書きするという意味ですが、
その他にもファイルの中身を消去しないという意味があります。
今回は、書くだけなので「FILE_WRITE」だけでいいような気がしますが、
これだけだと、ファイルの中身を消してしまいます。
ということで、消したくないときは「FILE_READ&#124;FILE_WRITE」の2つを指定する必要があります。
たぶん、ここが分かりにくいでしょうね。
FileSeek(handle, 0, SEEK_END);
は、ファイルの一番最後へ移動。
strText = strText + &#8220;\r\n&#8221;;
は、指定された文字の最後に改行コードを入れています。
これを入れないと改行されずに、連続した文字になってしまいます。
FileWriteString(handle, strText, StringLen(strText));
で、文字を指定した文字数分書き出しています。
FileClose(handle);
でファイルを閉じています。
この関数を使うと、簡単にファイルを出力できます。
LogWrite(ファイル名,出力したい文字列)
を指定すればいいだけです。
ちなみにファイルですが、
インストールパス\MetaTrader\experts\files
に出力されます。
EAのテストモードだけ出力先が変わって、
インストールパス\MetaTrader\tester\files
です。
では、関数を呼び出す部分を作ってみましょう。
int start()
の中に、以下の行を追加してください。
string strText = StringConcatenate(Year(),&#8221;/&#8221;,Month(),&#8221;/&#8221;,Day(),&#8221; &#8220;,Hour(),&#8221;:&#8221;,Minute(),&#8221;:&#8221;,Seconds(),&#8221;,&#8221;,Ask,&#8221;,&#8221;,Bid);
LogWrite(&#8221;AskBid.csv&#8221;,strText);

レートが変化したときの買値と売値を出力します。

ファイルの形式は、以下のようになります。
YYYY/MM/DD hh:mm:ss,買値,売値
CSVファイルで出力していますが、CSVファイルはカンマ区切りのテキストファイルです。
本当は、もう少し細かいルールがありますが、とりあえず問題ないはずです。
詳しく知りたい人は、ぐぐってみてください。
これで、コンパイルして適当な表にドラッグすれば、ファイルができあがっているはずです。
この関数は、文字なら何でも出力できるので、重宝すると思います。
せっかくなので、もう一つ出力例を
init()の上あたりに以下の宣言を追加してください。
datetime timeNow;
start()の中に以下の処理を追加してください。
if(timeNow != iTime(NULL,0,1))
{
timeNow = iTime(NULL,0,1);
string strTextAshi = [...]]]></description>
			<content:encoded><![CDATA[<p>今回は、ファイル出力を行いたいと思います。</p>
<p>タイトルでは、CSVファイルを出力することになっていますが、なるべく利用しやすいように文字列の行書きだしの関数を作ります。</p>
<p>CSVファイルも出力できますし、ログとして出力することもできます。</p>
<p>EAでもインジケータでもいいのですが、とりあえず、インジケーターで作成してみましょう。</p>
<p>何でもいいので、MetaEditorでインジケーターを作成してください。</p>
<p>別にパラメータなど入りませんので、適当でかまいません。</p>
<p>以下の関数をコピーして、最後にでもペースとしてください。</p>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 236px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">int LogWrite(string strFileName,string strText)</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 236px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">{</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 236px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">int handle;</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 236px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">handle=FileOpen(strFileName, FILE_BIN|FILE_READ|FILE_WRITE);</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 236px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">if(handle&lt;1)</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 236px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">{</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 236px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">Print(&#8221;can&#8217;t open file error-&#8221;,GetLastError());</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 236px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">return(-1);</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 236px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">}</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 236px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">FileSeek(handle, 0, SEEK_END);</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 236px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">strText = strText + &#8220;\r\n&#8221;;</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 236px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">FileWriteString(handle, strText, StringLen(strText));</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 236px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">FileClose(handle);</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 236px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">return(0);</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 236px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">}</div>
<p>int LogWrite(string strFileName,string strText)</p>
<p>{</p>
<p>int handle;</p>
<p>handle=<a href="http://googolyenfx.blog18.fc2.com/blog-entry-275.html" target="_blank">FileOpen</a>(strFileName, FILE_BIN|FILE_READ|FILE_WRITE);</p>
<p>if(handle&lt;1)</p>
<p>{</p>
<p>Print(&#8221;can&#8217;t open file error-&#8221;,GetLastError());</p>
<p>return(-1);</p>
<p>}</p>
<p><a href="http://googolyenfx.blog18.fc2.com/blog-entry-282.html" target="_blank">FileSeek</a>(handle, 0, SEEK_END);</p>
<p>strText = strText + &#8220;\r\n&#8221;;</p>
<p><a href="http://googolyenfx.blog18.fc2.com/blog-entry-289.html" target="_blank">FileWriteString</a>(handle, strText, StringLen(strText));</p>
<p><a href="http://googolyenfx.blog18.fc2.com/blog-entry-270.html" target="_blank">FileClose</a>(handle);</p>
<p>return(0);</p>
<p>}</p>
<p>この関数は、</p>
<p>１．ファイルを開く</p>
<p>２．ファイルの最後に移動</p>
<p>３．ファイルへ出力</p>
<p>４．ファイルを閉じる</p>
<p>このことを行っています。</p>
<p>ちょこっと難しいというか、分かりにくいのが、</p>
<p><a href="http://googolyenfx.blog18.fc2.com/blog-entry-275.html" target="_blank">FileOpen</a>(strFileName, FILE_BIN|FILE_READ|FILE_WRITE);</p>
<p>の</p>
<p>FILE_BIN|FILE_READ|FILE_WRITE</p>
<p>バイナリーモードで読み書きするという意味ですが、</p>
<p>その他にもファイルの中身を消去しないという意味があります。</p>
<p>今回は、書くだけなので「FILE_WRITE」だけでいいような気がしますが、</p>
<p>これだけだと、ファイルの中身を消してしまいます。</p>
<p>ということで、消したくないときは「<strong>FILE_READ|FILE_WRITE</strong>」の2つを指定する必要があります。</p>
<p>たぶん、ここが分かりにくいでしょうね。</p>
<p><a href="http://googolyenfx.blog18.fc2.com/blog-entry-282.html" target="_blank">FileSeek</a>(handle, 0, SEEK_END);</p>
<p>は、ファイルの一番最後へ移動。</p>
<p>strText = strText + &#8220;\r\n&#8221;;</p>
<p>は、指定された文字の最後に改行コードを入れています。</p>
<p>これを入れないと改行されずに、連続した文字になってしまいます。</p>
<p><a href="http://googolyenfx.blog18.fc2.com/blog-entry-289.html" target="_blank">FileWriteString</a>(handle, strText, StringLen(strText));</p>
<p>で、文字を指定した文字数分書き出しています。</p>
<p><a href="http://googolyenfx.blog18.fc2.com/blog-entry-270.html" target="_blank">FileClose</a>(handle);</p>
<p>でファイルを閉じています。</p>
<p>この関数を使うと、簡単にファイルを出力できます。</p>
<p>LogWrite(ファイル名,出力したい文字列)</p>
<p>を指定すればいいだけです。</p>
<p>ちなみにファイルですが、</p>
<p>インストールパス\MetaTrader\experts\files</p>
<p>に出力されます。</p>
<p>EAのテストモードだけ出力先が変わって、</p>
<p>インストールパス\MetaTrader\tester\files</p>
<p>です。</p>
<p>では、関数を呼び出す部分を作ってみましょう。</p>
<p>int start()</p>
<p>の中に、以下の行を追加してください。</p>
<p>string strText = <a href="http://googolyenfx.blog18.fc2.com/blog-entry-308.html" target="_blank">StringConcatenate</a>(Year(),&#8221;/&#8221;,Month(),&#8221;/&#8221;,Day(),&#8221; &#8220;,Hour(),&#8221;:&#8221;,Minute(),&#8221;:&#8221;,Seconds(),&#8221;,&#8221;,Ask,&#8221;,&#8221;,Bid);</p>
<p>LogWrite(&#8221;AskBid.csv&#8221;,strText);</p>
<div></div>
<div>レートが変化したときの買値と売値を出力します。</div>
<div></div>
<div>ファイルの形式は、以下のようになります。</div>
<p>YYYY/MM/DD hh:mm:ss,買値,売値</p>
<p>CSVファイルで出力していますが、CSVファイルはカンマ区切りのテキストファイルです。</p>
<p>本当は、もう少し細かいルールがありますが、とりあえず問題ないはずです。</p>
<p>詳しく知りたい人は、ぐぐってみてください。</p>
<p>これで、コンパイルして適当な表にドラッグすれば、ファイルができあがっているはずです。</p>
<p>この関数は、文字なら何でも出力できるので、重宝すると思います。</p>
<p>せっかくなので、もう一つ出力例を</p>
<p>init()の上あたりに以下の宣言を追加してください。</p>
<p>datetime timeNow;</p>
<p>start()の中に以下の処理を追加してください。</p>
<p>if(timeNow != iTime(NULL,0,1))</p>
<p>{</p>
<p>timeNow = iTime(NULL,0,1);</p>
<p>string strTextAshi = StringConcatenate(TimeYear(timeNow),&#8221;/&#8221;,TimeMonth(timeNow),&#8221;/&#8221;,TimeDay(timeNow),&#8221; &#8220;,TimeHour(timeNow),&#8221;:&#8221;,TimeMinute(timeNow),&#8221;:&#8221;,TimeSeconds(timeNow),&#8221;,&#8221;,iHigh(NULL,0,1),&#8221;,&#8221;,iOpen(NULL,0,1),&#8221;,&#8221;,iClose(NULL,0,1),&#8221;,&#8221;,iLow(NULL,0,1));</p>
<p>LogWrite(&#8221;Ashi.csv&#8221;,strTextAshi);</p>
<p>}</p>
<p>今度のは、足が確定したときの高値、始値、終値、安値を出力しています。</p>
<p>レートが変わるたびに出力しても意味がないので、1本前の時間が変わったときに出力するようにしています。</p>
<p>こんな感じです。</p>
<p>ファイル出力は、分かりましたか？</p>
<p>他にも出力の仕方は、色々あるので試してみてくださいね。</p>
]]></content:encoded>
			<wfw:commentRss>http://metatraderfx.net/metatrader-beginner/csv%e3%83%95%e3%82%a1%e3%82%a4%e3%83%ab%e3%82%92%e5%87%ba%e5%8a%9b%e3%81%97%e3%81%a6%e3%81%bf%e3%82%8b%e3%80%82/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://metatraderfx.net/metatrader-beginner/csv%e3%83%95%e3%82%a1%e3%82%a4%e3%83%ab%e3%82%92%e5%87%ba%e5%8a%9b%e3%81%97%e3%81%a6%e3%81%bf%e3%82%8b%e3%80%82/" />
	</item>
		<item>
		<title>ねた募集！</title>
		<link>http://metatraderfx.net/metatrader-beginner/%e3%81%ad%e3%81%9f%e5%8b%9f%e9%9b%86%ef%bc%81/</link>
		<comments>http://metatraderfx.net/metatrader-beginner/%e3%81%ad%e3%81%9f%e5%8b%9f%e9%9b%86%ef%bc%81/#comments</comments>
		<pubDate>Mon, 08 Jun 2009 21:37:07 +0000</pubDate>
		<dc:creator>kei</dc:creator>
				<category><![CDATA[お知らせ]]></category>
		<category><![CDATA[メタトレーダー入門]]></category>
		<category><![CDATA[MQL4]]></category>
		<category><![CDATA[ネタ]]></category>
		<category><![CDATA[プログラミング]]></category>
		<category><![CDATA[入門]]></category>

		<guid isPermaLink="false">http://metatraderfx.net/?p=349</guid>
		<description><![CDATA[メタトレーダーのプログラミングをメインにした、このブログをスタートして、1ヶ月半近くになりました。
色々うれしいコメントをいただいて、ありがたい限りです。
基本的な部分は、ほぼ終了かなと思っています。
後は、紹介していない関数などの使い方などがメインになると思います。
ですが、せっかくですので、みなさんからのリクエストを受け付けたいと思います。
このブログや本などを参考に、簡単なプログラムは組めるようになったけど、ちょっと難しいことをやろうとしてちょこっと挫折気味！！
どうしてもこの関数の使い方が分からない。
こんな方のリクエストを募集します。
MT4、MQL4に関することならなんでもOKです。
ただし、プログラムに関することだけです。
一応、プログラムを組めるようになるためのブログなので。。。
一応、初心者のための情報を載せておきます。
メタトレーダーの書籍としては、


これが、有名です。
というか、これしかありません。
本じゃないと分かりにくいという方は、購入をお勧めします。
ちょこっと知りたいという方は、本屋で立ち読みでもいいかもしれません。
でも、関数のリファレンス関係がほとんどありません。
このあたりは本家MQL4の英文ですが、日本語に直訳してくれているサイトがあります。
MT4使い倒シストレ
わたしもよく使っている大変ありがたいサイトです。
無料ですし。。。
でも、ちょっと直訳過ぎて分かりにくいところもあります。

ちょこっと高めですので買ってくださいとは言いませんが、こんなのもあります。

ＦＸ完全自動売買システム構築のための２５０の技 MetaTrader4逆引き大全集

有料だけあって、詳しく書かれています。
半額だったら、買ってくださいとおすすめできますが、ちょこっと高めですね。
気合いを入れて、やろうと思っているなら本を3冊買ったと思って手に入れてもいいかもしれません。

ということで、ネタ募集と入門書関係のお知らせでした。

]]></description>
			<content:encoded><![CDATA[<p>メタトレーダーのプログラミングをメインにした、このブログをスタートして、1ヶ月半近くになりました。</p>
<p>色々うれしいコメントをいただいて、ありがたい限りです。</p>
<p>基本的な部分は、ほぼ終了かなと思っています。</p>
<p>後は、紹介していない関数などの使い方などがメインになると思います。</p>
<p>ですが、せっかくですので、みなさんからのリクエストを受け付けたいと思います。</p>
<p>このブログや本などを参考に、簡単なプログラムは組めるようになったけど、ちょっと難しいことをやろうとしてちょこっと挫折気味！！</p>
<p>どうしてもこの関数の使い方が分からない。</p>
<p>こんな方のリクエストを募集します。</p>
<p>MT4、MQL4に関することならなんでもOKです。</p>
<p>ただし、プログラムに関することだけです。</p>
<p>一応、プログラムを組めるようになるためのブログなので。。。</p>
<p>一応、初心者のための情報を載せておきます。</p>
<p style="text-align: left;">メタトレーダーの書籍としては、</p>
<p style="text-align: center;">
<a href="http://hb.afl.rakuten.co.jp/hgc/050cb2f3.02ba97c9.050cb2f4.58ec6e58/?pc=http%3a%2f%2fitem.rakuten.co.jp%2fbook%2f5221871%2f&amp;m=http%3a%2f%2fm.rakuten.co.jp%2fbook%2fi%2f12655817%2f" target="_blank"><img src="http://hbb.afl.rakuten.co.jp/hgb/?pc=http%3a%2f%2fthumbnail.image.rakuten.co.jp%2f%400_mall%2fbook%2fcabinet%2f7759%2f77599063.jpg%3f_ex%3d128x128&amp;m=http%3a%2f%2fthumbnail.image.rakuten.co.jp%2f%400_mall%2fbook%2fcabinet%2f7759%2f77599063.jpg%3f_ex%3d80x80" border="0" alt="" /></a></p>
<p>これが、有名です。</p>
<p>というか、これしかありません。</p>
<p>本じゃないと分かりにくいという方は、購入をお勧めします。</p>
<p>ちょこっと知りたいという方は、本屋で立ち読みでもいいかもしれません。</p>
<p>でも、関数のリファレンス関係がほとんどありません。</p>
<p>このあたりは本家MQL4の英文ですが、日本語に直訳してくれているサイトがあります。</p>
<p><a href="http://googolyenfx.blog18.fc2.com/" target="_blank">MT4使い倒シストレ</a></p>
<p>わたしもよく使っている大変ありがたいサイトです。</p>
<p>無料ですし。。。</p>
<p>でも、ちょっと直訳過ぎて分かりにくいところもあります。</p>
<p style="text-align: left;">
<p style="text-align: left;">ちょこっと高めですので買ってくださいとは言いませんが、こんなのもあります。</p>
<p style="text-align: center;">
<a href="http://www.infocart.jp/t/24105/eba/" target="_blank">ＦＸ完全自動売買システム構築のための２５０の技 MetaTrader4逆引き大全集</a><br />
<a href="http://www.infocart.jp/t/24105/eba/" target="_blank"><img src="http://imgdisp.infocart.jp/down/images/24105.jpg" alt="" /></a></p>
<p style="text-align: left;">有料だけあって、詳しく書かれています。</p>
<p style="text-align: left;">半額だったら、買ってくださいとおすすめできますが、ちょこっと高めですね。</p>
<p style="text-align: left;">気合いを入れて、やろうと思っているなら本を3冊買ったと思って手に入れてもいいかもしれません。</p>
<p style="text-align: left;">
<p style="text-align: left;">ということで、ネタ募集と入門書関係のお知らせでした。</p>
<p style="text-align: left;">
]]></content:encoded>
			<wfw:commentRss>http://metatraderfx.net/metatrader-beginner/%e3%81%ad%e3%81%9f%e5%8b%9f%e9%9b%86%ef%bc%81/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
		<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://metatraderfx.net/metatrader-beginner/%e3%81%ad%e3%81%9f%e5%8b%9f%e9%9b%86%ef%bc%81/" />
	</item>
		<item>
		<title>インジケータの情報を取得する２</title>
		<link>http://metatraderfx.net/metatrader-beginner/%e3%82%a4%e3%83%b3%e3%82%b8%e3%82%b1%e3%83%bc%e3%82%bf%e3%81%ae%e6%83%85%e5%a0%b1%e3%82%92%e5%8f%96%e5%be%97%e3%81%99%e3%82%8b%ef%bc%92/</link>
		<comments>http://metatraderfx.net/metatrader-beginner/%e3%82%a4%e3%83%b3%e3%82%b8%e3%82%b1%e3%83%bc%e3%82%bf%e3%81%ae%e6%83%85%e5%a0%b1%e3%82%92%e5%8f%96%e5%be%97%e3%81%99%e3%82%8b%ef%bc%92/#comments</comments>
		<pubDate>Sat, 06 Jun 2009 03:04:07 +0000</pubDate>
		<dc:creator>kei</dc:creator>
				<category><![CDATA[インジケータ]]></category>
		<category><![CDATA[メタトレーダー入門]]></category>
		<category><![CDATA[簡単インジケータ作成テンプレート]]></category>
		<category><![CDATA[MQL4]]></category>
		<category><![CDATA[ZigZag]]></category>
		<category><![CDATA[インジケーター]]></category>
		<category><![CDATA[サンプル]]></category>
		<category><![CDATA[テンプレート]]></category>
		<category><![CDATA[プログラミング]]></category>
		<category><![CDATA[入門]]></category>

		<guid isPermaLink="false">http://metatraderfx.net/?p=345</guid>
		<description><![CDATA[前回に引き続き、「ZigZag」インジケータを利用します。
この「ZigZag」インジケータをつかって、別のインジケータを作ってみましょう。
「簡単インジケータ作成テンプレート」を使ったサンプルを作ってみます。
テンプレートを適当なファイル名にコピーして、
インストールパス\MetaTrader\experts\indicators
に入れてください。
コピーした、テンプレートのinit()を以下のように修正してください。
int init()
{
//&#8212;- indicators
SetIndexStyle(0,DRAW_ARROW, EMPTY, 4);
SetIndexArrow(0,159);
SetIndexBuffer(0,ExtMapBuffer1);
SetIndexStyle(1,DRAW_ARROW, EMPTY, 2);
SetIndexBuffer(1,ExtMapBuffer2);
SetIndexStyle(2,DRAW_ARROW, EMPTY, 2);
SetIndexBuffer(2,ExtMapBuffer3);
//&#8212;-
return(0);
}
次は、DataSet()を以下のように修正してください。
void DataSet(int i)
{
ExtMapBuffer1[i]=iCustom(NULL, 0, &#8220;ZigZag&#8221;,12,5,3,0,i);
ExtMapBuffer2[i]=iCustom(NULL, 0, &#8220;ZigZag&#8221;,12,5,3,1,i);
ExtMapBuffer3[i]=iCustom(NULL, 0, &#8220;ZigZag&#8221;,12,5,3,2,i);
}
これで終了です。
今回注目する点は、
iCustom(NULL, 0, &#8220;ZigZag&#8221;,12,5,3,2,i);
インターフェース仕様は、
double iCustom( string symbol, int timeframe, string name, &#8230;, int mode, int shift)
で、symbolにNULLを入れることで、今利用している通貨ペアを使用します。
timeframeに0を入れることで、今利用している通貨ペアの時間軸を使います。
nameは、利用したいインジケータ名「ZigZag」。
ファイル名の拡張子をのぞいた名前を使います。
問題は、次の&#8230;。
ここは、利用元のインジケータのパラメータを入れます。
「ZigZag」は、3つパラメータがあるので、３つ。
12,5,3
を指定しています。
利用元のインジケータのパラメータが0なら0、20なら20。
引数が可変になるので、分かりにくいところです。
modeは、何番目のバッファから取得するか。
shiftは、何番目の足の情報を取得するかです。
パラメータ設定部分が、わかりにくいので注意してくださいね。
コンパイルして、動かすと元々線が出ていた場所は、赤丸。
バッファ１が青い×。
バッファ2が緑の×。
が表示されるはずです。
この方法は、いろいろなインジケータから情報を取得できるので、おもしろいことができると思います。


]]></description>
			<content:encoded><![CDATA[<p>前回に引き続き、「ZigZag」インジケータを利用します。</p>
<p>この「ZigZag」インジケータをつかって、別のインジケータを作ってみましょう。</p>
<p>「<a href="http://download-center.metatraderfx.net/indicator/%e7%b0%a1%e5%8d%98%e3%82%a4%e3%83%b3%e3%82%b8%e3%82%b1%e3%83%bc%e3%82%bf%e4%bd%9c%e6%88%90%e3%83%86%e3%83%b3%e3%83%97%e3%83%ac%e3%83%bc%e3%83%88/" target="_blank">簡単インジケータ作成テンプレート</a>」を使ったサンプルを作ってみます。</p>
<p>テンプレートを適当なファイル名にコピーして、</p>
<p>インストールパス\MetaTrader\experts\indicators</p>
<p>に入れてください。</p>
<p>コピーした、テンプレートのinit()を以下のように修正してください。</p>
<p>int init()</p>
<p>{</p>
<p>//&#8212;- indicators</p>
<p>SetIndexStyle(0,DRAW_ARROW, EMPTY, 4);</p>
<p>SetIndexArrow(0,159);</p>
<p>SetIndexBuffer(0,ExtMapBuffer1);</p>
<p>SetIndexStyle(1,DRAW_ARROW, EMPTY, 2);</p>
<p>SetIndexBuffer(1,ExtMapBuffer2);</p>
<p>SetIndexStyle(2,DRAW_ARROW, EMPTY, 2);</p>
<p>SetIndexBuffer(2,ExtMapBuffer3);</p>
<p>//&#8212;-</p>
<p>return(0);</p>
<p>}</p>
<p>次は、DataSet()を以下のように修正してください。</p>
<p>void DataSet(int i)</p>
<p>{</p>
<p>ExtMapBuffer1[i]=<a href="http://googolyenfx.blog18.fc2.com/blog-entry-176.html" target="_blank">iCustom</a>(NULL, 0, &#8220;ZigZag&#8221;,12,5,3,0,i);</p>
<p>ExtMapBuffer2[i]=<a href="http://googolyenfx.blog18.fc2.com/blog-entry-176.html" target="_blank">iCustom</a>(NULL, 0, &#8220;ZigZag&#8221;,12,5,3,1,i);</p>
<p>ExtMapBuffer3[i]=<a href="http://googolyenfx.blog18.fc2.com/blog-entry-176.html" target="_blank">iCustom</a>(NULL, 0, &#8220;ZigZag&#8221;,12,5,3,2,i);</p>
<p>}</p>
<p>これで終了です。</p>
<p>今回注目する点は、</p>
<p>iCustom(NULL, 0, &#8220;ZigZag&#8221;,12,5,3,2,i);</p>
<p>インターフェース仕様は、</p>
<p>double iCustom( string symbol, int timeframe, string name, &#8230;, int mode, int shift)</p>
<p>で、symbolにNULLを入れることで、今利用している通貨ペアを使用します。</p>
<p>timeframeに0を入れ<span style="font-family: mceinline;">る</span>ことで、今利用している通貨ペアの時間軸を使います。</p>
<p>nameは、利用したいインジケータ名「ZigZag」。</p>
<p>ファイル名の拡張子をのぞいた名前を使います。</p>
<p>問題は、次の<strong><span style="font-family: mceinline;">&#8230;<span style="font-weight: normal;">。</span></span></strong></p>
<p><span style="font-family: mceinline;">ここは、利用元のインジケータのパラメータを入れます。</span></p>
<p><span style="font-family: mceinline;">「ZigZag」は、3つパラメータがあるので、３つ。</span></p>
<p><span style="font-family: mceinline;">12,5,3</span></p>
<p><span style="font-family: mceinline;">を指定しています。</span></p>
<p><span style="font-family: mceinline;">利用元のインジケータのパラメータが0なら0、20なら20。</span></p>
<p><span style="font-family: mceinline;">引数が可変になるので、分かりにくいところです。</span></p>
<p><span style="font-family: mceinline;">modeは、何番目のバッファから取得するか。</span></p>
<p><span style="font-family: mceinline;">shiftは、何番目の足の情報を取得するかです。</span></p>
<p><span style="font-family: mceinline;">パラメータ設定部分が、わかりにくいので注意してくださいね。</span></p>
<p><span style="font-family: mceinline;">コンパイルして、動かすと元々線が出ていた場所は、赤丸。</span></p>
<p><span style="font-family: mceinline;">バッファ１が青い×。</span></p>
<p><span style="font-family: mceinline;">バッファ2が緑の×。</span></p>
<p><span style="font-family: mceinline;">が表示されるはずです。</span></p>
<p><span style="font-family: mceinline;">この方法は、いろいろなインジケータから情報を取得できるので、おもしろいことができると思います。</span></p>
<p><span style="font-family: mceinline;"><br />
</span></p>
]]></content:encoded>
			<wfw:commentRss>http://metatraderfx.net/metatrader-beginner/%e3%82%a4%e3%83%b3%e3%82%b8%e3%82%b1%e3%83%bc%e3%82%bf%e3%81%ae%e6%83%85%e5%a0%b1%e3%82%92%e5%8f%96%e5%be%97%e3%81%99%e3%82%8b%ef%bc%92/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://metatraderfx.net/metatrader-beginner/%e3%82%a4%e3%83%b3%e3%82%b8%e3%82%b1%e3%83%bc%e3%82%bf%e3%81%ae%e6%83%85%e5%a0%b1%e3%82%92%e5%8f%96%e5%be%97%e3%81%99%e3%82%8b%ef%bc%92/" />
	</item>
		<item>
		<title>インジケータの情報を取得する</title>
		<link>http://metatraderfx.net/metatrader-beginner/%e3%82%a4%e3%83%b3%e3%82%b8%e3%82%b1%e3%83%bc%e3%82%bf%e3%81%ae%e6%83%85%e5%a0%b1%e3%82%92%e5%8f%96%e5%be%97%e3%81%99%e3%82%8b/</link>
		<comments>http://metatraderfx.net/metatrader-beginner/%e3%82%a4%e3%83%b3%e3%82%b8%e3%82%b1%e3%83%bc%e3%82%bf%e3%81%ae%e6%83%85%e5%a0%b1%e3%82%92%e5%8f%96%e5%be%97%e3%81%99%e3%82%8b/#comments</comments>
		<pubDate>Tue, 02 Jun 2009 10:45:28 +0000</pubDate>
		<dc:creator>kei</dc:creator>
				<category><![CDATA[MQL4]]></category>
		<category><![CDATA[インジケータ]]></category>
		<category><![CDATA[メタトレーダー入門]]></category>
		<category><![CDATA[インジケーター]]></category>
		<category><![CDATA[プログラミング]]></category>
		<category><![CDATA[入門]]></category>

		<guid isPermaLink="false">http://metatraderfx.net/?p=339</guid>
		<description><![CDATA[インジケータから、情報を取得することを考えたいと思います。
 
有料のインジケータを買った（右の広告みたいなところから）ときに、そのインジケータを元にEAを作りたくなった。
インジケータとインジケータを組み合わせたときのあるタイミングで、シグナルを出したい。
 
たぶん、こんなこと思う人が結構いると思います。
 
ということで、インジケータのデータは、どうやってみるか？
ということを考えてみます。
 
リクエストにもあったので、標準で付いてくるインジケータで「ZigZag」というので考えてみます。
まず、どこの通貨ペアでもいいので、「ZigZag」を張り付けてみてください。
ほかのインジケータを使っていない状態の方が、わかりやすいので「ZigZag」だけにしてください。
 
アップダウンが、ジグザグに表示されるおもしろいインジケータですね。
「ZigZag」はソースが付いていますが、わからないと仮定します。
 
データウィンドウを表示してください。
スコープみたいなアイコンをクリックするか、「Ctrl+D」で表示できます。

こんな感じのものが表示されたはずです。
マウスカーソルの位置のデータが表示されて、大変便利です。
 
で、「ZigZag」のデータは、
ZigZag、Value2、Value3の3つです。
実際に、マウスを動かして、データがどうなっているか調べていきます。
 
調べていくと、ZigZagというところが、山と谷の位置でデータが入っていることがわかります。
ということは、表示されている線のデータですね。
Value2、Value3は、山と思わしき場所、谷と思わしき場所の値が入っています。
 
ZiｇZagの値が、線のデータでほかのデータも使えそうですね。
 
次は、プログラムでデータを取得してみます。
]]></description>
			<content:encoded><![CDATA[<p>インジケータから、情報を取得することを考えたいと思います。</p>
<p> </p>
<p>有料のインジケータを買った（右の広告みたいなところから）ときに、そのインジケータを元にEAを作りたくなった。</p>
<p>インジケータとインジケータを組み合わせたときのあるタイミングで、シグナルを出したい。</p>
<p> </p>
<p>たぶん、こんなこと思う人が結構いると思います。</p>
<p> </p>
<p>ということで、インジケータのデータは、どうやってみるか？</p>
<p>ということを考えてみます。</p>
<p> </p>
<p>リクエストにもあったので、標準で付いてくるインジケータで「ZigZag」というので考えてみます。</p>
<p>まず、どこの通貨ペアでもいいので、「ZigZag」を張り付けてみてください。</p>
<p>ほかのインジケータを使っていない状態の方が、わかりやすいので「ZigZag」だけにしてください。</p>
<p> </p>
<p>アップダウンが、ジグザグに表示されるおもしろいインジケータですね。</p>
<p>「ZigZag」はソースが付いていますが、わからないと仮定します。</p>
<p> </p>
<p>データウィンドウを表示してください。</p>
<p>スコープみたいなアイコンをクリックするか、「Ctrl+D」で表示できます。</p>
<p><a href="http://metatraderfx.net/wp-content/uploads/2009/06/datawindow.jpg"><img class="aligncenter size-full wp-image-340" title="datawindow" src="http://metatraderfx.net/wp-content/uploads/2009/06/datawindow.jpg" alt="datawindow" width="193" height="249" /></a></p>
<p>こんな感じのものが表示されたはずです。</p>
<p>マウスカーソルの位置のデータが表示されて、大変便利です。</p>
<p> </p>
<p>で、「ZigZag」のデータは、</p>
<p>ZigZag、Value2、Value3の3つです。</p>
<p>実際に、マウスを動かして、データがどうなっているか調べていきます。</p>
<p> </p>
<p>調べていくと、ZigZagというところが、山と谷の位置でデータが入っていることがわかります。</p>
<p>ということは、表示されている線のデータですね。</p>
<p>Value2、Value3は、山と思わしき場所、谷と思わしき場所の値が入っています。</p>
<p> </p>
<p>ZiｇZagの値が、線のデータでほかのデータも使えそうですね。</p>
<p> </p>
<p>次は、プログラムでデータを取得してみます。</p>
]]></content:encoded>
			<wfw:commentRss>http://metatraderfx.net/metatrader-beginner/%e3%82%a4%e3%83%b3%e3%82%b8%e3%82%b1%e3%83%bc%e3%82%bf%e3%81%ae%e6%83%85%e5%a0%b1%e3%82%92%e5%8f%96%e5%be%97%e3%81%99%e3%82%8b/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://metatraderfx.net/metatrader-beginner/%e3%82%a4%e3%83%b3%e3%82%b8%e3%82%b1%e3%83%bc%e3%82%bf%e3%81%ae%e6%83%85%e5%a0%b1%e3%82%92%e5%8f%96%e5%be%97%e3%81%99%e3%82%8b/" />
	</item>
		<item>
		<title>週末にまとめてクローズするEA</title>
		<link>http://metatraderfx.net/metatrader-beginner/%e9%80%b1%e6%9c%ab%e3%81%ab%e3%81%be%e3%81%a8%e3%82%81%e3%81%a6%e3%82%af%e3%83%ad%e3%83%bc%e3%82%ba%e3%81%99%e3%82%8bea/</link>
		<comments>http://metatraderfx.net/metatrader-beginner/%e9%80%b1%e6%9c%ab%e3%81%ab%e3%81%be%e3%81%a8%e3%82%81%e3%81%a6%e3%82%af%e3%83%ad%e3%83%bc%e3%82%ba%e3%81%99%e3%82%8bea/#comments</comments>
		<pubDate>Tue, 26 May 2009 12:24:16 +0000</pubDate>
		<dc:creator>kei</dc:creator>
				<category><![CDATA[MQL4]]></category>
		<category><![CDATA[メタトレーダー入門]]></category>
		<category><![CDATA[自動売買]]></category>
		<category><![CDATA[プログラミング]]></category>
		<category><![CDATA[入門]]></category>
		<category><![CDATA[ＥＡ]]></category>

		<guid isPermaLink="false">http://metatraderfx.net/?p=331</guid>
		<description><![CDATA[サンプルプログラムばかりであまり役に立っていないと思うので、ほしい人はほしいもの。
 
週末持ち越しは、いやだけどEAがポジション持ちっぱなしなんだよね！
という人のために、週末に強制的にクローズするEAです。
 
１２１証券のようにサーバが日本時間であることを前提に話します。
別の時間帯を採用しているFX会社と契約している方は、時間を調整してください。
 
EAを作ってみるを参考にEAを作ってください。
名前は、WeekendCloseとします。
 
パラメータは、ウィザードで設定してもらっても構いませんし、コードに以下のように指定してもらっても構いません。
extern int CloseWeek=6;
extern int CloseTime=5;
CloseWeekの6は、土曜日。
CloseTimeの5は、5時です。
 
曜日は、日曜日が0で、月曜日が1。
順番になっています。
 
まず、曜日と時刻をチェックする関数を追加します。
int ChkCloseTime()
{
    int ChkWeek=DayOfWeek();
    int ChkHour=Hour();
 
    if((ChkWeek==CloseWeek &#38;&#38; ChkHour&#62;=CloseTime))
    {
        return(1);
    }
    return(0);
}
 
曜日と時間を取得して、指定した曜日と時間以上なら、１を返します。
 
次に、チケット番号をクローズする関数を追加します。
 
void ClosingTicket(int CloseTicket)
{
    if(OrderSelect(CloseTicket, SELECT_BY_TICKET)==true)
    {
        if(OrderType() == OP_SELL &#124;&#124; OrderType() == OP_SELLLIMIT &#124;&#124; OrderType() == OP_SELLSTOP)
        {
            // Closing
            if(OrderClose(OrderTicket(),OrderLots(),Ask,3,Green) == false)
       [...]]]></description>
			<content:encoded><![CDATA[<p>サンプルプログラムばかりであまり役に立っていないと思うので、ほしい人はほしいもの。</p>
<p> </p>
<p>週末持ち越しは、いやだけどEAがポジション持ちっぱなしなんだよね！</p>
<p>という人のために、週末に強制的にクローズするEAです。</p>
<p> </p>
<p><a href="http://px.a8.net/svt/ejp?a8mat=1HPN4D+4EYTM2+1K86+631SZ" target="_blank">１２１証券</a>のようにサーバが日本時間であることを前提に話します。</p>
<p>別の時間帯を採用しているFX会社と契約している方は、時間を調整してください。</p>
<p> </p>
<p><a title="Permanent Link to EAを作ってみる" rel="bookmark" href="http://metatraderfx.net/metatrader-beginner/ea%e3%82%92%e4%bd%9c%e3%81%a3%e3%81%a6%e3%81%bf%e3%82%8b/" target="_blank">EAを作ってみる</a>を参考にEAを作ってください。</p>
<p>名前は、WeekendCloseとします。</p>
<p> </p>
<p>パラメータは、ウィザードで設定してもらっても構いませんし、コードに以下のように指定してもらっても構いません。</p>
<p>extern int CloseWeek=6;</p>
<p>extern int CloseTime=5;</p>
<p>CloseWeekの6は、土曜日。</p>
<p>CloseTimeの5は、5時です。</p>
<p> </p>
<p>曜日は、日曜日が0で、月曜日が1。</p>
<p>順番になっています。</p>
<p> </p>
<p>まず、曜日と時刻をチェックする関数を追加します。</p>
<p>int ChkCloseTime()</p>
<p>{</p>
<p>    int ChkWeek=DayOfWeek();</p>
<p>    int ChkHour=Hour();</p>
<p> </p>
<p>    if((ChkWeek==CloseWeek &amp;&amp; ChkHour&gt;=CloseTime))</p>
<p>    {</p>
<p>        return(1);</p>
<p>    }</p>
<p>    return(0);</p>
<p>}</p>
<p> </p>
<p>曜日と時間を取得して、指定した曜日と時間以上なら、１を返します。</p>
<p> </p>
<p>次に、チケット番号をクローズする関数を追加します。</p>
<p> </p>
<p>void ClosingTicket(int CloseTicket)</p>
<p>{</p>
<p>    if(OrderSelect(CloseTicket, SELECT_BY_TICKET)==true)</p>
<p>    {</p>
<p>        if(OrderType() == OP_SELL || OrderType() == OP_SELLLIMIT || OrderType() == OP_SELLSTOP)</p>
<p>        {</p>
<p>            // Closing</p>
<p>            if(OrderClose(OrderTicket(),OrderLots(),Ask,3,Green) == false)</p>
<p>            {</p>
<p>                OrderDelete(OrderTicket());</p>
<p>            }</p>
<p>        }</p>
<p>        else</p>
<p>        {</p>
<p>            // Closing</p>
<p>            if(OrderClose(OrderTicket(),OrderLots(),Bid,3,Green) == false)</p>
<p>            {</p>
<p>                OrderDelete(OrderTicket());</p>
<p>            }</p>
<p>        }</p>
<p>    }</p>
<p>}</p>
<p> </p>
<p>指定された、チケットのオーダーをコントロールできるようにしてからクローズします。</p>
<p>クローズに失敗したときは、未確定の注文として注文の取り消しを行っています。</p>
<p> </p>
<p>次に、実装部分を作ります。</p>
<p> </p>
<p>int start()</p>
<p>  {</p>
<p>    if(ChkCloseTime() == 0) return(0);</p>
<p> </p>
<p>    int total=OrdersTotal();</p>
<p>    int i;</p>
<p>    for(i=0;i &lt; total;i++){</p>
<p>        if(OrderSelect(i, SELECT_BY_POS)==true)</p>
<p>        {</p>
<p>           ClosingTicket(OrderTicket());</p>
<p>        }</p>
<p>    }</p>
<p> </p>
<p>   return(0);</p>
<p>  }</p>
<p> </p>
<p>まず、終了時間かチェックします。</p>
<p>まだなら、そのまま関数を抜けます。</p>
<p> </p>
<p>終了時間の場合は、現在もっているポジションを調べ、すべてのポジションをクローズしていきます。</p>
<p> </p>
<p>サンプルを参考に改造して使ってみてください。</p>
<p> </p>
<p> </p>
<p>今回のプログラムは、以下からダウンロードできます。</p>
<p><a href="http://download-center.metatraderfx.net/expert/%e9%80%b1%e6%9c%ab%e3%81%ab%e3%81%be%e3%81%a8%e3%82%81%e3%81%a6%e3%82%af%e3%83%ad%e3%83%bc%e3%82%ba%e3%81%99%e3%82%8bea/" target="_blank">ここから、ダウンロード</a></p>
<p> </p>
<p>EA（自動売買）は、</p>
<p>インストールパス\MetaTrader\experts</p>
<p>に入れてください。</p>
]]></content:encoded>
			<wfw:commentRss>http://metatraderfx.net/metatrader-beginner/%e9%80%b1%e6%9c%ab%e3%81%ab%e3%81%be%e3%81%a8%e3%82%81%e3%81%a6%e3%82%af%e3%83%ad%e3%83%bc%e3%82%ba%e3%81%99%e3%82%8bea/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://metatraderfx.net/metatrader-beginner/%e9%80%b1%e6%9c%ab%e3%81%ab%e3%81%be%e3%81%a8%e3%82%81%e3%81%a6%e3%82%af%e3%83%ad%e3%83%bc%e3%82%ba%e3%81%99%e3%82%8bea/" />
	</item>
		<item>
		<title>メール送信インジケータ</title>
		<link>http://metatraderfx.net/metatrader-beginner/%e3%83%a1%e3%83%bc%e3%83%ab%e9%80%81%e4%bf%a1%e3%82%a4%e3%83%b3%e3%82%b8%e3%82%b1%e3%83%bc%e3%82%bf/</link>
		<comments>http://metatraderfx.net/metatrader-beginner/%e3%83%a1%e3%83%bc%e3%83%ab%e9%80%81%e4%bf%a1%e3%82%a4%e3%83%b3%e3%82%b8%e3%82%b1%e3%83%bc%e3%82%bf/#comments</comments>
		<pubDate>Fri, 22 May 2009 01:36:29 +0000</pubDate>
		<dc:creator>kei</dc:creator>
				<category><![CDATA[インジケータ]]></category>
		<category><![CDATA[メタトレーダー入門]]></category>
		<category><![CDATA[簡単インジケータ作成テンプレート]]></category>
		<category><![CDATA[MQL4]]></category>
		<category><![CDATA[インジケーター]]></category>
		<category><![CDATA[テンプレート]]></category>
		<category><![CDATA[プログラミング]]></category>
		<category><![CDATA[ボリンジャーバンド]]></category>
		<category><![CDATA[メール送信]]></category>
		<category><![CDATA[入門]]></category>

		<guid isPermaLink="false">http://metatraderfx.net/?p=324</guid>
		<description><![CDATA[前回のインジケータを派手にするで、アラートウィンドウを開いたり、音を鳴らしたりしました。
今回は、メールを送信してみたいと思います。
ですが、メールの設定は結構めんどうなので、簡単にユーザを作れるYahooメールを例に設定を説明します。
とりあえず、Yahooメールと契約してください。
で、メール設定に「POPアクセスとメール転送」があります。
「ブラウザアクセスとPOPアクセス」にチェックを入れて、設定してください。
これで、Yahooメールの設定は終了です。
次は、メタトレーダーの設定です。
メニューのツール－オプションを開いてください。
「E-メール」タブで、
「有効にする」にチェックを入れます。
SMTPサーバー：「smtp.mail.yahoo.jpsmtp.mail.yahoo.co.jp:587」
SMTPログインID：「YahooのユーザID」
SMTPパスワード：「Yahooのパスワード」
発信元：「ユーザID@yahoo.co.jp」
送信先：「送信したいメールアドレス」
これを入力して、「Test」ボタンを押してください。
テストメールが送信されれば、設定OKです。
では、プログラムの方に行ってみましょう。
前回のソースを使います。
ここから、読み始めた人は、前回のインジケータを派手にするを見てくださいね。
では、DataSetを以下のように書き換えてください。
void DataSet(int i)
{
double dBBUp = iBands(NULL,0,Param1,2,0,PRICE_CLOSE,MODE_UPPER,i);
double dBBDown = iBands(NULL,0,Param1,2,0,PRICE_CLOSE,MODE_LOWER,i);
if(dBBUp &#60; High[i])
{
ExtMapBuffer1[i]=dBBUp;
if(ExtMapBuffer1[i+1] == EMPTY_VALUE)
{
if(i == 0){
SendMail(&#8221;Test BB&#8221; , &#8220;BBUp Over:&#8221; + DoubleToStr(High[i],Digits));
PlaySound(”alert.wav”);
}
ExtMapBuffer1[i+1] = ExtMapBuffer2[i+1];
}
}
else
{
ExtMapBuffer2[i]=dBBUp;
if(ExtMapBuffer2[i+1] == EMPTY_VALUE)ExtMapBuffer2[i+1] = ExtMapBuffer1[i+1];
}
if(dBBDown &#62; Low[i])
{
ExtMapBuffer3[i]=dBBDown;
if(ExtMapBuffer3[i+1] == EMPTY_VALUE)
{
if(i == 0){
SendMail(&#8221;Test BB&#8221; , &#8220;BBDown Over:&#8221; + DoubleToStr(Low[i],Digits));
PlaySound(”alert.wav”);
}
ExtMapBuffer3[i+1] = ExtMapBuffer4[i+1];
}
}
else
{
ExtMapBuffer4[i]=dBBDown;
if(ExtMapBuffer4[i+1] == EMPTY_VALUE)ExtMapBuffer4[i+1] = ExtMapBuffer3[i+1];
}
//   ExtMapBuffer5[i]=iMA(NULL,0,14,0,MODE_SMA,PRICE_WEIGHTED,i);
//   ExtMapBuffer6[i]=iMA(NULL,0,14,0,MODE_EMA,PRICE_WEIGHTED,i);
//   ExtMapBuffer7[i]=iMA(NULL,0,14,0,MODE_SMMA,PRICE_WEIGHTED,i);
//   ExtMapBuffer8[i]=iMA(NULL,0,14,0,MODE_LWMA,PRICE_WEIGHTED,i);
}
今回は、前回のアラートウィンドウの代わりにメール送信を行います。
SendMail(タイトル,本文);
を使います。
DoubleToStr(High[i],Digits)
で、High[i]の数字を文字型に変更しています。
DoubleToStr(double型の変数,有効小数点桁数)
Digitsは、現在の通貨ペアの小数点桁数を表します。
ということで、ボリンジャーバンドにタッチしたときの高値か安値をメールで送信するプログラムのできあがりです。
いままで、数回同じようなネタで行いましたが、結構簡単にいろいろなことができることが分かったと思います。
小難しいことを知らなくても意外と何とかなるでしょ！
では、また次回。
※YahooのSNTPサーバのアドレスが間違っていました。
]]></description>
			<content:encoded><![CDATA[<p>前回の<a href="http://metatraderfx.net/metatrader-beginner/%e3%82%a4%e3%83%b3%e3%82%b8%e3%82%b1%e3%83%bc%e3%82%bf%e3%82%92%e6%b4%be%e6%89%8b%e3%81%ab%e3%81%99%e3%82%8b/" target="_blank">インジケータを派手にする</a>で、アラートウィンドウを開いたり、音を鳴らしたりしました。</p>
<p>今回は、メールを送信してみたいと思います。</p>
<p>ですが、メールの設定は結構めんどうなので、簡単にユーザを作れるYahooメールを例に設定を説明します。</p>
<p>とりあえず、Yahooメールと契約してください。</p>
<p>で、メール設定に「POPアクセスとメール転送」があります。</p>
<p>「ブラウザアクセスとPOPアクセス」にチェックを入れて、設定してください。</p>
<p>これで、Yahooメールの設定は終了です。</p>
<p>次は、メタトレーダーの設定です。</p>
<p>メニューのツール－オプションを開いてください。</p>
<p>「E-メール」タブで、</p>
<p>「有効にする」にチェックを入れます。</p>
<p>SMTPサーバー：「<span><span style="text-decoration: line-through;">smtp.mail.yahoo.jp</span><span style="color: #ff0000;">smtp.mail.yahoo.co.jp</span></span>:587」</p>
<p>SMTPログインID：「YahooのユーザID」</p>
<p>SMTPパスワード：「Yahooのパスワード」</p>
<p>発信元：「ユーザID@yahoo.co.jp」</p>
<p>送信先：「送信したいメールアドレス」</p>
<p>これを入力して、「Test」ボタンを押してください。</p>
<p>テストメールが送信されれば、設定OKです。</p>
<p>では、プログラムの方に行ってみましょう。</p>
<p>前回のソースを使います。</p>
<p>ここから、読み始めた人は、前回の<a href="http://metatraderfx.net/metatrader-beginner/%e3%82%a4%e3%83%b3%e3%82%b8%e3%82%b1%e3%83%bc%e3%82%bf%e3%82%92%e6%b4%be%e6%89%8b%e3%81%ab%e3%81%99%e3%82%8b/" target="_blank">インジケータを派手にする</a>を見てくださいね。</p>
<p>では、DataSetを以下のように書き換えてください。</p>
<p>void DataSet(int i)</p>
<p>{</p>
<p>double dBBUp = iBands(NULL,0,Param1,2,0,PRICE_CLOSE,MODE_UPPER,i);</p>
<p>double dBBDown = iBands(NULL,0,Param1,2,0,PRICE_CLOSE,MODE_LOWER,i);</p>
<p>if(dBBUp &lt; High[i])</p>
<p>{</p>
<p>ExtMapBuffer1[i]=dBBUp;</p>
<p>if(ExtMapBuffer1[i+1] == EMPTY_VALUE)</p>
<p>{</p>
<p>if(i == 0){</p>
<p><span style="color: #ff00ff;">SendMail(&#8221;Test BB&#8221; , &#8220;BBUp Over:&#8221; + DoubleToStr(High[i],Digits));</span></p>
<p>PlaySound(”alert.wav”);</p>
<p>}</p>
<p>ExtMapBuffer1[i+1] = ExtMapBuffer2[i+1];</p>
<p>}</p>
<p>}</p>
<p>else</p>
<p>{</p>
<p>ExtMapBuffer2[i]=dBBUp;</p>
<p>if(ExtMapBuffer2[i+1] == EMPTY_VALUE)ExtMapBuffer2[i+1] = ExtMapBuffer1[i+1];</p>
<p>}</p>
<p>if(dBBDown &gt; Low[i])</p>
<p>{</p>
<p>ExtMapBuffer3[i]=dBBDown;</p>
<p>if(ExtMapBuffer3[i+1] == EMPTY_VALUE)</p>
<p>{</p>
<p>if(i == 0){</p>
<p><span style="color: #ff00ff;">SendMail(&#8221;Test BB&#8221; , &#8220;BBDown Over:&#8221; + DoubleToStr(Low[i],Digits));</span></p>
<p>PlaySound(”alert.wav”);</p>
<p>}</p>
<p>ExtMapBuffer3[i+1] = ExtMapBuffer4[i+1];</p>
<p>}</p>
<p>}</p>
<p>else</p>
<p>{</p>
<p>ExtMapBuffer4[i]=dBBDown;</p>
<p>if(ExtMapBuffer4[i+1] == EMPTY_VALUE)ExtMapBuffer4[i+1] = ExtMapBuffer3[i+1];</p>
<p>}</p>
<p>//   ExtMapBuffer5[i]=iMA(NULL,0,14,0,MODE_SMA,PRICE_WEIGHTED,i);</p>
<p>//   ExtMapBuffer6[i]=iMA(NULL,0,14,0,MODE_EMA,PRICE_WEIGHTED,i);</p>
<p>//   ExtMapBuffer7[i]=iMA(NULL,0,14,0,MODE_SMMA,PRICE_WEIGHTED,i);</p>
<p>//   ExtMapBuffer8[i]=iMA(NULL,0,14,0,MODE_LWMA,PRICE_WEIGHTED,i);</p>
<p>}</p>
<p>今回は、前回のアラートウィンドウの代わりにメール送信を行います。</p>
<p>SendMail(タイトル,本文);</p>
<p>を使います。</p>
<p>DoubleToStr(High[i],Digits)</p>
<p>で、High[i]の数字を文字型に変更しています。</p>
<p>DoubleToStr(double型の変数,有効小数点桁数)</p>
<p>Digitsは、現在の通貨ペアの小数点桁数を表します。</p>
<p>ということで、ボリンジャーバンドにタッチしたときの高値か安値をメールで送信するプログラムのできあがりです。</p>
<p>いままで、数回同じようなネタで行いましたが、結構簡単にいろいろなことができることが分かったと思います。</p>
<p>小難しいことを知らなくても意外と何とかなるでしょ！</p>
<p>では、また次回。</p>
<p><span id="more-324"></span><strong><span style="text-decoration: underline;"><span style="color: #ff0000;">※YahooのSNTPサーバのアドレスが間違っていました。</span></span></strong></p>
]]></content:encoded>
			<wfw:commentRss>http://metatraderfx.net/metatrader-beginner/%e3%83%a1%e3%83%bc%e3%83%ab%e9%80%81%e4%bf%a1%e3%82%a4%e3%83%b3%e3%82%b8%e3%82%b1%e3%83%bc%e3%82%bf/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://metatraderfx.net/metatrader-beginner/%e3%83%a1%e3%83%bc%e3%83%ab%e9%80%81%e4%bf%a1%e3%82%a4%e3%83%b3%e3%82%b8%e3%82%b1%e3%83%bc%e3%82%bf/" />
	</item>
		<item>
		<title>インジケータを派手にする</title>
		<link>http://metatraderfx.net/metatrader-beginner/%e3%82%a4%e3%83%b3%e3%82%b8%e3%82%b1%e3%83%bc%e3%82%bf%e3%82%92%e6%b4%be%e6%89%8b%e3%81%ab%e3%81%99%e3%82%8b/</link>
		<comments>http://metatraderfx.net/metatrader-beginner/%e3%82%a4%e3%83%b3%e3%82%b8%e3%82%b1%e3%83%bc%e3%82%bf%e3%82%92%e6%b4%be%e6%89%8b%e3%81%ab%e3%81%99%e3%82%8b/#comments</comments>
		<pubDate>Thu, 21 May 2009 02:03:18 +0000</pubDate>
		<dc:creator>kei</dc:creator>
				<category><![CDATA[インジケータ]]></category>
		<category><![CDATA[メタトレーダー入門]]></category>
		<category><![CDATA[簡単インジケータ作成テンプレート]]></category>
		<category><![CDATA[ウィンドウを表示する]]></category>
		<category><![CDATA[プログラミング]]></category>
		<category><![CDATA[入門]]></category>
		<category><![CDATA[音を出す]]></category>

		<guid isPermaLink="false">http://metatraderfx.net/?p=316</guid>
		<description><![CDATA[前回のちょっと賢いボリンジャーバンドインジケータをちょっと派手にしたいと思います。
 
前回のソースをそのまま使うので、今回からお読みの方は、前回を参考にソースを作成してください。
 
で、どのように派手にするかというと、アラートウィンドウを開き、音を鳴らします。
リクエストもあったので、今回の例で説明します。
 
アラートウィンドウと音を鳴らすタイミングは、ボリンジャーバンドを抜けたときに行います。
 
では、DataSetを以下のように書き換えてください。
 
void DataSet(int i)
{
   double dBBUp = iBands(NULL,0,Param1,2,0,PRICE_CLOSE,MODE_UPPER,i);
   double dBBDown = iBands(NULL,0,Param1,2,0,PRICE_CLOSE,MODE_LOWER,i);
   if(dBBUp &#60; High[i])
   {
      ExtMapBuffer1[i]=dBBUp;
      if(ExtMapBuffer1[i+1] == EMPTY_VALUE)
      {
         if(i == 0){
            Alert(&#8221;BBUp Over:&#8221;,High[i]);
            PlaySound(&#8221;alert.wav&#8221;);
         }
         ExtMapBuffer1[i+1] = ExtMapBuffer2[i+1];
      }
   }
   else
   {
   [...]]]></description>
			<content:encoded><![CDATA[<p>前回の<a href="http://metatraderfx.net/uncategorized/%e3%81%a1%e3%82%87%e3%81%a3%e3%81%a8%e8%b3%a2%e3%81%84%e3%83%9c%e3%83%aa%e3%83%b3%e3%82%b8%e3%83%a3%e3%83%bc%e3%83%90%e3%83%b3%e3%83%89%e3%82%a4%e3%83%b3%e3%82%b8%e3%82%b1%e3%83%bc%e3%82%bf/" target="_blank">ちょっと賢いボリンジャーバンドインジケータ</a>をちょっと派手にしたいと思います。</p>
<p> </p>
<p>前回のソースをそのまま使うので、今回からお読みの方は、前回を参考にソースを作成してください。</p>
<p> </p>
<p>で、どのように派手にするかというと、アラートウィンドウを開き、音を鳴らします。</p>
<p>リクエストもあったので、今回の例で説明します。</p>
<p> </p>
<p>アラートウィンドウと音を鳴らすタイミングは、ボリンジャーバンドを抜けたときに行います。</p>
<p> </p>
<p>では、DataSetを以下のように書き換えてください。</p>
<p> </p>
<p>void DataSet(int i)</p>
<p>{</p>
<p>   double dBBUp = iBands(NULL,0,Param1,2,0,PRICE_CLOSE,MODE_UPPER,i);</p>
<p>   double dBBDown = iBands(NULL,0,Param1,2,0,PRICE_CLOSE,MODE_LOWER,i);</p>
<p>   if(dBBUp &lt; High[i])</p>
<p>   {</p>
<p>      ExtMapBuffer1[i]=dBBUp;</p>
<p>      if(ExtMapBuffer1[i+1] == EMPTY_VALUE)</p>
<p>      {</p>
<p>         if(i == 0){</p>
<p>            Alert(&#8221;BBUp Over:&#8221;,High[i]);</p>
<p>            PlaySound(&#8221;alert.wav&#8221;);</p>
<p>         }</p>
<p>         ExtMapBuffer1[i+1] = ExtMapBuffer2[i+1];</p>
<p>      }</p>
<p>   }</p>
<p>   else</p>
<p>   {</p>
<p>      ExtMapBuffer2[i]=dBBUp;</p>
<p>      if(ExtMapBuffer2[i+1] == EMPTY_VALUE)ExtMapBuffer2[i+1] = ExtMapBuffer1[i+1];</p>
<p>   }</p>
<p>   if(dBBDown &gt; Low[i])</p>
<p>   {</p>
<p>      ExtMapBuffer3[i]=dBBDown;</p>
<p>      if(ExtMapBuffer3[i+1] == EMPTY_VALUE)</p>
<p>      {</p>
<p>         if(i == 0){</p>
<p>            Alert(&#8221;BBDown Over:&#8221;,Low[i]);</p>
<p>            PlaySound(&#8221;alert.wav&#8221;);</p>
<p>         }</p>
<p>         ExtMapBuffer3[i+1] = ExtMapBuffer4[i+1];</p>
<p>      }</p>
<p>   }</p>
<p>   else</p>
<p>   {</p>
<p>      ExtMapBuffer4[i]=dBBDown;</p>
<p>      if(ExtMapBuffer4[i+1] == EMPTY_VALUE)ExtMapBuffer4[i+1] = ExtMapBuffer3[i+1];</p>
<p>   }</p>
<p>//   ExtMapBuffer5[i]=iMA(NULL,0,14,0,MODE_SMA,PRICE_WEIGHTED,i);</p>
<p>//   ExtMapBuffer6[i]=iMA(NULL,0,14,0,MODE_EMA,PRICE_WEIGHTED,i);</p>
<p>//   ExtMapBuffer7[i]=iMA(NULL,0,14,0,MODE_SMMA,PRICE_WEIGHTED,i);</p>
<p>//   ExtMapBuffer8[i]=iMA(NULL,0,14,0,MODE_LWMA,PRICE_WEIGHTED,i);</p>
<p>}</p>
<p>if(i == 0)でくくっているのは、過去のラインを描画するときにもメッセージや音が出てしまうためです。</p>
<p>新規にボリンジャーバンドを抜けたときだけ、処理を行います。</p>
<p> </p>
<p>Alertは、アラートウィンドウを表示する関数で、引数はコメントと同じで「,」カンマ区切りで、文字や数値を連結できます。</p>
<p>PlaySoundは、音を出す命令で、引数にサウンドファイル名を指定します。</p>
<p>インストールパス\MetaTrader\sounds</p>
<p>に入っているファイルを指定できます。</p>
<p> </p>
<p>これで、好きなときに音を出したりできますね。</p>
<p> </p>
<p>色々挑戦してみてください。</p>
]]></content:encoded>
			<wfw:commentRss>http://metatraderfx.net/metatrader-beginner/%e3%82%a4%e3%83%b3%e3%82%b8%e3%82%b1%e3%83%bc%e3%82%bf%e3%82%92%e6%b4%be%e6%89%8b%e3%81%ab%e3%81%99%e3%82%8b/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://metatraderfx.net/metatrader-beginner/%e3%82%a4%e3%83%b3%e3%82%b8%e3%82%b1%e3%83%bc%e3%82%bf%e3%82%92%e6%b4%be%e6%89%8b%e3%81%ab%e3%81%99%e3%82%8b/" />
	</item>
		<item>
		<title>ちょっと賢いボリンジャーバンドインジケータ</title>
		<link>http://metatraderfx.net/metatrader-beginner/%e3%81%a1%e3%82%87%e3%81%a3%e3%81%a8%e8%b3%a2%e3%81%84%e3%83%9c%e3%83%aa%e3%83%b3%e3%82%b8%e3%83%a3%e3%83%bc%e3%83%90%e3%83%b3%e3%83%89%e3%82%a4%e3%83%b3%e3%82%b8%e3%82%b1%e3%83%bc%e3%82%bf/</link>
		<comments>http://metatraderfx.net/metatrader-beginner/%e3%81%a1%e3%82%87%e3%81%a3%e3%81%a8%e8%b3%a2%e3%81%84%e3%83%9c%e3%83%aa%e3%83%b3%e3%82%b8%e3%83%a3%e3%83%bc%e3%83%90%e3%83%b3%e3%83%89%e3%82%a4%e3%83%b3%e3%82%b8%e3%82%b1%e3%83%bc%e3%82%bf/#comments</comments>
		<pubDate>Tue, 19 May 2009 22:07:54 +0000</pubDate>
		<dc:creator>kei</dc:creator>
				<category><![CDATA[MQL4]]></category>
		<category><![CDATA[インジケータ]]></category>
		<category><![CDATA[メタトレーダー入門]]></category>
		<category><![CDATA[簡単インジケータ作成テンプレート]]></category>
		<category><![CDATA[インジケーター]]></category>
		<category><![CDATA[サンプル]]></category>
		<category><![CDATA[テンプレート]]></category>
		<category><![CDATA[プログラミング]]></category>
		<category><![CDATA[ボリンジャーバンド]]></category>
		<category><![CDATA[入門]]></category>

		<guid isPermaLink="false">http://metatraderfx.net/?p=312</guid>
		<description><![CDATA[前回に引き続き、「簡単インジケータ作成テンプレート」を使ったサンプルを作ってみます。
今回もボリンジャーバンドを利用します。
 
ボリンジャーバンドにタッチしたら、売ったり買ったりすることが結構あると思います。
でも、本当にタッチしているかどうか分かりにくいですよね。
なので、タッチしているときだけ色を変えるようなインジケータを作ってみます。
 
まだ、テンプレートをダウンロードしていない人は、「簡単インジケータ作成テンプレート」からダウンロードしてください。
 
indicator_temp.mq4をコピーして、適当な名前にしてください。
例として、BB_I.mq4とします。
このファイルは、
インストールパス\MetaTrader\experts\indicators
に入れてくださいね。
 
いつものようにメタトレーダーを起動して、メタエディターを開いてください。
そこで、先ほど作ったBB_I.mq4を開きます。
 
変更する場所は、一番下の関数
DataSetだけです。
 
以下のように修正してみてください。
 
void DataSet(int i)
{
   double dBBUp = iBands(NULL,0,Param1,2,0,PRICE_CLOSE,MODE_UPPER,i);
   double dBBDown = iBands(NULL,0,Param1,2,0,PRICE_CLOSE,MODE_LOWER,i);
   if(dBBUp &#60; High[i])
   {
      ExtMapBuffer1[i]=dBBUp;
   }
   else
   {
      ExtMapBuffer2[i]=dBBUp;
   }
   if(dBBDown &#62; Low[i])
   {
      ExtMapBuffer3[i]=dBBDown;
   }
   else
   {
      ExtMapBuffer4[i]=dBBDown;
   }
//   ExtMapBuffer5[i]=iMA(NULL,0,14,0,MODE_SMA,PRICE_WEIGHTED,i);
//   ExtMapBuffer6[i]=iMA(NULL,0,14,0,MODE_EMA,PRICE_WEIGHTED,i);
//   ExtMapBuffer7[i]=iMA(NULL,0,14,0,MODE_SMMA,PRICE_WEIGHTED,i);
//   ExtMapBuffer8[i]=iMA(NULL,0,14,0,MODE_LWMA,PRICE_WEIGHTED,i);
}
今回は、上下2色使うので、上側にExtMapBuffer1、ExtMapBuffer2
下側に、ExtMapBuffer3、ExtMapBuffer4を割り当てます。
ボリンジャーバンドの上側のラインより高値が高い場合に、ExtMapBuffer1に値をセット。
低い場合に、ExtMapBuffer2にセットします。
下側も同様にセットしています。
 
ボリンジャーバンドで利用する足の数を変えられるように、Param1を使いました。
 
コンパイルして、描画させたいグラフにドロップしてみてください。
Param1は0になっているので、21とか適当な値にしてください。
線の太さや色もパラメータで設定できますので、いじってみてくださいね。
 
表示させた結果、ちゃんと色が変わっているのが分かりましたか？
 
 
でも、なんか線が飛んでいませんか？
データを入れていないところは、デフォルトでEMPTY_VALUEという描画しない値が、入っています。
ちょうど、書き始めに値が入っていないため抜けているんですね。
 
というわけで、ちょっと気持ち悪いので、たりない情報を別のバッファからもらうように修正してみます。
 
void DataSet(int i)
{
   double dBBUp = iBands(NULL,0,Param1,2,0,PRICE_CLOSE,MODE_UPPER,i);
   double dBBDown = iBands(NULL,0,Param1,2,0,PRICE_CLOSE,MODE_LOWER,i);
   if(dBBUp &#60; [...]]]></description>
			<content:encoded><![CDATA[<p>前回に引き続き、「<a href="http://download-center.metatraderfx.net/indicator/%e7%b0%a1%e5%8d%98%e3%82%a4%e3%83%b3%e3%82%b8%e3%82%b1%e3%83%bc%e3%82%bf%e4%bd%9c%e6%88%90%e3%83%86%e3%83%b3%e3%83%97%e3%83%ac%e3%83%bc%e3%83%88/" target="_blank">簡単インジケータ作成テンプレート</a>」を使ったサンプルを作ってみます。</p>
<p>今回もボリンジャーバンドを利用します。</p>
<p> </p>
<p>ボリンジャーバンドにタッチしたら、売ったり買ったりすることが結構あると思います。</p>
<p>でも、本当にタッチしているかどうか分かりにくいですよね。</p>
<p>なので、タッチしているときだけ色を変えるようなインジケータを作ってみます。</p>
<p> </p>
<p>まだ、テンプレートをダウンロードしていない人は、「<a href="http://download-center.metatraderfx.net/indicator/%e7%b0%a1%e5%8d%98%e3%82%a4%e3%83%b3%e3%82%b8%e3%82%b1%e3%83%bc%e3%82%bf%e4%bd%9c%e6%88%90%e3%83%86%e3%83%b3%e3%83%97%e3%83%ac%e3%83%bc%e3%83%88/" target="_blank">簡単インジケータ作成テンプレート</a>」からダウンロードしてください。</p>
<p> </p>
<p>indicator_temp.mq4をコピーして、適当な名前にしてください。</p>
<p>例として、BB_I.mq4とします。</p>
<p>このファイルは、</p>
<p>インストールパス\MetaTrader\experts\indicators</p>
<p>に入れてくださいね。</p>
<p> </p>
<p>いつものようにメタトレーダーを起動して、メタエディターを開いてください。</p>
<p>そこで、先ほど作ったBB_I.mq4を開きます。</p>
<p> </p>
<p>変更する場所は、一番下の関数</p>
<p>DataSetだけです。</p>
<p> </p>
<p>以下のように修正してみてください。</p>
<p> </p>
<p>void DataSet(int i)</p>
<p>{</p>
<p>   double dBBUp = iBands(NULL,0,Param1,2,0,PRICE_CLOSE,MODE_UPPER,i);</p>
<p>   double dBBDown = iBands(NULL,0,Param1,2,0,PRICE_CLOSE,MODE_LOWER,i);</p>
<p>   if(dBBUp &lt; High[i])</p>
<p>   {</p>
<p>      ExtMapBuffer1[i]=dBBUp;</p>
<p>   }</p>
<p>   else</p>
<p>   {</p>
<p>      ExtMapBuffer2[i]=dBBUp;</p>
<p>   }</p>
<p>   if(dBBDown &gt; Low[i])</p>
<p>   {</p>
<p>      ExtMapBuffer3[i]=dBBDown;</p>
<p>   }</p>
<p>   else</p>
<p>   {</p>
<p>      ExtMapBuffer4[i]=dBBDown;</p>
<p>   }</p>
<p>//   ExtMapBuffer5[i]=iMA(NULL,0,14,0,MODE_SMA,PRICE_WEIGHTED,i);</p>
<p>//   ExtMapBuffer6[i]=iMA(NULL,0,14,0,MODE_EMA,PRICE_WEIGHTED,i);</p>
<p>//   ExtMapBuffer7[i]=iMA(NULL,0,14,0,MODE_SMMA,PRICE_WEIGHTED,i);</p>
<p>//   ExtMapBuffer8[i]=iMA(NULL,0,14,0,MODE_LWMA,PRICE_WEIGHTED,i);</p>
<p>}</p>
<p>今回は、上下2色使うので、上側にExtMapBuffer1、ExtMapBuffer2</p>
<p>下側に、ExtMapBuffer3、ExtMapBuffer4を割り当てます。</p>
<p>ボリンジャーバンドの上側のラインより高値が高い場合に、ExtMapBuffer1に値をセット。</p>
<p>低い場合に、ExtMapBuffer2にセットします。</p>
<p>下側も同様にセットしています。</p>
<p> </p>
<p>ボリンジャーバンドで利用する足の数を変えられるように、Param1を使いました。</p>
<p> </p>
<p>コンパイルして、描画させたいグラフにドロップしてみてください。</p>
<p>Param1は0になっているので、21とか適当な値にしてください。</p>
<p>線の太さや色もパラメータで設定できますので、いじってみてくださいね。</p>
<p> </p>
<p>表示させた結果、ちゃんと色が変わっているのが分かりましたか？</p>
<p> </p>
<p> </p>
<p>でも、なんか線が飛んでいませんか？</p>
<p>データを入れていないところは、デフォルトでEMPTY_VALUEという描画しない値が、入っています。</p>
<p>ちょうど、書き始めに値が入っていないため抜けているんですね。</p>
<p> </p>
<p>というわけで、ちょっと気持ち悪いので、たりない情報を別のバッファからもらうように修正してみます。</p>
<p> </p>
<p>void DataSet(int i)</p>
<p>{</p>
<p>   double dBBUp = iBands(NULL,0,Param1,2,0,PRICE_CLOSE,MODE_UPPER,i);</p>
<p>   double dBBDown = iBands(NULL,0,Param1,2,0,PRICE_CLOSE,MODE_LOWER,i);</p>
<p>   if(dBBUp &lt; High[i])</p>
<p>   {</p>
<p>      ExtMapBuffer1[i]=dBBUp;</p>
<p>      if(ExtMapBuffer1[i+1] == EMPTY_VALUE)ExtMapBuffer1[i+1] = ExtMapBuffer2[i+1];</p>
<p>   }</p>
<p>   else</p>
<p>   {</p>
<p>      ExtMapBuffer2[i]=dBBUp;</p>
<p>      if(ExtMapBuffer2[i+1] == EMPTY_VALUE)ExtMapBuffer2[i+1] = ExtMapBuffer1[i+1];</p>
<p>   }</p>
<p>   if(dBBDown &gt; Low[i])</p>
<p>   {</p>
<p>      ExtMapBuffer3[i]=dBBDown;</p>
<p>      if(ExtMapBuffer3[i+1] == EMPTY_VALUE)ExtMapBuffer3[i+1] = ExtMapBuffer4[i+1];</p>
<p>   }</p>
<p>   else</p>
<p>   {</p>
<p>      ExtMapBuffer4[i]=dBBDown;</p>
<p>      if(ExtMapBuffer4[i+1] == EMPTY_VALUE)ExtMapBuffer4[i+1] = ExtMapBuffer3[i+1];</p>
<p>   }</p>
<p>//   ExtMapBuffer5[i]=iMA(NULL,0,14,0,MODE_SMA,PRICE_WEIGHTED,i);</p>
<p>//   ExtMapBuffer6[i]=iMA(NULL,0,14,0,MODE_EMA,PRICE_WEIGHTED,i);</p>
<p>//   ExtMapBuffer7[i]=iMA(NULL,0,14,0,MODE_SMMA,PRICE_WEIGHTED,i);</p>
<p>//   ExtMapBuffer8[i]=iMA(NULL,0,14,0,MODE_LWMA,PRICE_WEIGHTED,i);</p>
<p>}</p>
<p>これで、試してみてください。</p>
<p>うまくいったでしょ。</p>
<p>ちなみにコンパイルするとパラメータの設定が初期化されてしまいます。</p>
<p> </p>
<p>気になる人は、上の方の</p>
<p>#property indicator_color1 Red</p>
<p>#property indicator_color2 Blue</p>
<p>#property indicator_color3 Green</p>
<p>#property indicator_color4 Yellow</p>
<p>extern int Param1=0;</p>
<p> </p>
<p>の値を変えてみてくださいね。</p>
]]></content:encoded>
			<wfw:commentRss>http://metatraderfx.net/metatrader-beginner/%e3%81%a1%e3%82%87%e3%81%a3%e3%81%a8%e8%b3%a2%e3%81%84%e3%83%9c%e3%83%aa%e3%83%b3%e3%82%b8%e3%83%a3%e3%83%bc%e3%83%90%e3%83%b3%e3%83%89%e3%82%a4%e3%83%b3%e3%82%b8%e3%82%b1%e3%83%bc%e3%82%bf/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://metatraderfx.net/metatrader-beginner/%e3%81%a1%e3%82%87%e3%81%a3%e3%81%a8%e8%b3%a2%e3%81%84%e3%83%9c%e3%83%aa%e3%83%b3%e3%82%b8%e3%83%a3%e3%83%bc%e3%83%90%e3%83%b3%e3%83%89%e3%82%a4%e3%83%b3%e3%82%b8%e3%82%b1%e3%83%bc%e3%82%bf/" />
	</item>
		<item>
		<title>簡単インジケータ作成テンプレート</title>
		<link>http://metatraderfx.net/metatrader-beginner/%e7%b0%a1%e5%8d%98%e3%82%a4%e3%83%b3%e3%82%b8%e3%82%b1%e3%83%bc%e3%82%bf%e4%bd%9c%e6%88%90%e3%83%86%e3%83%b3%e3%83%97%e3%83%ac%e3%83%bc%e3%83%88/</link>
		<comments>http://metatraderfx.net/metatrader-beginner/%e7%b0%a1%e5%8d%98%e3%82%a4%e3%83%b3%e3%82%b8%e3%82%b1%e3%83%bc%e3%82%bf%e4%bd%9c%e6%88%90%e3%83%86%e3%83%b3%e3%83%97%e3%83%ac%e3%83%bc%e3%83%88/#comments</comments>
		<pubDate>Mon, 18 May 2009 22:12:26 +0000</pubDate>
		<dc:creator>kei</dc:creator>
				<category><![CDATA[インジケータ]]></category>
		<category><![CDATA[メタトレーダー入門]]></category>
		<category><![CDATA[簡単インジケータ作成テンプレート]]></category>
		<category><![CDATA[MQL4]]></category>
		<category><![CDATA[RSI]]></category>
		<category><![CDATA[インジケーター]]></category>
		<category><![CDATA[プログラミング]]></category>
		<category><![CDATA[ボリンジャーバンド]]></category>
		<category><![CDATA[入門]]></category>
		<category><![CDATA[移動平均]]></category>

		<guid isPermaLink="false">http://metatraderfx.net/?p=303</guid>
		<description><![CDATA[インジケータプログラムの楽しさを知ってもらうために、「簡単インジケータ作成テンプレート」を作成しました。
まず、ダウンロードしてください。
 
それでは、簡単に使い方を説明します。
 
indicator_temp.mq4
を作りたいインジケータ名に変更します。
 
今回は、サンプルでボリンジャーバンドを表示してみたいと思います。
ですので、ファイル名を「Bands_I.mq4」に変更してください。
 
リネームしたファイルを以下のフォルダーへコピーしてください。
インストールパス\MetaTrader\experts\indicators
 
では、メタトレーダーを起動して、メタエディターを起動してください。
ナビゲータウィンドウのFilesタブにindicatorsを開くと、ファイル一覧が表示されます。
ここに先ほどコピーした、「Bands_I.mq4」があるはずなので、ダブルクリックして開いてください。
 
下の方に、「DataSet」という関数があります。
このテンプレートでは、基本的にこの中だけをいじります。
 
では、以下のように書き換えてください。
 
void DataSet(int i)
{
   ExtMapBuffer1[i]=iBands(NULL,0,21,3,0,PRICE_CLOSE,MODE_UPPER,i);
   ExtMapBuffer2[i]=iBands(NULL,0,21,2,0,PRICE_CLOSE,MODE_UPPER,i);
   ExtMapBuffer3[i]=iBands(NULL,0,21,1,0,PRICE_CLOSE,MODE_UPPER,i);
   ExtMapBuffer4[i]=iMA(NULL,0,21,0,MODE_SMA,PRICE_CLOSE,i);
   ExtMapBuffer5[i]=iBands(NULL,0,21,1,0,PRICE_CLOSE,MODE_LOWER,i);
   ExtMapBuffer6[i]=iBands(NULL,0,21,2,0,PRICE_CLOSE,MODE_LOWER,i);
   ExtMapBuffer7[i]=iBands(NULL,0,21,3,0,PRICE_CLOSE,MODE_LOWER,i);
//   ExtMapBuffer8[i]=iMA(NULL,0,14,0,MODE_LWMA,PRICE_WEIGHTED,i);
}
 
ラインは、７本使うので最後の1行はコメントアウトしています。
ボリンジャーバンドの3θ、2θ、1θを上下1本ずつ、合計6本と中央に移動平均を引くので、合計7本です。
このように、メタトレーダー標準の関数の値を代入するだけで、お手軽にいろいろな線を引くことができるテンプレートとなっています。
標準では、メインウィンドウへ書きますので、現在のレートに近い値を代入しないと表示できません。
※範囲外になってしまうので。。。
もし、サブウィンドウに表示したいときは、
上の方にある

#property indicator_chart_window
//#property indicator_separate_window

を

//#property indicator_chart_window
#property indicator_separate_window
 
のようにコメントを変更してください。
ちなみに以下のように書き直すと、RSIが表示できます。
 

void DataSet(int i)
{
   ExtMapBuffer1[i]=iRSI(NULL,0,21,PRICE_CLOSE,i);
//   ExtMapBuffer2[i]=iMA(NULL,0,7,0,MODE_EMA,PRICE_WEIGHTED,i);
//   ExtMapBuffer3[i]=iMA(NULL,0,7,0,MODE_SMMA,PRICE_WEIGHTED,i);
//   ExtMapBuffer4[i]=iMA(NULL,0,7,0,MODE_LWMA,PRICE_WEIGHTED,i);
//   ExtMapBuffer5[i]=iMA(NULL,0,14,0,MODE_SMA,PRICE_WEIGHTED,i);
//   ExtMapBuffer6[i]=iMA(NULL,0,14,0,MODE_EMA,PRICE_WEIGHTED,i);
//   ExtMapBuffer7[i]=iMA(NULL,0,14,0,MODE_SMMA,PRICE_WEIGHTED,i);
//   ExtMapBuffer8[i]=iMA(NULL,0,14,0,MODE_LWMA,PRICE_WEIGHTED,i);
}
 
このように、比較的簡単にいろいろな指標を表示できます。
次回から、このテンプレートを使って遊んでみたいと思います。
]]></description>
			<content:encoded><![CDATA[<p>インジケータプログラムの楽しさを知ってもらうために、「<a href="http://download-center.metatraderfx.net/indicator/%e7%b0%a1%e5%8d%98%e3%82%a4%e3%83%b3%e3%82%b8%e3%82%b1%e3%83%bc%e3%82%bf%e4%bd%9c%e6%88%90%e3%83%86%e3%83%b3%e3%83%97%e3%83%ac%e3%83%bc%e3%83%88/" target="_blank">簡単インジケータ作成テンプレート</a>」を作成しました。</p>
<p>まず、ダウンロードしてください。</p>
<p> </p>
<p>それでは、簡単に使い方を説明します。</p>
<p> </p>
<p>indicator_temp.mq4</p>
<p>を作りたいインジケータ名に変更します。</p>
<p> </p>
<p>今回は、サンプルでボリンジャーバンドを表示してみたいと思います。</p>
<p>ですので、ファイル名を「Bands_I.mq4」に変更してください。</p>
<p> </p>
<p>リネームしたファイルを以下のフォルダーへコピーしてください。</p>
<p>インストールパス\MetaTrader\experts\indicators</p>
<p> </p>
<p>では、メタトレーダーを起動して、メタエディターを起動してください。</p>
<p>ナビゲータウィンドウのFilesタブにindicatorsを開くと、ファイル一覧が表示されます。</p>
<p>ここに先ほどコピーした、「Bands_I.mq4」があるはずなので、ダブルクリックして開いてください。</p>
<p> </p>
<p>下の方に、「DataSet」という関数があります。</p>
<p>このテンプレートでは、基本的にこの中だけをいじります。</p>
<p> </p>
<p>では、以下のように書き換えてください。</p>
<p> </p>
<p>void DataSet(int i)</p>
<p>{</p>
<p>   ExtMapBuffer1[i]=<a href="http://googolyenfx.blog18.fc2.com/blog-entry-171.html" target="_blank">iBands</a>(NULL,0,21,3,0,PRICE_CLOSE,MODE_UPPER,i);</p>
<p>   ExtMapBuffer2[i]=<a href="http://googolyenfx.blog18.fc2.com/blog-entry-171.html" target="_blank">iBands</a>(NULL,0,21,2,0,PRICE_CLOSE,MODE_UPPER,i);</p>
<p>   ExtMapBuffer3[i]=<a href="http://googolyenfx.blog18.fc2.com/blog-entry-171.html" target="_blank">iBands</a>(NULL,0,21,1,0,PRICE_CLOSE,MODE_UPPER,i);</p>
<p>   ExtMapBuffer4[i]=<a href="http://googolyenfx.blog18.fc2.com/blog-entry-188.html" target="_blank">iMA</a>(NULL,0,21,0,MODE_SMA,PRICE_CLOSE,i);</p>
<p>   ExtMapBuffer5[i]=<a href="http://googolyenfx.blog18.fc2.com/blog-entry-171.html" target="_blank">iBands</a>(NULL,0,21,1,0,PRICE_CLOSE,MODE_LOWER,i);</p>
<p>   ExtMapBuffer6[i]=<a href="http://googolyenfx.blog18.fc2.com/blog-entry-171.html" target="_blank">iBands</a>(NULL,0,21,2,0,PRICE_CLOSE,MODE_LOWER,i);</p>
<p>   ExtMapBuffer7[i]=<a href="http://googolyenfx.blog18.fc2.com/blog-entry-171.html" target="_blank">iBands</a>(NULL,0,21,3,0,PRICE_CLOSE,MODE_LOWER,i);</p>
<p>//   ExtMapBuffer8[i]=iMA(NULL,0,14,0,MODE_LWMA,PRICE_WEIGHTED,i);</p>
<p>}</p>
<p> </p>
<p>ラインは、７本使うので最後の1行はコメントアウトしています。</p>
<p>ボリンジャーバンドの3θ、2θ、1θを上下1本ずつ、合計6本と中央に移動平均を引くので、合計7本です。</p>
<p>このように、メタトレーダー標準の関数の値を代入するだけで、お手軽にいろいろな線を引くことができるテンプレートとなっています。</p>
<p>標準では、メインウィンドウへ書きますので、現在のレートに近い値を代入しないと表示できません。</p>
<p>※範囲外になってしまうので。。。</p>
<div>もし、サブウィンドウに表示したいときは、</div>
<div>上の方にある</div>
<div>
<div>#property indicator_chart_window</div>
<div><span style="color: #00ff00;">//#property indicator_separate_window</span></div>
</div>
<div>を</div>
<div>
<div><span style="color: #ff9900;">//#property indicator_chart_window</span></div>
<div>#property indicator_separate_window</div>
<p> </p></div>
<p>のようにコメントを変更してください。</p>
<p>ちなみに以下のように書き直すと、RSIが表示できます。</p>
<p> </p>
<div>
<div>void DataSet(int i)</div>
<div>{</div>
<div>   ExtMapBuffer1[i]=<a href="http://googolyenfx.blog18.fc2.com/blog-entry-194.html" target="_blank">iRSI</a>(NULL,0,21,PRICE_CLOSE,i);</div>
<div>//   ExtMapBuffer2[i]=iMA(NULL,0,7,0,MODE_EMA,PRICE_WEIGHTED,i);</div>
<div>//   ExtMapBuffer3[i]=iMA(NULL,0,7,0,MODE_SMMA,PRICE_WEIGHTED,i);</div>
<div>//   ExtMapBuffer4[i]=iMA(NULL,0,7,0,MODE_LWMA,PRICE_WEIGHTED,i);</div>
<div>//   ExtMapBuffer5[i]=iMA(NULL,0,14,0,MODE_SMA,PRICE_WEIGHTED,i);</div>
<div>//   ExtMapBuffer6[i]=iMA(NULL,0,14,0,MODE_EMA,PRICE_WEIGHTED,i);</div>
<div>//   ExtMapBuffer7[i]=iMA(NULL,0,14,0,MODE_SMMA,PRICE_WEIGHTED,i);</div>
<div>//   ExtMapBuffer8[i]=iMA(NULL,0,14,0,MODE_LWMA,PRICE_WEIGHTED,i);</div>
<div>}</div>
<p> </p></div>
<p>このように、比較的簡単にいろいろな指標を表示できます。</p>
<p>次回から、このテンプレートを使って遊んでみたいと思います。</p>
]]></content:encoded>
			<wfw:commentRss>http://metatraderfx.net/metatrader-beginner/%e7%b0%a1%e5%8d%98%e3%82%a4%e3%83%b3%e3%82%b8%e3%82%b1%e3%83%bc%e3%82%bf%e4%bd%9c%e6%88%90%e3%83%86%e3%83%b3%e3%83%97%e3%83%ac%e3%83%bc%e3%83%88/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://metatraderfx.net/metatrader-beginner/%e7%b0%a1%e5%8d%98%e3%82%a4%e3%83%b3%e3%82%b8%e3%82%b1%e3%83%bc%e3%82%bf%e4%bd%9c%e6%88%90%e3%83%86%e3%83%b3%e3%83%97%e3%83%ac%e3%83%bc%e3%83%88/" />
	</item>
		<item>
		<title>プログラムが組める自分を想像する</title>
		<link>http://metatraderfx.net/metatrader-beginner/%e3%83%97%e3%83%ad%e3%82%b0%e3%83%a9%e3%83%a0%e3%81%8c%e7%b5%84%e3%82%81%e3%82%8b%e8%87%aa%e5%88%86%e3%82%92%e6%83%b3%e5%83%8f%e3%81%99%e3%82%8b/</link>
		<comments>http://metatraderfx.net/metatrader-beginner/%e3%83%97%e3%83%ad%e3%82%b0%e3%83%a9%e3%83%a0%e3%81%8c%e7%b5%84%e3%82%81%e3%82%8b%e8%87%aa%e5%88%86%e3%82%92%e6%83%b3%e5%83%8f%e3%81%99%e3%82%8b/#comments</comments>
		<pubDate>Mon, 18 May 2009 02:45:04 +0000</pubDate>
		<dc:creator>kei</dc:creator>
				<category><![CDATA[メタトレーダープログラミング]]></category>
		<category><![CDATA[メタトレーダー入門]]></category>
		<category><![CDATA[FXとは]]></category>
		<category><![CDATA[MQL4]]></category>
		<category><![CDATA[MT4]]></category>
		<category><![CDATA[インジケーター]]></category>
		<category><![CDATA[サンプル]]></category>
		<category><![CDATA[バックテスト]]></category>
		<category><![CDATA[プログラミング]]></category>
		<category><![CDATA[入門]]></category>
		<category><![CDATA[自動売買]]></category>

		<guid isPermaLink="false">http://metatraderfx.net/?p=292</guid>
		<description><![CDATA[FXや株でも何でもそうですが、過去のデータを参考に投資を行うと思います。
自分なりに、相場がこうなるといい感じになりそうだから買おう、とかルールを決めている人が多いと思います。
 
というか、ルールを決めないとほとんどギャンブルになっちゃうので、決めましょうね。
 
で、このルールを見つけるのが大変ですよね。
私も日々、見つけようと努力しています。
 
グラフなどをみて、この線を組み合わせるといいかもしれない！
と思ったら、過去にどうなっているか調べるわけです。
 
ここからが、プログラムを組める人と組めない人の差が開きます。
 
組めない人は、グラフとにらめっこして、ここでは増えた、ここではダメ。
とかすべて、見ていかなければなりません。
その上、パラメータをいじってみたら、もう一度同じことを繰り返す必要があります。
 
大変ですよね。
たぶん、ルールを見つける作業がいやになるのは、この辺ではないかと。。。
 
逆にプログラムを組める人は、最初にルールを元にしたプログラムを組みます。
後は、解析結果を待つだけです。
バックテストで、パラメータを変えながら最適な結果を見つける方法も説明しました。
 
１度組んでしまえば、解析まで自動でできます。
 
まあ、プログラムを組むのが面倒なんですがね。
 
プログラムを組める場合と組めない場合では、どちらが有利か説明するまでも無いと思います。
 
いままで、いろいろなサンプルで説明してきましたが、難しいと思う人も多いかと思います。
 
でも、行数を見てください。
 
１００行ぐらいで、できているはずです。
たった１００行ですよ。
 
これで、それなりのものができてしまうんです。
少し頑張ればできそうな気がしませんか？
 
メタトレーダーのプログラムは、ウィンドウズのプログラムを書こうと思うより、はるかに楽です。
 
よく考えてください。
やることは、値の比較だけ。
やっても何か特殊な計算をするぐらいですよね。
たくさんの指標を計算する関数がMT4には用意されているので、オリジナルで作ることは少ないと思います。
 
だから、指標の組み合わせと比較だけです。
 
全く目的が違うんです。
 
だから複雑なことをやらせないので、短いステップ数で完成することが多いんです。
 
いくつか、自分で組んでみると分かると思います。
まずは、まねから始めてみませんか？
 
覚えることは、

変数の宣言
if文
for文
標準で用意されている関数の呼び方

 
この４つをマスターすれば、あらかた組めますのでチャレンジしてみましょう。
４の標準で用意されている関数は、基本的に覚える必要はありません。
使いたいときに探して、目的のものがあれば使う。
無ければ計算で求めるだけです。
 
単純に考えましょう。
 
では、頑張ってください。
]]></description>
			<content:encoded><![CDATA[<p>FXや株でも何でもそうですが、過去のデータを参考に投資を行うと思います。</p>
<p>自分なりに、相場がこうなるといい感じになりそうだから買おう、とかルールを決めている人が多いと思います。</p>
<p> </p>
<p>というか、ルールを決めないとほとんどギャンブルになっちゃうので、決めましょうね。</p>
<p> </p>
<p>で、このルールを見つけるのが大変ですよね。</p>
<p>私も日々、見つけようと努力しています。</p>
<p> </p>
<p>グラフなどをみて、この線を組み合わせるといいかもしれない！</p>
<p>と思ったら、過去にどうなっているか調べるわけです。</p>
<p> </p>
<p>ここからが、プログラムを組める人と組めない人の差が開きます。</p>
<p> </p>
<p>組めない人は、グラフとにらめっこして、ここでは増えた、ここではダメ。</p>
<p>とかすべて、見ていかなければなりません。</p>
<p>その上、パラメータをいじってみたら、もう一度同じことを繰り返す必要があります。</p>
<p> </p>
<p>大変ですよね。</p>
<p>たぶん、ルールを見つける作業がいやになるのは、この辺ではないかと。。。</p>
<p> </p>
<p>逆にプログラムを組める人は、最初にルールを元にしたプログラムを組みます。</p>
<p>後は、解析結果を待つだけです。</p>
<p>バックテストで、パラメータを変えながら最適な結果を見つける方法も説明しました。</p>
<p> </p>
<p>１度組んでしまえば、解析まで自動でできます。</p>
<p> </p>
<p>まあ、プログラムを組むのが面倒なんですがね。</p>
<p> </p>
<p>プログラムを組める場合と組めない場合では、どちらが有利か説明するまでも無いと思います。</p>
<p> </p>
<p>いままで、いろいろなサンプルで説明してきましたが、難しいと思う人も多いかと思います。</p>
<p> </p>
<p>でも、行数を見てください。</p>
<p> </p>
<p>１００行ぐらいで、できているはずです。</p>
<p>たった１００行ですよ。</p>
<p> </p>
<p>これで、それなりのものができてしまうんです。</p>
<p>少し頑張ればできそうな気がしませんか？</p>
<p> </p>
<p>メタトレーダーのプログラムは、ウィンドウズのプログラムを書こうと思うより、はるかに楽です。</p>
<p> </p>
<p>よく考えてください。</p>
<p>やることは、値の比較だけ。</p>
<p>やっても何か特殊な計算をするぐらいですよね。</p>
<p>たくさんの指標を計算する関数がMT4には用意されているので、オリジナルで作ることは少ないと思います。</p>
<p> </p>
<p>だから、指標の組み合わせと比較だけです。</p>
<p> </p>
<p>全く目的が違うんです。</p>
<p> </p>
<p>だから複雑なことをやらせないので、短いステップ数で完成することが多いんです。</p>
<p> </p>
<p>いくつか、自分で組んでみると分かると思います。</p>
<p>まずは、まねから始めてみませんか？</p>
<p> </p>
<p>覚えることは、</p>
<ol>
<li>変数の宣言</li>
<li>if文</li>
<li>for文</li>
<li>標準で用意されている関数の呼び方</li>
</ol>
<p> </p>
<p>この４つをマスターすれば、あらかた組めますのでチャレンジしてみましょう。</p>
<p>４の標準で用意されている関数は、基本的に覚える必要はありません。</p>
<p>使いたいときに探して、目的のものがあれば使う。</p>
<p>無ければ計算で求めるだけです。</p>
<p> </p>
<p>単純に考えましょう。</p>
<p> </p>
<p>では、頑張ってください。</p>
]]></content:encoded>
			<wfw:commentRss>http://metatraderfx.net/metatrader-beginner/%e3%83%97%e3%83%ad%e3%82%b0%e3%83%a9%e3%83%a0%e3%81%8c%e7%b5%84%e3%82%81%e3%82%8b%e8%87%aa%e5%88%86%e3%82%92%e6%83%b3%e5%83%8f%e3%81%99%e3%82%8b/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://metatraderfx.net/metatrader-beginner/%e3%83%97%e3%83%ad%e3%82%b0%e3%83%a9%e3%83%a0%e3%81%8c%e7%b5%84%e3%82%81%e3%82%8b%e8%87%aa%e5%88%86%e3%82%92%e6%83%b3%e5%83%8f%e3%81%99%e3%82%8b/" />
	</item>
		<item>
		<title>バックテストをしてみる２</title>
		<link>http://metatraderfx.net/metatrader-beginner/%e3%83%90%e3%83%83%e3%82%af%e3%83%86%e3%82%b9%e3%83%88%e3%82%92%e3%81%97%e3%81%a6%e3%81%bf%e3%82%8b%ef%bc%92/</link>
		<comments>http://metatraderfx.net/metatrader-beginner/%e3%83%90%e3%83%83%e3%82%af%e3%83%86%e3%82%b9%e3%83%88%e3%82%92%e3%81%97%e3%81%a6%e3%81%bf%e3%82%8b%ef%bc%92/#comments</comments>
		<pubDate>Thu, 14 May 2009 22:25:38 +0000</pubDate>
		<dc:creator>kei</dc:creator>
				<category><![CDATA[MQL4]]></category>
		<category><![CDATA[メタトレーダー入門]]></category>
		<category><![CDATA[自動売買]]></category>
		<category><![CDATA[サンプル]]></category>
		<category><![CDATA[プログラミング]]></category>
		<category><![CDATA[文法]]></category>
		<category><![CDATA[ＥＡ]]></category>

		<guid isPermaLink="false">http://metatraderfx.net/?p=272</guid>
		<description><![CDATA[前回、EAを作ってみるでつくったEA（自動売買）、MA_EAをバックテストしてみました。
結果は、あまりよくありませんでしたね。
 
でも、EAを作ったときにパラメータをいくつか外出しにしたと思います。
覚えていますか？
 
もしかしたら、このパラメータをいじるといい感じの結果が出そうな予感がしませんか？
思わなくてもしたことにしてください。
話が進まないので。。。
 
で、パラメータのパターンをテストしていけばいいだけです。
たとえば、１つのパラメータで５パターンするとします。
 
１つで５パターン。
　　楽勝！！
２つで２５パターン。
　　ちょっといやになってきますね。
３つで、１２５パターン。
　　やる気でないですね。
４つで、６２５パターン。
　　もう無理です。
 
やっぱり無理でした。。。
っていうことになりそうですが、メタトレーダーには、便利な機能があります。
 
スタート、ステップ、ストップの値をパターン分析したいパラメータにセットすると、すべての組み合わせを行ってくれる機能があるんです。
テスターに「Optimization」というチェックがあったのに気がつきませんでしたか？
このチェックが、パターン分析を行うチェックなんです。
 
では、チェックを入れてスタート！
と行く前に、
先ほどの説明のスタート、ステップ、ストップを設定して、どのパラメータを変更して解析させるかを指定する必要があります。
 
では、「Expert properties」ボタンを押して、プロパティウィンドウを開いてください。
次に、「パラメータの入力」タブを押してください。
では、設定していきます。
 
BuyLots：変更しません。
LossEntry：変更しません。
残りは、すべてチェックします。
MaPerirod：スタート（７）、ステップ（７）、ストップ（３５）
TakeMa：スタート（５）、ステップ（５）、ストップ（２５）

LossMa：スタート（５）、ステップ（５）、ストップ（２０）

TakeEntry：スタート（２５）、ステップ（５）、ストップ（５０）

 
では、早速スタートを押してみましょう！
 
以下のタグに利益が出ているものだけ表示されます。
Optimization Results：損益やトレード回数、ドローダウンと利用したパラメータ
Optimization Graph：損益のグラフ
 
すべての解析が終了するまで、待ってください。
 
Optimization Resultsの損益をクリックしたください。
利益の多い順や少ない順にソートされます。
他の項目も同様です。
 
利益の多い順に並べます。
 
では、一番利益の多い行をダブルクリックしてください。
セッティングタブに戻ると思います。
「Optimization」のチェックが外れていることを確認してください。
 
先ほどのダブルクリックで、「Expert properties」のパラメータに選択行のパラメータが自動的にセットされました。
 
では、このパラメータでバックテストをとしてみましょう。
スタートボタンを押してください。
 
今度は、利益が出ましたね。
１００pipsぐらいは増えたと思います。
 
サンプル用に適当に作ったEAとしては、まずますですかね。
 
バックテストは、こんな感じで行います。
 
ちなみに、一番利益が上がっているからいいパラメータではありません。
ドローダウンが大きく損失も大きいかもしれません。
 
たまたまその月はよかったと思いますが、未来もよいとは限りません。
また、テストの期間などもどのぐらいがいいのか？というのもEAの特性で変わってくるでしょう。
 
この辺はやってみないと分かりませんね。
 
とりあえず、これというパラメータが決まったあとは、フォワードテストというのを行います。
次回は、フォワードテストについて書きたいと思います。


]]></description>
			<content:encoded><![CDATA[<p>前回、<a href="http://metatraderfx.net/metatrader-beginner/ea%e3%82%92%e4%bd%9c%e3%81%a3%e3%81%a6%e3%81%bf%e3%82%8b/" target="_blank">EAを作ってみる</a>でつくったEA（自動売買）、MA_EAをバックテストしてみました。</p>
<p>結果は、あまりよくありませんでしたね。</p>
<p> </p>
<p>でも、EAを作ったときにパラメータをいくつか外出しにしたと思います。</p>
<p>覚えていますか？</p>
<p> </p>
<p>もしかしたら、このパラメータをいじるといい感じの結果が出そうな予感がしませんか？</p>
<p>思わなくてもしたことにしてください。</p>
<p>話が進まないので。。。</p>
<p> </p>
<p>で、パラメータのパターンをテストしていけばいいだけです。</p>
<p>たとえば、１つのパラメータで５パターンするとします。</p>
<p> </p>
<p>１つで５パターン。</p>
<p>　　楽勝！！</p>
<p>２つで２５パターン。</p>
<p>　　ちょっといやになってきますね。</p>
<p>３つで、１２５パターン。</p>
<p>　　やる気でないですね。</p>
<p>４つで、６２５パターン。</p>
<p>　　もう無理です。</p>
<p> </p>
<p>やっぱり無理でした。。。</p>
<p>っていうことになりそうですが、メタトレーダーには、便利な機能があります。</p>
<p> </p>
<p>スタート、ステップ、ストップの値をパターン分析したいパラメータにセットすると、すべての組み合わせを行ってくれる機能があるんです。</p>
<p>テスターに「Optimization」というチェックがあったのに気がつきませんでしたか？</p>
<p>このチェックが、パターン分析を行うチェックなんです。</p>
<p> </p>
<p>では、チェックを入れてスタート！</p>
<p>と行く前に、</p>
<p>先ほどの説明のスタート、ステップ、ストップを設定して、どのパラメータを変更して解析させるかを指定する必要があります。</p>
<p> </p>
<p>では、「Expert properties」ボタンを押して、プロパティウィンドウを開いてください。</p>
<p>次に、「パラメータの入力」タブを押してください。</p>
<p>では、設定していきます。</p>
<p> </p>
<p>BuyLots：変更しません。</p>
<p>LossEntry：変更しません。</p>
<p>残りは、すべてチェックします。</p>
<p>MaPerirod：スタート（７）、ステップ（７）、ストップ（３５）</p>
<p>TakeMa：スタート（５）、ステップ（５）、ストップ（２５）</p>
<div>
<p>LossMa：スタート（５）、ステップ（５）、ストップ（２０）</p>
<div>
<p>TakeEntry：スタート（２５）、ステップ（５）、ストップ（５０）</p>
<div>
<p> </p>
<p>では、早速スタートを押してみましょう！</p>
<p> </p>
<p>以下のタグに利益が出ているものだけ表示されます。</p>
<p>Optimization Results：損益やトレード回数、ドローダウンと利用したパラメータ</p>
<p>Optimization Graph：損益のグラフ</p>
<p> </p>
<p>すべての解析が終了するまで、待ってください。</p>
<p> </p>
<p>Optimization Resultsの損益をクリックしたください。</p>
<p>利益の多い順や少ない順にソートされます。</p>
<p>他の項目も同様です。</p>
<p> </p>
<p>利益の多い順に並べます。</p>
<p> </p>
<p>では、一番利益の多い行をダブルクリックしてください。</p>
<p>セッティングタブに戻ると思います。</p>
<p>「Optimization」のチェックが外れていることを確認してください。</p>
<p> </p>
<p>先ほどのダブルクリックで、「Expert properties」のパラメータに選択行のパラメータが自動的にセットされました。</p>
<p> </p>
<p>では、このパラメータでバックテストをとしてみましょう。</p>
<p>スタートボタンを押してください。</p>
<p> </p>
<p>今度は、利益が出ましたね。</p>
<p>１００pipsぐらいは増えたと思います。</p>
<p> </p>
<p>サンプル用に適当に作ったEAとしては、まずますですかね。</p>
<p> </p>
<p>バックテストは、こんな感じで行います。</p>
<p> </p>
<p>ちなみに、一番利益が上がっているからいいパラメータではありません。</p>
<p>ドローダウンが大きく損失も大きいかもしれません。</p>
<p> </p>
<p>たまたまその月はよかったと思いますが、未来もよいとは限りません。</p>
<p>また、テストの期間などもどのぐらいがいいのか？というのもEAの特性で変わってくるでしょう。</p>
<p> </p>
<p>この辺はやってみないと分かりませんね。</p>
<p> </p>
<p>とりあえず、これというパラメータが決まったあとは、フォワードテストというのを行います。</p>
<p>次回は、フォワードテストについて書きたいと思います。</p></div>
</div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://metatraderfx.net/metatrader-beginner/%e3%83%90%e3%83%83%e3%82%af%e3%83%86%e3%82%b9%e3%83%88%e3%82%92%e3%81%97%e3%81%a6%e3%81%bf%e3%82%8b%ef%bc%92/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://metatraderfx.net/metatrader-beginner/%e3%83%90%e3%83%83%e3%82%af%e3%83%86%e3%82%b9%e3%83%88%e3%82%92%e3%81%97%e3%81%a6%e3%81%bf%e3%82%8b%ef%bc%92/" />
	</item>
		<item>
		<title>EAを作ってみる２</title>
		<link>http://metatraderfx.net/metatrader-beginner/ea%e3%82%92%e4%bd%9c%e3%81%a3%e3%81%a6%e3%81%bf%e3%82%8b%ef%bc%92/</link>
		<comments>http://metatraderfx.net/metatrader-beginner/ea%e3%82%92%e4%bd%9c%e3%81%a3%e3%81%a6%e3%81%bf%e3%82%8b%ef%bc%92/#comments</comments>
		<pubDate>Tue, 12 May 2009 10:29:22 +0000</pubDate>
		<dc:creator>kei</dc:creator>
				<category><![CDATA[MQL4]]></category>
		<category><![CDATA[メタトレーダー入門]]></category>
		<category><![CDATA[自動売買]]></category>
		<category><![CDATA[スリップ]]></category>
		<category><![CDATA[プログラミング]]></category>
		<category><![CDATA[マジックナンバー]]></category>
		<category><![CDATA[入門]]></category>
		<category><![CDATA[文法]]></category>
		<category><![CDATA[ＥＡ]]></category>

		<guid isPermaLink="false">http://metatraderfx.net/?p=266</guid>
		<description><![CDATA[前回のEAを作ってみるで説明不足のところを説明します。
 
まず、スリップについてです。
成行でオーダーするときに、メタトレーダーではAskかBiｄの金額を指定してオーダーします。
しかし、為替は動いていますので、この金額からずれていることがあります。
ですが、注文をなるべく成功させたいと考えたときに、ズレの許容値を指定することができます。
これが、スリップです。
 
スリップは、オーダーするときもクローズするときも指定可能です。
OrderSend(Symbol(),OP_SELL,BuyLots,Bid,3,Bid+LossEntry*Point,Bid-TakeEntry*Point,”MA_EA Sell”,MagicNo,0,Blue);
OrderClose(OrderTicket(),OrderLots(),Bid,3,Green);
の3がスリップの値になります。
 
ですから、Bidから＋－３pipsのズレまで、許可するということになります。
このズレ以上の場合は、オーダーされないことになります。
 
クローズの方が失敗するのがいやな人は、多めを指定した方がいいでしょう。
 
次は、自分でオーダーした注文かどうかを判断する方法です。
前回は、マジックナンバーというのを利用しました。
他にもオーダーしたときにもらえるチケットナンバー、コメントなどをキーに探すことが可能です。
ただし、チケット番号は再起動したときに分からなくなってしまうので、マジックナンバーを利用するのがいいでしょう。
※グローバル変数を使うことで、2週間覚えておく方法もあります。
 
なぜ、このようなことを行うかというと、利用中の口座のオーダーはすべて見ることができてしまうからです。
別の通貨ペアでも、別のEAでも、手動オーダーでもなんでも見ることができます。
ですから、自分のEAが注文したものかどうかを判断する必要があるんです。
 
初めてのEAなので、こうしたことをやならくてもよかったのですが、今後EAを作る場合、こうした仕組みで作ることになると思い、初めからちゃんとした機能を持たせました。
そのため、少し難しくなっています。
 
ちなみに、すべて見えることの応用ですが、たとえば週末にすべてのオーダーをクローズするEAなんていうのも作ることができます。
週末の持ち越しはしたくない！って方で、販売されているEAを利用している方は、こうしたEAを作れると便利かもしれませんね。
]]></description>
			<content:encoded><![CDATA[<p>前回の<a href="http://metatraderfx.net/metatrader-beginner/ea%e3%82%92%e4%bd%9c%e3%81%a3%e3%81%a6%e3%81%bf%e3%82%8b/" target="_blank">EAを作ってみる</a>で説明不足のところを説明します。</p>
<p> </p>
<p>まず、<strong>スリップ</strong>についてです。</p>
<p>成行でオーダーするときに、メタトレーダーではAskかBiｄの金額を指定してオーダーします。</p>
<p>しかし、為替は動いていますので、この金額からずれていることがあります。</p>
<p>ですが、注文をなるべく成功させたいと考えたときに、ズレの許容値を指定することができます。</p>
<p>これが、スリップです。</p>
<p> </p>
<p>スリップは、オーダーするときもクローズするときも指定可能です。</p>
<p><a href="http://googolyenfx.blog18.fc2.com/blog-entry-334.html" target="_blank">OrderSend</a>(<a href="http://googolyenfx.blog18.fc2.com/blog-entry-347.html" target="_blank">Symbol</a>(),OP_SELL,BuyLots,Bid,3,Bid+LossEntry*Point,Bid-TakeEntry*Point,”MA_EA Sell”,MagicNo,0,Blue);</p>
<p><a href="http://googolyenfx.blog18.fc2.com/blog-entry-318.html" target="_blank">OrderClose</a>(<a href="http://googolyenfx.blog18.fc2.com/blog-entry-341.html" target="_blank">OrderTicket</a>(),<a href="http://googolyenfx.blog18.fc2.com/blog-entry-326.html" target="_blank">OrderLots</a>(),Bid,3,Green);</p>
<p>の3がスリップの値になります。</p>
<p> </p>
<p>ですから、Bidから＋－３pipsのズレまで、許可するということになります。</p>
<p>このズレ以上の場合は、オーダーされないことになります。</p>
<p> </p>
<p>クローズの方が失敗するのがいやな人は、多めを指定した方がいいでしょう。</p>
<p> </p>
<p>次は、自分でオーダーした注文かどうかを判断する方法です。</p>
<p>前回は、マジックナンバーというのを利用しました。</p>
<p>他にもオーダーしたときにもらえるチケットナンバー、コメントなどをキーに探すことが可能です。</p>
<p>ただし、チケット番号は再起動したときに分からなくなってしまうので、マジックナンバーを利用するのがいいでしょう。</p>
<p>※グローバル変数を使うことで、2週間覚えておく方法もあります。</p>
<p> </p>
<p>なぜ、このようなことを行うかというと、利用中の口座のオーダーはすべて見ることができてしまうからです。</p>
<p>別の通貨ペアでも、別のEAでも、手動オーダーでもなんでも見ることができます。</p>
<p>ですから、自分のEAが注文したものかどうかを判断する必要があるんです。</p>
<p> </p>
<p>初めてのEAなので、こうしたことをやならくてもよかったのですが、今後EAを作る場合、こうした仕組みで作ることになると思い、初めからちゃんとした機能を持たせました。</p>
<p>そのため、少し難しくなっています。</p>
<p> </p>
<p>ちなみに、すべて見えることの応用ですが、たとえば週末にすべてのオーダーをクローズするEAなんていうのも作ることができます。</p>
<p>週末の持ち越しはしたくない！って方で、販売されているEAを利用している方は、こうしたEAを作れると便利かもしれませんね。</p>
]]></content:encoded>
			<wfw:commentRss>http://metatraderfx.net/metatrader-beginner/ea%e3%82%92%e4%bd%9c%e3%81%a3%e3%81%a6%e3%81%bf%e3%82%8b%ef%bc%92/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://metatraderfx.net/metatrader-beginner/ea%e3%82%92%e4%bd%9c%e3%81%a3%e3%81%a6%e3%81%bf%e3%82%8b%ef%bc%92/" />
	</item>
		<item>
		<title>EAを作ってみる</title>
		<link>http://metatraderfx.net/metatrader-beginner/ea%e3%82%92%e4%bd%9c%e3%81%a3%e3%81%a6%e3%81%bf%e3%82%8b/</link>
		<comments>http://metatraderfx.net/metatrader-beginner/ea%e3%82%92%e4%bd%9c%e3%81%a3%e3%81%a6%e3%81%bf%e3%82%8b/#comments</comments>
		<pubDate>Tue, 12 May 2009 06:29:44 +0000</pubDate>
		<dc:creator>kei</dc:creator>
				<category><![CDATA[MQL4]]></category>
		<category><![CDATA[メタトレーダー入門]]></category>
		<category><![CDATA[自動売買]]></category>
		<category><![CDATA[サンプル]]></category>
		<category><![CDATA[プログラミング]]></category>
		<category><![CDATA[入門]]></category>
		<category><![CDATA[移動平均]]></category>
		<category><![CDATA[ＥＡ]]></category>

		<guid isPermaLink="false">http://metatraderfx.net/?p=226</guid>
		<description><![CDATA[今回は、EA（自動売買）のプログラムを作ってみたいと思います。  今回は、単純移動平均のラインをブレイクしたときに順張りするＥＡを作成します。   
単純移動平均をブレイクしたときに、成行でオーダーし、テイク（利益確定）ポイントとロスカットポイントを指定します。
これは、通信できなかったときの保険で、実際の利益確定やロスカットはＥＡが値を確認して行います。   
 
注意事項ですが、ここで作成したプログラムを実運用で利用してもかまいませんが、利益を保証するものではありません。
ご自分の判断で、利用してください。
損害等は、一切保証しません。
 
では、プログラムの作成を行いましょう。  
ＭｅｔａＥｄｉｔｏｒを開き、Expert Advisor Wizardを開きます。   
Expert Advisorを選択し、次へを押します。
 
NAMEに「MA_EA」と入力します。
パラメータを指定できますが、今回はコード上で指定しますので、そのまま完了を押してください。
スケルトンが作成されます。
 
前半の設定を行います。
 
//オーダーするときのロット数をパラメータとして指定します。
//0.1ロットが1万通貨となります。
extern double BuyLots=0.1;
//単純移動平均のサンプリングする足の数をパラメータとして指定します。
extern int MAPeriod=21;
//EAが利益確定するポイント数をパラメータとして指定します。
extern int TakeMA=20;
//EAがロスカットするポイント数をパラメータとして指定します。
extern int LossMA=10;
//オーダー時に保険として設定する利益確定ポイントを指定します。
extern int TakeEntry=25;
//オーダー時に保険として設定するロスカットポイントを指定します。
extern int LossEntry=25;
 
//オーダー番号を格納する変数を設定します。
int ticket=0;
//このEAのオーダーを判断するための番号を設定します。
int MagicNo=1;
 
今回は、初期処理と終了処理ではなにも行いません。
実行処理を指定します。
 
int start()
  {
//ポジションを持っているか判断するフラグを設定します。
//0がポジションなし、1がポジションを持っていることにします。
    int KeepPosition=0;
//現在持っているオーダー数を取得します。
    int total=OrdersTotal();
    int i;
//現在持っているオーダーの中からこのEAがポジションを持ったオーダーを探します。
    for(i=0;i &#60; total;i++){
//オーダーを選択します。
        if(OrderSelect(i, SELECT_BY_POS)==true)
        {
//オーダーの通貨ペアが同じで、このEAが指定したマジックNoが同じものを探します。
            if(Symbol() == OrderSymbol() &#38;&#38; OrderMagicNumber() == MagicNo)
   [...]]]></description>
			<content:encoded><![CDATA[<p>今回は、EA（自動売買）のプログラムを作ってみたいと思います。  今回は、単純移動平均のラインをブレイクしたときに順張りするＥＡを作成します。   </p>
<p>単純移動平均をブレイクしたときに、成行でオーダーし、テイク（利益確定）ポイントとロスカットポイントを指定します。</p>
<p>これは、通信できなかったときの保険で、実際の利益確定やロスカットはＥＡが値を確認して行います。   </p>
<p> </p>
<p><strong><span style="color: #ff0000;">注意事項ですが、ここで作成したプログラムを実運用で利用してもかまいませんが、利益を保証するものではありません。</span></strong></p>
<p><strong><span style="color: #ff0000;">ご自分の判断で、利用してください。</span></strong></p>
<p><strong><span style="color: #ff0000;">損害等は、一切保証しません。</span></strong></p>
<p> </p>
<p>では、プログラムの作成を行いましょう。  </p>
<p>ＭｅｔａＥｄｉｔｏｒを開き、Expert Advisor Wizardを開きます。   </p>
<div id="attachment_227" class="wp-caption aligncenter" style="width: 310px"><a href="http://metatraderfx.net/wp-content/uploads/2009/05/eaw_ea1.jpg"><img class="size-medium wp-image-227" title="eaw_ea1" src="http://metatraderfx.net/wp-content/uploads/2009/05/eaw_ea1-300x181.jpg" alt="Expert Advisor作成" width="300" height="181" /></a><p class="wp-caption-text">Expert Advisor作成</p></div>
<p>Expert Advisorを選択し、次へを押します。</p>
<p> </p>
<div id="attachment_228" class="wp-caption aligncenter" style="width: 310px"><a href="http://metatraderfx.net/wp-content/uploads/2009/05/eaw_ea2.jpg"><img class="size-medium wp-image-228" title="eaw_ea2" src="http://metatraderfx.net/wp-content/uploads/2009/05/eaw_ea2-300x181.jpg" alt="EAの名前を決める" width="300" height="181" /></a><p class="wp-caption-text">EAの名前を決める</p></div>
<p>NAMEに「MA_EA」と入力します。</p>
<p>パラメータを指定できますが、今回はコード上で指定しますので、そのまま完了を押してください。</p>
<p>スケルトンが作成されます。</p>
<p> </p>
<p>前半の設定を行います。</p>
<p> </p>
<p>//オーダーするときのロット数をパラメータとして指定します。</p>
<p>//0.1ロットが1万通貨となります。</p>
<p>extern double BuyLots=0.1;</p>
<p>//単純移動平均のサンプリングする足の数をパラメータとして指定します。</p>
<p>extern int MAPeriod=21;</p>
<p>//EAが利益確定するポイント数をパラメータとして指定します。</p>
<p>extern int TakeMA=20;</p>
<p>//EAがロスカットするポイント数をパラメータとして指定します。</p>
<p>extern int LossMA=10;</p>
<p>//オーダー時に保険として設定する利益確定ポイントを指定します。</p>
<p>extern int TakeEntry=25;</p>
<p>//オーダー時に保険として設定するロスカットポイントを指定します。</p>
<p>extern int LossEntry=25;</p>
<p> </p>
<p>//オーダー番号を格納する変数を設定します。</p>
<p>int ticket=0;</p>
<p>//このEAのオーダーを判断するための番号を設定します。</p>
<p>int MagicNo=1;</p>
<p> </p>
<p>今回は、初期処理と終了処理ではなにも行いません。</p>
<p>実行処理を指定します。</p>
<p> </p>
<p>int start()</p>
<p>  {</p>
<p>//ポジションを持っているか判断するフラグを設定します。</p>
<p>//0がポジションなし、1がポジションを持っていることにします。</p>
<p>    int KeepPosition=0;</p>
<p>//現在持っているオーダー数を取得します。</p>
<p>    int total=<a href="http://googolyenfx.blog18.fc2.com/blog-entry-337.html" target="_blank">OrdersTotal</a>();</p>
<p>    int i;</p>
<p>//現在持っているオーダーの中からこのEAがポジションを持ったオーダーを探します。</p>
<p>    for(i=0;i &lt; total;i++){</p>
<p>//オーダーを選択します。</p>
<p>        if(<a href="http://googolyenfx.blog18.fc2.com/blog-entry-333.html" target="_blank">OrderSelect</a>(i, SELECT_BY_POS)==true)</p>
<p>        {</p>
<p>//オーダーの通貨ペアが同じで、このEAが指定したマジックNoが同じものを探します。</p>
<p>            if(Symbol() == <a href="http://googolyenfx.blog18.fc2.com/blog-entry-339.html" target="_blank">OrderSymbol</a>() &amp;&amp; <a href="http://googolyenfx.blog18.fc2.com/blog-entry-327.html" target="_blank">OrderMagicNumber</a>() == MagicNo)</p>
<p>            {</p>
<p>//このEAがオーダーしたものが見つかったときはオーダーを持っていることにします。</p>
<p>                KeepPosition = 1;</p>
<p>//チケット番号をセットします。</p>
<p>                ticket=<a href="http://googolyenfx.blog18.fc2.com/blog-entry-341.html" target="_blank">OrderTicket</a>();</p>
<p>//ループを抜けます。</p>
<p>                break;</p>
<p>            }</p>
<p>        }</p>
<p>    }</p>
<p> </p>
<p>//現在から過去の単純移動平均を5本分取得します。</p>
<p>    double Ma0=iMA(NULL,0,MAPeriod,0,MODE_SMA,PRICE_CLOSE,0);</p>
<p>    double Ma1=iMA(NULL,0,MAPeriod,0,MODE_SMA,PRICE_CLOSE,1);</p>
<p>    double Ma2=iMA(NULL,0,MAPeriod,0,MODE_SMA,PRICE_CLOSE,2);</p>
<p>    double Ma3=iMA(NULL,0,MAPeriod,0,MODE_SMA,PRICE_CLOSE,3);</p>
<p>    double Ma4=iMA(NULL,0,MAPeriod,0,MODE_SMA,PRICE_CLOSE,4);</p>
<p> </p>
<p>//ポジションを持っている場合、クローズするか確認します。</p>
<p>    if(KeepPosition == 1)</p>
<p>    {</p>
<p>//オーダーから何本足を描画したかを求めます。</p>
<p>//オーダーから最小値、最大値を求めるために利用します。</p>
<p>        int ChkAshi = (<a href="http://googolyenfx.blog18.fc2.com/blog-entry-330.html" target="_blank">OrderOpenTime</a>()-<a href="http://googolyenfx.blog18.fc2.com/blog-entry-258.html" target="_blank">TimeCurrent</a>())/(<a href="http://googolyenfx.blog18.fc2.com/blog-entry-345.html" target="_blank">Period</a>()*60);</p>
<p>//売りポジションの場合</p>
<p>        if(<a href="http://googolyenfx.blog18.fc2.com/blog-entry-342.html" target="_blank">OrderType</a>() == OP_SELL)</p>
<p>        {</p>
<p>//オーダーしてから、TakeMAの2倍の値を出して、TakeMAまで戻ってきたときにクローズします。</p>
<p>//利益確定は、戻ってきたときとオーダー時に設定したポイントの2つが利益確定ポイントです。</p>
<p>            if(<a href="http://googolyenfx.blog18.fc2.com/blog-entry-329.html" target="_blank">OrderOpenPrice</a>()-TakeMA*Point &gt;= Ask &amp;&amp; <a href="http://googolyenfx.blog18.fc2.com/blog-entry-329.html" target="_blank">OrderOpenPrice</a>()-TakeMA*2*Point &gt;= Low[iLowest(NULL,0,MODE_LOW,0,ChkAshi)])</p>
<p>            {</p>
<p>                <a href="http://googolyenfx.blog18.fc2.com/blog-entry-318.html" target="_blank">OrderClose</a>(<a href="http://googolyenfx.blog18.fc2.com/blog-entry-341.html" target="_blank">OrderTicket</a>(),<a href="http://googolyenfx.blog18.fc2.com/blog-entry-326.html" target="_blank">OrderLots</a>(),Ask,3,Green);</p>
<p>            }</p>
<p>//LossMAで指定したポイントを割ってしまったときにロスカットします。</p>
<p>            if(<a href="http://googolyenfx.blog18.fc2.com/blog-entry-329.html" target="_blank">OrderOpenPrice</a>()+LossMA*Point &lt;= Ask)</p>
<p>            {</p>
<p>                <a href="http://googolyenfx.blog18.fc2.com/blog-entry-318.html" target="_blank">OrderClose</a>(<a href="http://googolyenfx.blog18.fc2.com/blog-entry-341.html" target="_blank">OrderTicket</a>(),<a href="http://googolyenfx.blog18.fc2.com/blog-entry-326.html" target="_blank">OrderLots</a>(),Ask,3,Green);</p>
<p>            }</p>
<p>        }</p>
<p>//買いポジションの場合</p>
<p>//売りポジションと同じことを行います。</p>
<p>//符号の向きが逆なのとAskではなくBidを利用しているところが違います。</p>
<p>        else if(<a href="http://googolyenfx.blog18.fc2.com/blog-entry-342.html" target="_blank">OrderType</a>() == OP_BUY)</p>
<p>        {</p>
<p>            if(<a href="http://googolyenfx.blog18.fc2.com/blog-entry-329.html" target="_blank">OrderOpenPrice</a>()+TakeMA*Point &lt;= Bid &amp;&amp; <a href="http://googolyenfx.blog18.fc2.com/blog-entry-329.html" target="_blank">OrderOpenPrice</a>()+TakeMA*2*Point &lt;= High[iHighest(NULL,0,MODE_HIGH,0,ChkAshi)])</p>
<p>            {</p>
<p>                <a href="http://googolyenfx.blog18.fc2.com/blog-entry-318.html" target="_blank">OrderClose</a>(<a href="http://googolyenfx.blog18.fc2.com/blog-entry-341.html" target="_blank">OrderTicket</a>(),<a href="http://googolyenfx.blog18.fc2.com/blog-entry-326.html" target="_blank">OrderLots</a>(),Bid,3,Green);</p>
<p>            }</p>
<p>            if(<a href="http://googolyenfx.blog18.fc2.com/blog-entry-329.html" target="_blank">OrderOpenPrice</a>()-LossMA*Point &gt;= Bid)</p>
<p>            {</p>
<p>                <a href="http://googolyenfx.blog18.fc2.com/blog-entry-318.html" target="_blank">OrderClose</a>(<a href="http://googolyenfx.blog18.fc2.com/blog-entry-341.html" target="_blank">OrderTicket</a>(),<a href="http://googolyenfx.blog18.fc2.com/blog-entry-326.html" target="_blank">OrderLots</a>(),Bid,3,Green);</p>
<p>            }</p>
<p>        }</p>
<p>    }</p>
<p> </p>
<p>//ポジションを持っていない場合、ポジションを持つかどうか確認します。</p>
<p>    else if(KeepPosition == 0)</p>
<p>    {</p>
<p>//下降トレンドの場合</p>
<p>        if(Ma4 &gt; Ma3 &amp;&amp; Ma3 &gt; Ma2 &amp;&amp; Ma2 &gt; Ma1 &amp;&amp; Ma1 &gt; Ma0)</p>
<p>        {</p>
<p>//Ma4、Ma3、Ma2のクローズが大きくて、Ma1と現在値（Bid）が小さい場合売りポジションを持ちます。</p>
<p>            if(Ma4 &lt; Close[4] &amp;&amp; Ma3 &lt; Close[3] &amp;&amp; Ma2 &lt; Close[2] &amp;&amp; Ma1 &gt; Close[1] &amp;&amp; Ma0 &gt; Bid)</p>
<p>            {</p>
<p>                ticket=<a href="http://googolyenfx.blog18.fc2.com/blog-entry-334.html" target="_blank">OrderSend</a>(<a href="http://googolyenfx.blog18.fc2.com/blog-entry-347.html" target="_blank">Symbol</a>(),OP_SELL,BuyLots,Bid,3,Bid+LossEntry*Point,Bid-TakeEntry*Point,&#8221;MA_EA Sell&#8221;,MagicNo,0,Blue);</p>
<p>                if(ticket==0) <a href="http://googolyenfx.blog18.fc2.com/blog-entry-129.html" target="_blank">Print</a>(&#8221;Error opening SellChk order : &#8220;,<a href="http://googolyenfx.blog18.fc2.com/blog-entry-34.html" target="_blank">GetLastError</a>());</p>
<p>            }</p>
<p>        }</p>
<p>//上昇トレンドの場合</p>
<p>        else if(Ma4 &lt; Ma3 &amp;&amp; Ma3 &lt; Ma2 &amp;&amp; Ma2 &lt; Ma1 &amp;&amp; Ma1 &lt; Ma0)</p>
<p>        {</p>
<p>//Ma4、Ma3、Ma2のクローズが小さくて、Ma1と現在値（Bid）が小さい場合買いポジションを持ちます。</p>
<p>            if(Ma4 &gt; Close[4] &amp;&amp; Ma3 &gt; Close[3] &amp;&amp; Ma2 &gt; Close[2] &amp;&amp; Ma1 &lt; Close[1] &amp;&amp; Ma0 &lt; Ask)</p>
<p>            {</p>
<p>                ticket=<a href="http://googolyenfx.blog18.fc2.com/blog-entry-334.html" target="_blank">OrderSend</a>(<a href="http://googolyenfx.blog18.fc2.com/blog-entry-347.html" target="_blank">Symbol</a>(),OP_BUY,BuyLots,Ask,3,Ask-LossEntry*Point,Ask+TakeEntry*Point,&#8221;MA_EA Buy&#8221;,MagicNo,0,Red);</p>
<p>                if(ticket==0) <a href="http://googolyenfx.blog18.fc2.com/blog-entry-129.html" target="_blank">Print</a>(&#8221;Error opening BuyChk order : &#8220;,<a href="http://googolyenfx.blog18.fc2.com/blog-entry-34.html" target="_blank">GetLastErro</a>r());</p>
<p>            }</p>
<p>        } </p>
<p>    }</p>
<p> </p>
<p>   return(0);</p>
<p>  }</p>
<p> </p>
<p><a href="http://googolyenfx.blog18.fc2.com/blog-entry-333.html" target="_blank">OrderSelect</a>で、選択しているオーダーはOrder???関数で値を取得することができます。</p>
<p>Low[iLowest(NULL,0,MODE_LOW,0,ChkAshi)、High[iHighest(NULL,0,MODE_HIGH,0,ChkAshi)]は、オーダーしてからの最安値、最高値を求めています。</p>
<p><a href="http://googolyenfx.blog18.fc2.com/blog-entry-334.html" target="_blank">OrderSend</a>は売買注文を行う関数で、成行、IFD、OCOなどのオーダーを組み合わせて注文することができます。</p>
<p>今回の例では、成行＋OCO注文を行っています。</p>
<p>また、ticketが0の場合は注文失敗で、<a href="http://googolyenfx.blog18.fc2.com/blog-entry-34.html" target="_blank">GetLastError</a>を利用してエラー番号を取得しています。</p>
<p><a href="http://googolyenfx.blog18.fc2.com/blog-entry-129.html" target="_blank">Print</a>は、操作履歴に結果を出力する関数です。</p>
<p>操作を残したいときに利用すると便利です。</p>
<div>次は、バックテストのやり方を説明したいと思います。</div>
<p> </p>
<p> </p>
<div>
<p>今回のプログラムは、以下からダウンロードできます。</p>
<p><a href="http://download-center.metatraderfx.net/metatraderfx/ma_ea/" target="_blank">ここから、ダウンロード</a></p>
<p> </p>
<p>EA（自動売買）は、</p>
<p>インストールパス\MetaTrader\experts</p>
<p>に入れてください。</p>
<p> </p></div>
]]></content:encoded>
			<wfw:commentRss>http://metatraderfx.net/metatrader-beginner/ea%e3%82%92%e4%bd%9c%e3%81%a3%e3%81%a6%e3%81%bf%e3%82%8b/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://metatraderfx.net/metatrader-beginner/ea%e3%82%92%e4%bd%9c%e3%81%a3%e3%81%a6%e3%81%bf%e3%82%8b/" />
	</item>
		<item>
		<title>トレンドラインを書いてみる３</title>
		<link>http://metatraderfx.net/metatrader-beginner/%e3%83%88%e3%83%ac%e3%83%b3%e3%83%89%e3%83%a9%e3%82%a4%e3%83%b3%e3%82%92%e6%9b%b8%e3%81%84%e3%81%a6%e3%81%bf%e3%82%8b%ef%bc%93/</link>
		<comments>http://metatraderfx.net/metatrader-beginner/%e3%83%88%e3%83%ac%e3%83%b3%e3%83%89%e3%83%a9%e3%82%a4%e3%83%b3%e3%82%92%e6%9b%b8%e3%81%84%e3%81%a6%e3%81%bf%e3%82%8b%ef%bc%93/#comments</comments>
		<pubDate>Mon, 11 May 2009 05:02:30 +0000</pubDate>
		<dc:creator>kei</dc:creator>
				<category><![CDATA[MQL4]]></category>
		<category><![CDATA[インジケータ]]></category>
		<category><![CDATA[メタトレーダー入門]]></category>
		<category><![CDATA[インジケーター]]></category>
		<category><![CDATA[サンプル]]></category>
		<category><![CDATA[トレンドライン]]></category>
		<category><![CDATA[プログラミング]]></category>
		<category><![CDATA[文法]]></category>

		<guid isPermaLink="false">http://metatraderfx.net/?p=207</guid>
		<description><![CDATA[さて、前回と前々回で、トレンドラインを書くプログラムの基本とプログラムを書くときに気をつけたほうがいいことを書きました。
 
今回は、トレンドラインの総仕上げとして、ループ回数を最小にして、好きな本数のトレンドラインを書くインジケータを作成します。
少々、難易度が上がりますが、がんばってついてきてください。
 
トレンドラインを書いてみるを参考にインジケータのスケルトンを作成してください。
前回のソースにそのまま上書きでもかまいません。
 
まず、前半の定義部分です。
#property indicator_chart_window
extern int nPeriod=9;
extern int Limit=350;
extern int nLine=3;
nLineを追加しました。
これは、トレンドラインの数です。
デフォルトでは、３本ずつ書きます。
 
初期化部分です。
int init()
{
    int i;
    for(i=0;i&#60;nLine;i++)
    {
        ObjectCreate(&#8221;Trend DN-&#8221;+i,OBJ_TREND,0,0,0,0,0);
        ObjectSet(&#8221;Trend DN-&#8221;+i,OBJPROP_COLOR,Maroon);
        ObjectSet(&#8221;Trend DN-&#8221;+i,OBJPROP_WIDTH,3);
        ObjectCreate(&#8221;Trend UP-&#8221;+i,OBJ_TREND,0,0,0,0,0);
        ObjectSet(&#8221;Trend UP-&#8221;+i,OBJPROP_COLOR,Green);
        ObjectSet(&#8221;Trend UP-&#8221;+i,OBJPROP_WIDTH,3);
    }
   return(0);
}
 
オブジェクトの作成ですが、前回と違って指定した数だけ作る必要があるため、ループをまわして指定した数のトレンドラインを書くためのオブジェクトを作成します。
名前が、「Trend UP-0&#8243;」など固定でしたが、数にあわせて名前を変更したいので、「Trend UP-&#8221;+i」としてループの値を名前に追加するように変更しました。
また、線が細くて見にくかったので、今回は少し太く描画させて見ます。
ObjectSet(&#8221;Trend DN-&#8221;+i,OBJPROP_WIDTH,3);
の部分で、線の幅をデフォルトの1ポイントから3ポイントに広げます。
 
次は、終了処理です。
int deinit()
{
    int i;
    for(i=0;i&#60;nLine;i++)
    {
        ObjectDelete(&#8221;Trend UP-&#8221;+i);
        ObjectDelete(&#8221;Trend DN-&#8221;+i);
    }
   return(0);
}

初期処理と同じく、指定された数分だけ削除するようにループしています。
 
次は、本題のメイン処理です。
int start()
{
//今回は、線の数が分からないので、配列を使います。
//まず、空の配列を用意します。
//固定で指定する場合は、double r[10];の様に数字を指定します。
    double r[];
    int rt[];
    double s[];
    int st[];
//配列に必要な入れ物を指定した数だけ用意します。
//はじめと終わりの入れ物が必要なので、実際の線の数より1つ多い数を指定します。
    ArrayResize(r,nLine+1);
    ArrayResize(rt,nLine+1);
    ArrayResize(s,nLine+1);
    ArrayResize(st,nLine+1);
    [...]]]></description>
			<content:encoded><![CDATA[<p>さて、前回と前々回で、トレンドラインを書くプログラムの基本とプログラムを書くときに気をつけたほうがいいことを書きました。</p>
<p> </p>
<p>今回は、トレンドラインの総仕上げとして、ループ回数を最小にして、好きな本数のトレンドラインを書くインジケータを作成します。</p>
<p>少々、難易度が上がりますが、がんばってついてきてください。</p>
<p> </p>
<p><a href="http://metatraderfx.net/metatrader-beginner/%e3%83%88%e3%83%ac%e3%83%b3%e3%83%89%e3%83%a9%e3%82%a4%e3%83%b3%e3%82%92%e6%9b%b8%e3%81%84%e3%81%a6%e3%81%bf%e3%82%8b/" target="_blank">トレンドラインを書いてみる</a>を参考にインジケータのスケルトンを作成してください。</p>
<p>前回のソースにそのまま上書きでもかまいません。</p>
<p> </p>
<p>まず、前半の定義部分です。</p>
<p>#property indicator_chart_window<br />
extern int nPeriod=9;<br />
extern int Limit=350;<br />
<span style="color: #ff0000;">extern int nLine=3;</span></p>
<p>nLineを追加しました。</p>
<p>これは、トレンドラインの数です。</p>
<p>デフォルトでは、３本ずつ書きます。</p>
<p> </p>
<p>初期化部分です。</p>
<p>int init()<br />
{<br />
    int i;<br />
    <span style="color: #ff0000;">for(i=0;i&lt;nLine;i++)<br />
</span>    {<br />
        ObjectCreate(&#8221;Trend DN-&#8221;<span style="color: #ff0000;">+i</span>,OBJ_TREND,0,0,0,0,0);<br />
        ObjectSet(&#8221;Trend DN-&#8221;<span style="color: #ff0000;">+i</span>,OBJPROP_COLOR,Maroon);<br />
        <span style="color: #ff0000;">ObjectSet(&#8221;Trend DN-&#8221;+i,OBJPROP_WIDTH,3);</span></p>
<p>        ObjectCreate(&#8221;Trend UP-&#8221;<span style="color: #ff0000;">+i</span>,OBJ_TREND,0,0,0,0,0);<br />
        ObjectSet(&#8221;Trend UP-&#8221;<span style="color: #ff0000;">+i</span>,OBJPROP_COLOR,Green);<br />
        <span style="color: #ff0000;">ObjectSet(&#8221;Trend UP-&#8221;+i,OBJPROP_WIDTH,3);<br />
</span>    }</p>
<p>   return(0);<br />
}</p>
<p> </p>
<p>オブジェクトの作成ですが、前回と違って指定した数だけ作る必要があるため、ループをまわして指定した数のトレンドラインを書くためのオブジェクトを作成します。</p>
<p>名前が、「Trend UP-0&#8243;」など固定でしたが、数にあわせて名前を変更したいので、「Trend UP<span style="color: #000000;">-&#8221;+i」としてループの値を名前に追加するように変更しました。</span></p>
<p><span style="color: #000000;">また、線が細くて見にくかったので、今回は少し太く描画させて見ます。</span></p>
<p><span style="color: #000000;">ObjectSet(&#8221;Trend DN-&#8221;+i,OBJPROP_WIDTH,3);</span></p>
<p><span style="color: #000000;">の部分で、線の幅をデフォルトの1ポイントから3ポイントに広げます。</span></p>
<p> </p>
<p><span style="color: #000000;">次は、終了処理です。</span></p>
<p><span style="color: #000000;">int deinit()<br />
{<br />
    int i;<br />
   <span style="color: #ff0000;"> for(i=0;i&lt;nLine;i++)</span><br />
    {<br />
        ObjectDelete(&#8221;Trend UP-&#8221;<span style="color: #ff0000;">+i</span>);<br />
        ObjectDelete(&#8221;Trend DN-&#8221;<span style="color: #ff0000;">+i</span>);<br />
    }<br />
   return(0);<br />
}<br />
</span></p>
<p><span style="color: #000000;">初期処理と同じく、指定された数分だけ削除するようにループしています。</span></p>
<p> </p>
<p><span style="color: #000000;">次は、本題のメイン処理です。</span></p>
<p><span style="color: #000000;">int start()<br />
{</span></p>
<p><span style="color: #000000;">//今回は、線の数が分からないので、配列を使います。<br />
//まず、空の配列を用意します。<br />
//固定で指定する場合は、double r[10];の様に数字を指定します。<br />
    double r[];<br />
    int rt[];<br />
    double s[];<br />
    int st[];</span></p>
<p><span style="color: #000000;">//配列に必要な入れ物を指定した数だけ用意します。<br />
//はじめと終わりの入れ物が必要なので、実際の線の数より1つ多い数を指定します。<br />
    <a href="http://googolyenfx.blog18.fc2.com/blog-entry-213.html" target="_blank">ArrayResize</a>(r,nLine+1);<br />
    <a href="http://googolyenfx.blog18.fc2.com/blog-entry-213.html" target="_blank">ArrayResize</a>(rt,nLine+1);<br />
    <a href="http://googolyenfx.blog18.fc2.com/blog-entry-213.html" target="_blank">ArrayResize</a>(s,nLine+1);<br />
    <a href="http://googolyenfx.blog18.fc2.com/blog-entry-213.html" target="_blank">ArrayResize</a>(st,nLine+1);</span></p>
<p><span style="color: #000000;">    int nCurBar;<br />
    int ChkRLine=0;<br />
    int ChkSLine=0;</span></p>
<p><span style="color: #000000;">    if(Bars&lt;Limit) Limit=Bars-nPeriod;</span></p>
<p><span style="color: #000000;">//前回とは逆に最新のものから指定本数までループをまわします。<br />
    for(nCurBar=0; nCurBar&lt;Limit; nCurBar++)<br />
    {</span></p>
<p><span style="color: #000000;">//一番低い谷を見つけます。<br />
        if(Low[nCurBar+(nPeriod-1)/2] == Low[iLowest(NULL,0,MODE_LOW,nPeriod,nCurBar)])<br />
        {<br />
//値が1つだけでは線を引けないので、配列に代入だけします。<br />
            <span style="color: #339966;"><strong>if(ChkSLine==0)</strong><br />
</span>            {<br />
                s[ChkSLine]=Low[nCurBar+(nPeriod-1)/2];<br />
                st[ChkSLine]=nCurBar+(nPeriod-1)/2;<br />
                ChkSLine++;<br />
            }<br />
//2本目の値で、1つ目の値より小さい場合描画します。<br />
            <span style="color: #339966;"><strong>else if(s[ChkSLine-1] &lt; Low[nCurBar+(nPeriod-1)/2] &amp;&amp; ChkSLine &lt;= nLine)<br />
</strong></span>            {<br />
//値の代入を行い<br />
                s[ChkSLine]=Low[nCurBar+(nPeriod-1)/2];<br />
                st[ChkSLine]=nCurBar+(nPeriod-1)/2;<br />
//描画させます。<br />
                ObjectMove(&#8221;Trend DN-&#8221;+(ChkSLine-1),1,Time[st[ChkSLine-1]],s[ChkSLine-1]);<br />
                ObjectMove(&#8221;Trend DN-&#8221;+(ChkSLine-1),0,Time[st[ChkSLine]],s[ChkSLine]);<br />
//ラインを1つ進めます。<br />
                ChkSLine++;<br />
            }<br />
//もし、1つ前より小さい値が見つかったときに値を入れ替えます。<br />
            <span style="color: #339966;"><strong>else if(s[ChkSLine-1] &gt; Low[nCurBar+(nPeriod-1)/2] &amp;&amp; ChkSLine &lt;= nLine)<br />
</strong></span>            {<br />
                s[ChkSLine-1]=Low[nCurBar+(nPeriod-1)/2];<br />
                st[ChkSLine-1]=nCurBar+(nPeriod-1)/2;<br />
            }<br />
        }</span></p>
<p><span style="color: #000000;"><br />
//谷と同様に山を見つけます。<br />
        if(High[nCurBar+(nPeriod-1)/2] == High[iHighest(NULL,0,MODE_HIGH,nPeriod,nCurBar)])<br />
        {<br />
            <span style="color: #339966;"><strong>if(ChkRLine==0)</strong></span><br />
            {<br />
                r[ChkRLine]=High[nCurBar+(nPeriod-1)/2];<br />
                rt[ChkRLine]=nCurBar+(nPeriod-1)/2;<br />
                ChkRLine++;<br />
            }<br />
           <span style="color: #339966;"><strong> else if(r[ChkRLine-1] &gt; High[nCurBar+(nPeriod-1)/2] &amp;&amp; ChkRLine &lt;= nLine)</strong></span><br />
            {<br />
                r[ChkRLine]=High[nCurBar+(nPeriod-1)/2];<br />
                rt[ChkRLine]=nCurBar+(nPeriod-1)/2;<br />
                ObjectMove(&#8221;Trend UP-&#8221;+(ChkRLine-1),1,Time[rt[ChkRLine-1]],r[ChkRLine-1]);<br />
                ObjectMove(&#8221;Trend UP-&#8221;+(ChkRLine-1),0,Time[rt[ChkRLine]],r[ChkRLine]);<br />
                ChkRLine++;<br />
            }<br />
            <span style="color: #339966;"><strong>else if(r[ChkRLine-1] &lt; High[nCurBar+(nPeriod-1)/2] &amp;&amp; ChkRLine &lt;= nLine)<br />
</strong></span>            {<br />
                r[ChkRLine-1]=High[nCurBar+(nPeriod-1)/2];<br />
                rt[ChkRLine-1]=nCurBar+(nPeriod-1)/2;<br />
            }<br />
        }</span></p>
<p><span style="color: #000000;">//上昇・下降ともに指定本数見つかった場合、ループを抜けます。<br />
       <span style="color: #3366ff;"><strong> </strong></span><span style="color: #3366ff;"><strong>if(ChkSLine &gt; nLine &amp;&amp; ChkRLine &gt; nLine)break;<br />
</strong></span>    }</span></p>
<p><span style="color: #000000;">   return(0);<br />
}</span></p>
<p> </p>
<p><span style="color: #000000;">メイン処理は、ループの中に納まっていて、必要な本数が見つかった後、<span style="color: #3366ff;"><strong>break</strong></span></span><span style="color: #000000;">で抜けいていることが分かると思います。</span></p>
<p><span style="color: #000000;">必要な数だけ、ループをまわすようにして負荷を抑えています。</span></p>
<p><span style="color: #000000;">値は、配列に格納しています。</span></p>
<p><span style="color: #000000;">本当は、配列に代入しなくても描画だけなら可能です。</span></p>
<p><span style="color: #000000;">ですが、今後の拡張のために値を残しておくようにしました。</span></p>
<p><span style="color: #000000;">値を残しておくことで、いろいろ拡張できると思います。</span></p>
<p> </p>
<p><span style="color: #000000;">値の格納も1つ目の変数への格納と、条件を満たした場合に次の配列へ格納すること、一度格納した配列より大きい・小さい値の場合入れ替える処理を追加してあります。</span></p>
<p> </p>
<p><span style="color: #000000;">少々複雑になりましたが、コンパクトにまとまっていると思います。</span></p>
<p> </p>
<div><span style="color: #000000;">今回のプログラムは、以下からダウンロードできます。</span></div>
<div><span style="color: #000000;"><a href="http://download-center.metatraderfx.net/indicator/trendline_v2/" target="_blank"><span style="color: #0000dd;">ここから、ダウンロード</span></a></span></div>
<p><span style="color: #000000;"> </span></p>
<p>インジケータは、</p>
<p>インストールパス\MetaTrader\experts\indicators</p>
<p>に入れてください。</p>
]]></content:encoded>
			<wfw:commentRss>http://metatraderfx.net/metatrader-beginner/%e3%83%88%e3%83%ac%e3%83%b3%e3%83%89%e3%83%a9%e3%82%a4%e3%83%b3%e3%82%92%e6%9b%b8%e3%81%84%e3%81%a6%e3%81%bf%e3%82%8b%ef%bc%93/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://metatraderfx.net/metatrader-beginner/%e3%83%88%e3%83%ac%e3%83%b3%e3%83%89%e3%83%a9%e3%82%a4%e3%83%b3%e3%82%92%e6%9b%b8%e3%81%84%e3%81%a6%e3%81%bf%e3%82%8b%ef%bc%93/" />
	</item>
		<item>
		<title>かるく文法（省略記号編）</title>
		<link>http://metatraderfx.net/metatrader-beginner/%e3%81%8b%e3%82%8b%e3%81%8f%e6%96%87%e6%b3%95%ef%bc%88%e7%9c%81%e7%95%a5%e8%a8%98%e5%8f%b7%e7%b7%a8%ef%bc%89/</link>
		<comments>http://metatraderfx.net/metatrader-beginner/%e3%81%8b%e3%82%8b%e3%81%8f%e6%96%87%e6%b3%95%ef%bc%88%e7%9c%81%e7%95%a5%e8%a8%98%e5%8f%b7%e7%b7%a8%ef%bc%89/#comments</comments>
		<pubDate>Mon, 11 May 2009 01:06:50 +0000</pubDate>
		<dc:creator>kei</dc:creator>
				<category><![CDATA[MQL4]]></category>
		<category><![CDATA[メタトレーダー入門]]></category>
		<category><![CDATA[プログラミング]]></category>
		<category><![CDATA[入門]]></category>
		<category><![CDATA[文法]]></category>

		<guid isPermaLink="false">http://metatraderfx.net/?p=204</guid>
		<description><![CDATA[質問があったので、MQL４で有効な四則演算での省略記号の説明を追加します。
 
省略記号編
 
符号（＋－）を２回繰り返すことで、１足したり、引いたりすることと同じになります。
i++;
→　i=i+1;
i&#8211;;
→　i=i-1;
 
複数の足し引きをしたい場合
i+=2;
→　i=1+2;
i-=3;
→　i=i-3;
 
このように同じ数の足し引きには、便利ですので覚えておくといいでしょう。
また、サンプルでもよく使われますので、意味を覚えておいてください。
 
ちなみに
i-;
では、通常の引き算としてあつかわれるので、iから右辺のものを引こうとしますが右辺が無いためエラーになります。
また、
i-1;
では、計算結果が左辺に出力されますが、結果を受け取ることができません。
 
省略記号以外は、
代入先の変数=計算式;
と記述してください。
 
if文などは、()内の変数を利用するため、代入先の変数を用意する必要はありません。
if(a==1)
は、
a==1の計算結果が、trueかfalseになり、その値が引数としてif文にわたされるので、代入先の変数は必要ありません。
関数の説明は、後ほど行います。
]]></description>
			<content:encoded><![CDATA[<p>質問があったので、MQL４で有効な四則演算での省略記号の説明を追加します。</p>
<p> </p>
<p><strong><em><span style="text-decoration: underline;">省略記号編</span></em></strong></p>
<p> </p>
<p>符号（＋－）を２回繰り返すことで、１足したり、引いたりすることと同じになります。</p>
<p>i++;</p>
<p>→　i=i+1;</p>
<p>i&#8211;;</p>
<p>→　i=i-1;</p>
<p> </p>
<p>複数の足し引きをしたい場合</p>
<p>i+=2;</p>
<p>→　i=1+2;</p>
<p>i-=3;</p>
<p>→　i=i-3;</p>
<p> </p>
<p>このように同じ数の足し引きには、便利ですので覚えておくといいでしょう。</p>
<p>また、サンプルでもよく使われますので、意味を覚えておいてください。</p>
<p> </p>
<p>ちなみに</p>
<p>i-;</p>
<p>では、通常の引き算としてあつかわれるので、iから右辺のものを引こうとしますが右辺が無いためエラーになります。</p>
<p>また、</p>
<p>i-1;</p>
<p>では、計算結果が左辺に出力されますが、結果を受け取ることができません。</p>
<p> </p>
<p>省略記号以外は、</p>
<p>代入先の変数=計算式;</p>
<p>と記述してください。</p>
<p> </p>
<p>if文などは、()内の変数を利用するため、代入先の変数を用意する必要はありません。</p>
<p>if(a==1)</p>
<p>は、</p>
<p>a==1の計算結果が、trueかfalseになり、その値が引数としてif文にわたされるので、代入先の変数は必要ありません。</p>
<p>関数の説明は、後ほど行います。</p>
]]></content:encoded>
			<wfw:commentRss>http://metatraderfx.net/metatrader-beginner/%e3%81%8b%e3%82%8b%e3%81%8f%e6%96%87%e6%b3%95%ef%bc%88%e7%9c%81%e7%95%a5%e8%a8%98%e5%8f%b7%e7%b7%a8%ef%bc%89/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://metatraderfx.net/metatrader-beginner/%e3%81%8b%e3%82%8b%e3%81%8f%e6%96%87%e6%b3%95%ef%bc%88%e7%9c%81%e7%95%a5%e8%a8%98%e5%8f%b7%e7%b7%a8%ef%bc%89/" />
	</item>
		<item>
		<title>トレンドラインを書いてみる２</title>
		<link>http://metatraderfx.net/metatrader-beginner/%e3%83%88%e3%83%ac%e3%83%b3%e3%83%89%e3%83%a9%e3%82%a4%e3%83%b3%e3%82%92%e6%9b%b8%e3%81%84%e3%81%a6%e3%81%bf%e3%82%8b%ef%bc%92/</link>
		<comments>http://metatraderfx.net/metatrader-beginner/%e3%83%88%e3%83%ac%e3%83%b3%e3%83%89%e3%83%a9%e3%82%a4%e3%83%b3%e3%82%92%e6%9b%b8%e3%81%84%e3%81%a6%e3%81%bf%e3%82%8b%ef%bc%92/#comments</comments>
		<pubDate>Sat, 09 May 2009 09:51:18 +0000</pubDate>
		<dc:creator>kei</dc:creator>
				<category><![CDATA[MQL4]]></category>
		<category><![CDATA[インジケータ]]></category>
		<category><![CDATA[メタトレーダー入門]]></category>
		<category><![CDATA[サンプル]]></category>
		<category><![CDATA[トレンドライン]]></category>
		<category><![CDATA[プログラミング]]></category>
		<category><![CDATA[入門]]></category>

		<guid isPermaLink="false">http://metatraderfx.net/?p=192</guid>
		<description><![CDATA[前回紹介した、トレンドラインを書いてみるはご覧になりましたか？
MT４でも手動で書くことができますが、やっぱり自動が楽ですよね。
 
でも、ちゃんと動くと思いますが、実はあまりいいプログラムではありません。
ちゃんと動く＝いいプログラム
ではないということです。
 
では、何が悪いか。。。
 
ソースを見た時点で、だめだめジャン！！
って思った人は、プロかセミプロレベルの人ですね。
 
では、どこがダメなんでしょうか？
 
まず、for文でループを回している部分がありますよね。
ここが、ダメです。
for文じゃなくて、while文を使うってわけじゃありません。
基本的にループをまわすには、どちらを使ってもかまいません。
使いやすい方を使ってください。
 
では、ダメな部分。
調査する足の最大数からカウントダウンしてますよね。
古い方から新しい方へ調査しています。
 
別に古い方から新しい方へループをまわすことが悪いんじゃないんですが、今回はダメです。
実際に動かすと、トレンドラインを引く山や谷を見つけるのに、新しい方から数十本の足ですんでいますよね。
ということは、無駄なループをたくさん回しているということになります。
 
ループは、結構PCに負担なんです。
為替は、生き物ですから１秒でも無駄にしたくありませんよね。
だから、無駄を省く必要があります。
 
ですから、正解は新しい方から古い方にループを回して、必要な山や谷を見つけたらループを抜けるように組めばいいんです。
「break」という命令で、ループを抜けることができます。
 
もう一つあります。
ループの中で余分な変数に代入して、ループを抜けた後に上昇・下降か判断している部分があります。
ループ内で、判断すれば無駄が省けますよね。
 
プログラムは、動くことも大事ですがこうした無駄を省くように心がけると結果的に高速に動いたり、見やすいソースになります。
ぜひ、自分で組むときは心がけてください。
 
次は、もう一度トレンドラインを引くインジケーターを作ります。
上記で説明した、ダメな部分の修正ともう一つ。
表示してみると分かりますが、最新の１本だけだとトレードに使えません。
少なくても３本ぐらいないと、トレードの参考にならないはずです。
ですから、１本のトレンドラインから３本に増やします。
 
次回をお楽しみに！
]]></description>
			<content:encoded><![CDATA[<p>前回紹介した、<a href="http://metatraderfx.net/metatrader-beginner/%e3%83%88%e3%83%ac%e3%83%b3%e3%83%89%e3%83%a9%e3%82%a4%e3%83%b3%e3%82%92%e6%9b%b8%e3%81%84%e3%81%a6%e3%81%bf%e3%82%8b/" target="_blank">トレンドラインを書いてみる</a>はご覧になりましたか？</p>
<p>MT４でも手動で書くことができますが、やっぱり自動が楽ですよね。</p>
<p> </p>
<p>でも、ちゃんと動くと思いますが、実はあまりいいプログラムではありません。</p>
<p>ちゃんと動く＝いいプログラム</p>
<p>ではないということです。</p>
<p> </p>
<p>では、何が悪いか。。。</p>
<p> </p>
<p>ソースを見た時点で、だめだめジャン！！</p>
<p>って思った人は、プロかセミプロレベルの人ですね。</p>
<p> </p>
<p>では、どこがダメなんでしょうか？</p>
<p> </p>
<p>まず、for文でループを回している部分がありますよね。</p>
<p>ここが、ダメです。</p>
<p>for文じゃなくて、while文を使うってわけじゃありません。</p>
<p>基本的にループをまわすには、どちらを使ってもかまいません。</p>
<p>使いやすい方を使ってください。</p>
<p> </p>
<p>では、ダメな部分。</p>
<p>調査する足の最大数からカウントダウンしてますよね。</p>
<p>古い方から新しい方へ調査しています。</p>
<p> </p>
<p>別に古い方から新しい方へループをまわすことが悪いんじゃないんですが、今回はダメです。</p>
<p>実際に動かすと、トレンドラインを引く山や谷を見つけるのに、新しい方から数十本の足ですんでいますよね。</p>
<p>ということは、無駄なループをたくさん回しているということになります。</p>
<p> </p>
<p>ループは、結構PCに負担なんです。</p>
<p>為替は、生き物ですから１秒でも無駄にしたくありませんよね。</p>
<p>だから、無駄を省く必要があります。</p>
<p> </p>
<p>ですから、正解は新しい方から古い方にループを回して、必要な山や谷を見つけたらループを抜けるように組めばいいんです。</p>
<p>「break」という命令で、ループを抜けることができます。</p>
<p> </p>
<p>もう一つあります。</p>
<p>ループの中で余分な変数に代入して、ループを抜けた後に上昇・下降か判断している部分があります。</p>
<p>ループ内で、判断すれば無駄が省けますよね。</p>
<p> </p>
<p>プログラムは、動くことも大事ですがこうした無駄を省くように心がけると結果的に高速に動いたり、見やすいソースになります。</p>
<p>ぜひ、自分で組むときは心がけてください。</p>
<p> </p>
<p>次は、もう一度トレンドラインを引くインジケーターを作ります。</p>
<p>上記で説明した、ダメな部分の修正ともう一つ。</p>
<p>表示してみると分かりますが、最新の１本だけだとトレードに使えません。</p>
<p>少なくても３本ぐらいないと、トレードの参考にならないはずです。</p>
<p>ですから、１本のトレンドラインから３本に増やします。</p>
<p> </p>
<p>次回をお楽しみに！</p>
]]></content:encoded>
			<wfw:commentRss>http://metatraderfx.net/metatrader-beginner/%e3%83%88%e3%83%ac%e3%83%b3%e3%83%89%e3%83%a9%e3%82%a4%e3%83%b3%e3%82%92%e6%9b%b8%e3%81%84%e3%81%a6%e3%81%bf%e3%82%8b%ef%bc%92/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://metatraderfx.net/metatrader-beginner/%e3%83%88%e3%83%ac%e3%83%b3%e3%83%89%e3%83%a9%e3%82%a4%e3%83%b3%e3%82%92%e6%9b%b8%e3%81%84%e3%81%a6%e3%81%bf%e3%82%8b%ef%bc%92/" />
	</item>
		<item>
		<title>トレンドラインを書いてみる</title>
		<link>http://metatraderfx.net/metatrader-beginner/%e3%83%88%e3%83%ac%e3%83%b3%e3%83%89%e3%83%a9%e3%82%a4%e3%83%b3%e3%82%92%e6%9b%b8%e3%81%84%e3%81%a6%e3%81%bf%e3%82%8b/</link>
		<comments>http://metatraderfx.net/metatrader-beginner/%e3%83%88%e3%83%ac%e3%83%b3%e3%83%89%e3%83%a9%e3%82%a4%e3%83%b3%e3%82%92%e6%9b%b8%e3%81%84%e3%81%a6%e3%81%bf%e3%82%8b/#comments</comments>
		<pubDate>Fri, 08 May 2009 22:33:14 +0000</pubDate>
		<dc:creator>kei</dc:creator>
				<category><![CDATA[MQL4]]></category>
		<category><![CDATA[インジケータ]]></category>
		<category><![CDATA[メタトレーダー入門]]></category>
		<category><![CDATA[インジケーター]]></category>
		<category><![CDATA[サンプル]]></category>
		<category><![CDATA[トレンドライン]]></category>
		<category><![CDATA[プログラミング]]></category>
		<category><![CDATA[入門]]></category>
		<category><![CDATA[文法]]></category>

		<guid isPermaLink="false">http://metatraderfx.net/?p=174</guid>
		<description><![CDATA[前回は、インジケーターを作ってみるで足に対応したバッファに代入することで、メタトレーダーの機能を使いグラフを自動的に描画方法を試してみました。
今回は、オブジェクトという機能を使い好きな場所に線や文字などを描画する方法を試してみます。
 
で、単純に線を書いてもおもしろくないのでトレンドラインを書いてみたいと思います。
 
トレンドとは、上下に動きながら移動している為替も平均してみると上昇していたり、下降しているときがあります。
こうした状態をトレンド相場と呼びます。
平均した線が横ばいの場合は、レンジ相場と呼びます。
 
為替は、上昇トレンド、下降トレンド、レンジ相場の３種類のどれかの状態になっています。
 
このトレンドを表す線をトレンドラインと呼びます。
上昇トレンドラインは、上下に動いている山の高値と高値を結んだ線。
下降トレンドラインは、谷の安値と安値を結んだ線のことをいいます。
 
このトレンドラインをインジケーターの機能を使って、描画したいと思います。
 
インジケーターを作ってみるを参考にスケルトンを作ります。
Nameを「TrendLine」。
その他は、何も入力しません。
 
まずは、TrendLineのスケルトンを作成してください。
 
まず、前半の宣言部分を作成します。
//メインウィンドウに描画します。
#property indicator_chart_window
//山と谷を見つける幅をパラメータとして指定します。
extern int nPeriod=9;
//先頭から何本まで山、谷を見つけるかパラメータとして指定します。
extern int Limit=350;
 
次は、初期化処理です。
int init()
{
//下降トレンドライン０番目のオブジェクトを作ります。
    ObjectCreate(&#8221;Trend DN-0&#8243;,OBJ_TREND,0,0,0,0,0);
//下降トレンドライン０番目のオブジェクトの色を指定します。
    ObjectSet(&#8221;Trend DN-0&#8243;,OBJPROP_COLOR,Maroon);
 
//上昇トレンド０番目のラインオブジェクトを作成します。
    ObjectCreate(&#8221;Trend UP-0&#8243;,OBJ_TREND,0,0,0,0,0);
    ObjectSet(&#8221;Trend UP-0&#8243;,OBJPROP_COLOR,Green);
 
   return(0);
}
上昇、下降用のトレンドラインを引くためのオブジェクトを用意しました。
次は、終了処理です。

int deinit()
{
//オブジェクトを削除します。
    ObjectDelete(&#8221;Trend UP-0&#8243;);
    ObjectDelete(&#8221;Trend DN-0&#8243;);
   return(0);
}
 
インジケータを削除したときに、オブジェクトが残ってしまいます。
そのために、インジケータ終了時に自分が作ったオブジェクトを削除する処理を追加します。
次は、トレンドラインを描画するための山、谷を見つけラインを引く処理です。

 
int start()
{
//山、谷の値と足番号を格納する変数と描画する値を格納する変数を宣言します。
    double r1,r2,r3,r_1,r_2;
    int rt1,rt2,rt3,rt_1,rt_2;
    double s1,s2,s3,s_1,s_2;
    int st1,st2,st3,st_1,st_2;
    int nCurBar=0;
 
//表示されている足の数が、Limitより小さい場合、nPeriod引いた値をセットします。
//検査用の領域を確保するためです。
    if(Bars&#60;Limit) Limit=Bars-nPeriod;
 
//検査する足を古い方からセットしていきます。
    for(nCurBar=Limit; nCurBar&#62;0; nCurBar&#8211;)
    {
 
//検査する足の数の中心の安値が、検査する足の範囲で最小の安値の場合
//最新の安値をs1に代入します。
//S1を代入する前に過去の安値をS3、S2と古い変数へスライドさせて格納します。
        if(Low[nCurBar+(nPeriod-1)/2] == Low[iLowest(NULL,0,MODE_LOW,nPeriod,nCurBar)])
        {
            s3=s2; s2=s1; s1=Low[nCurBar+(nPeriod-1)/2];
     [...]]]></description>
			<content:encoded><![CDATA[<p>前回は、<a href="http://metatraderfx.net/metatrader-beginner/%e3%82%a4%e3%83%b3%e3%82%b8%e3%82%b1%e3%83%bc%e3%82%bf%e3%83%bc%e3%82%92%e4%bd%9c%e3%81%a3%e3%81%a6%e3%81%bf%e3%82%8b%e3%80%82/" target="_blank">インジケーターを作ってみる</a>で足に対応したバッファに代入することで、メタトレーダーの機能を使いグラフを自動的に描画方法を試してみました。</p>
<p>今回は、オブジェクトという機能を使い好きな場所に線や文字などを描画する方法を試してみます。</p>
<p> </p>
<p>で、単純に線を書いてもおもしろくないのでトレンドラインを書いてみたいと思います。</p>
<p> </p>
<p>トレンドとは、上下に動きながら移動している為替も平均してみると上昇していたり、下降しているときがあります。</p>
<p>こうした状態をトレンド相場と呼びます。</p>
<p>平均した線が横ばいの場合は、レンジ相場と呼びます。</p>
<p> </p>
<p>為替は、上昇トレンド、下降トレンド、レンジ相場の３種類のどれかの状態になっています。</p>
<p> </p>
<p>このトレンドを表す線をトレンドラインと呼びます。</p>
<p>上昇トレンドラインは、上下に動いている山の高値と高値を結んだ線。</p>
<p>下降トレンドラインは、谷の安値と安値を結んだ線のことをいいます。</p>
<p> </p>
<p>このトレンドラインをインジケーターの機能を使って、描画したいと思います。</p>
<p> </p>
<p><a href="http://metatraderfx.net/metatrader-beginner/%e3%82%a4%e3%83%b3%e3%82%b8%e3%82%b1%e3%83%bc%e3%82%bf%e3%83%bc%e3%82%92%e4%bd%9c%e3%81%a3%e3%81%a6%e3%81%bf%e3%82%8b%e3%80%82/" target="_blank">インジケーターを作ってみる</a>を参考にスケルトンを作ります。</p>
<p>Nameを「TrendLine」。</p>
<p>その他は、何も入力しません。</p>
<p> </p>
<p>まずは、TrendLineのスケルトンを作成してください。</p>
<p> </p>
<p>まず、前半の宣言部分を作成します。</p>
<p>//メインウィンドウに描画します。</p>
<p>#property indicator_chart_window</p>
<p>//山と谷を見つける幅をパラメータとして指定します。</p>
<p>extern int nPeriod=9;</p>
<p>//先頭から何本まで山、谷を見つけるかパラメータとして指定します。</p>
<p>extern int Limit=350;</p>
<p> </p>
<p>次は、初期化処理です。</p>
<p>int init()</p>
<p>{</p>
<p>//下降トレンドライン０番目のオブジェクトを作ります。</p>
<p>    <a href="http://googolyenfx.blog18.fc2.com/blog-entry-291.html" target="_blank">ObjectCreate</a>(&#8221;Trend DN-0&#8243;,OBJ_TREND,0,0,0,0,0);</p>
<p>//下降トレンドライン０番目のオブジェクトの色を指定します。</p>
<p>    <a href="http://googolyenfx.blog18.fc2.com/blog-entry-302.html" target="_blank">ObjectSet</a>(&#8221;Trend DN-0&#8243;,OBJPROP_COLOR,Maroon);</p>
<p> </p>
<p>//上昇トレンド０番目のラインオブジェクトを作成します。</p>
<p>    <a href="http://googolyenfx.blog18.fc2.com/blog-entry-291.html" target="_blank">ObjectCreate</a>(&#8221;Trend UP-0&#8243;,OBJ_TREND,0,0,0,0,0);</p>
<p>    <a href="http://googolyenfx.blog18.fc2.com/blog-entry-302.html" target="_blank">ObjectSet</a>(&#8221;Trend UP-0&#8243;,OBJPROP_COLOR,Green);</p>
<p> </p>
<p>   return(0);</p>
<p>}</p>
<p>上昇、下降用のトレンドラインを引くためのオブジェクトを用意しました。</p>
<p>次は、終了処理です。</p>
<div>
<div>int deinit()</div>
<div>{</div>
<div>//オブジェクトを削除します。</div>
<div>    <a href="http://googolyenfx.blog18.fc2.com/blog-entry-292.html" target="_blank">ObjectDelete</a>(&#8221;Trend UP-0&#8243;);</div>
<div>    <a href="http://googolyenfx.blog18.fc2.com/blog-entry-292.html" target="_blank">ObjectDelete</a>(&#8221;Trend DN-0&#8243;);</div>
<div>   return(0);</div>
<div>}</div>
<p> </p></div>
<p>インジケータを削除したときに、オブジェクトが残ってしまいます。</p>
<p>そのために、インジケータ終了時に自分が作ったオブジェクトを削除する処理を追加します。</p>
<p>次は、トレンドラインを描画するための山、谷を見つけラインを引く処理です。</p>
<div>
<p> </p>
<div>int start()</div>
<div>{</div>
<p>//山、谷の値と足番号を格納する変数と描画する値を格納する変数を宣言します。</p>
<div>    double r1,r2,r3,r_1,r_2;</div>
<div>    int rt1,rt2,rt3,rt_1,rt_2;</div>
<div>    double s1,s2,s3,s_1,s_2;</div>
<div>    int st1,st2,st3,st_1,st_2;</div>
<div>    int nCurBar=0;</div>
<p> </p>
<div>//表示されている足の数が、Limitより小さい場合、nPeriod引いた値をセットします。</div>
<div>//検査用の領域を確保するためです。</div>
<div>    if(Bars&lt;Limit) Limit=Bars-nPeriod;</div>
<p> </p>
<div>//検査する足を古い方からセットしていきます。</div>
<div>    for(nCurBar=Limit; nCurBar&gt;0; nCurBar&#8211;)</div>
<div>    {</div>
<p> </p>
<div>//検査する足の数の中心の安値が、検査する足の範囲で最小の安値の場合</div>
<div>//最新の安値をs1に代入します。</div>
<div>//S1を代入する前に過去の安値をS3、S2と古い変数へスライドさせて格納します。</div>
<div>        if(<a href="http://googolyenfx.blog18.fc2.com/blog-entry-234.html" target="_blank">Low</a>[nCurBar+(nPeriod-1)/2] == <a href="http://googolyenfx.blog18.fc2.com/blog-entry-234.html" target="_blank">Low</a>[<a href="http://googolyenfx.blog18.fc2.com/blog-entry-224.html" target="_blank">iLowest(</a>NULL,0,MODE_LOW,nPeriod,nCurBar)])</div>
<div>        {</div>
<div>            s3=s2; s2=s1; s1=Low[nCurBar+(nPeriod-1)/2];</div>
<div>            st3=st2; st2=st1; st1=nCurBar+(nPeriod-1)/2;</div>
<div>        }</div>
<p> </p>
<div>//安値と同様に高値を変数へ代入します。</div>
<div>        if(<a href="http://googolyenfx.blog18.fc2.com/blog-entry-233.html" target="_blank">High</a>[nCurBar+(nPeriod-1)/2] ==<a href="http://googolyenfx.blog18.fc2.com/blog-entry-233.html" target="_blank"> High</a>[<a href="http://googolyenfx.blog18.fc2.com/blog-entry-222.html" target="_blank">iHighest</a>(NULL,0,MODE_HIGH,nPeriod,nCurBar)])</div>
<div>        {</div>
<div>            r3=r2; r2=r1; r1=High[nCurBar+(nPeriod-1)/2];</div>
<div>            rt3=rt2; rt2=rt1; rt1=nCurBar+(nPeriod-1)/2;</div>
<div>        }</div>
<div>    }</div>
<p> </p>
<div>//2つの安値を比べたときに最新の安値が下降している場合のみ描画します。</div>
<div>//そのために各谷の安値を比較して、下降している隣接している谷を見つけます。</div>
<div>//もし、存在しない場合はデフォルトでEMPTY_VALUEがセットされているため、描画されません。</div>
<div>    if(s1 &lt; s2){</div>
<div>        s_1=s1;</div>
<div>        s_2=s2;</div>
<div>        st_1=st1;</div>
<div>        st_2=st2;</div>
<div>    }</div>
<div>    else if(s2 &lt; s3){</div>
<div>        s_1=s2;</div>
<div>        s_2=s3;</div>
<div>        st_1=st2;</div>
<div>        st_2=st3;</div>
<div>    }</div>
<p> </p>
<div>//描画開始位置と次の点を設定します。</div>
<div>    <a href="http://googolyenfx.blog18.fc2.com/blog-entry-299.html" target="_blank">ObjectMove</a>(&#8221;Trend DN-0&#8243;,1,Time[st_1],s_1);</div>
<div>    <a href="http://googolyenfx.blog18.fc2.com/blog-entry-299.html" target="_blank">ObjectMove</a>(&#8221;Trend DN-0&#8243;,0,Time[st_2],s_2);</div>
<div>//上昇トレンドラインも下降トレンドラインと同様にセットします。</div>
<div>    if(r1 &gt; r2){</div>
<div>        r_1=r1;</div>
<div>        r_2=r2;</div>
<div>        rt_1=rt1;</div>
<div>        rt_2=rt2;</div>
<div>    }</div>
<div>    else if(r2 &gt; r3){</div>
<div>        r_1=r2;</div>
<div>        r_2=r3;</div>
<div>        rt_1=rt2;</div>
<div>        rt_2=rt3;</div>
<div>    }</div>
<div>    <a href="http://googolyenfx.blog18.fc2.com/blog-entry-299.html" target="_blank">ObjectMove</a>(&#8221;Trend UP-0&#8243;,1,Time[rt_1],r_1);</div>
<div>    <a href="http://googolyenfx.blog18.fc2.com/blog-entry-299.html" target="_blank">ObjectMove</a>(&#8221;Trend UP-0&#8243;,0,Time[rt_2],r_2);</div>
<div>   return(0);</div>
<div>}</div>
</div>
<p> </p>
<p>これで、終了です。</p>
<p>コンパイルして、インジケータを表示させてみてください。</p>
<p>以下のようにトレンドラインが表示されれば成功です。</p>
<div>
<div id="attachment_177" class="wp-caption aligncenter" style="width: 310px"><a href="http://metatraderfx.net/wp-content/uploads/2009/05/trendline.jpg"><img class="size-medium wp-image-177" title="trendline" src="http://metatraderfx.net/wp-content/uploads/2009/05/trendline-300x152.jpg" alt="TrendLineインジケーター" width="300" height="152" /></a><p class="wp-caption-text">TrendLineインジケーター</p></div>
</div>
<p>ちょっとは、らしいものができたのではないでしょうか？</p>
<p>少しずつレベルをアップしていきますね。</p>
<p> </p>
<p>今回のプログラムは、以下からダウンロードできます。</p>
<p><a href="http://download-center.metatraderfx.net/indicator/trendline/" target="_blank">ここから、ダウンロード</a></p>
<p> </p>
<p>インジケータは、</p>
<p>インストールパス\MetaTrader\experts\indicators</p>
<p>に入れてください。</p>
<p> </p>
<p><span id="more-174"></span></p>
<p><strong><span style="text-decoration: underline;"><span style="color: #ff0000;"><a href="http://metatraderfx.net/wp-content/uploads/2009/05/icon-check08.gif"><img class="alignleft size-full wp-image-200" title="icon-check08" src="http://metatraderfx.net/wp-content/uploads/2009/05/icon-check08.gif" alt="icon-check08" width="60" height="34" /></a>2009/05/09　２３：４５　修正</span></span></strong></p>
<p>初回投稿時に、古い関数を利用したソースを紹介してしまいました。</p>
<p>機能的には、問題ありませんが最新の関数を利用するように修正を行いました。</p>
<p>ダウンロードしたファイルも同様です。</p>
<p>修正時刻以前にダウンロードした方で気になる方は、再ダウンロードしてください。</p>
<p> </p>
<p>修正点は、</p>
<p><span style="color: #ff00ff;">Lowest</span>　→　<span style="color: #00ff00;"><strong>iLowest</strong></span></p>
<p><span style="color: #ff00ff;">Highest</span>　→　<span style="color: #00ff00;"><strong>iHighest</strong></span></p>
<p><strong>機能や引数に変更はありません。</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://metatraderfx.net/metatrader-beginner/%e3%83%88%e3%83%ac%e3%83%b3%e3%83%89%e3%83%a9%e3%82%a4%e3%83%b3%e3%82%92%e6%9b%b8%e3%81%84%e3%81%a6%e3%81%bf%e3%82%8b/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://metatraderfx.net/metatrader-beginner/%e3%83%88%e3%83%ac%e3%83%b3%e3%83%89%e3%83%a9%e3%82%a4%e3%83%b3%e3%82%92%e6%9b%b8%e3%81%84%e3%81%a6%e3%81%bf%e3%82%8b/" />
	</item>
		<item>
		<title>Expert Advisor Wizard</title>
		<link>http://metatraderfx.net/metatrader-beginner/expert-advisor-wizard/</link>
		<comments>http://metatraderfx.net/metatrader-beginner/expert-advisor-wizard/#comments</comments>
		<pubDate>Tue, 05 May 2009 21:37:27 +0000</pubDate>
		<dc:creator>kei</dc:creator>
				<category><![CDATA[MQL4]]></category>
		<category><![CDATA[メタトレーダー入門]]></category>
		<category><![CDATA[プログラミング]]></category>
		<category><![CDATA[入門]]></category>

		<guid isPermaLink="false">http://metatraderfx.net/?p=155</guid>
		<description><![CDATA[Expert Advisor Wizardは、インジケーターを作ってみるでも紹介していますが、MetaEditorでEAやインジケーターを作るときのウィザードです。
 
一応、注意事項というか便利かもという情報を
 
 
ここでは、まあ書いてある内容のものが作れます。
よく使うのは、
Expert AdvisorとCustom Indicatorでしょう。
 
Expert Advisorは、EAとか自動売買とかいわれるものを作成します。
インストールパス\MetaTrader\experts
にソースと実行ファイルができあがります。
ソースの拡張子は、mq4
実行ファイルの拡張子は、ex4
です。
 
Custom Indicatorはインジケーターというグラフを各プログラムを作成します。
ソースと実行ファイルは、
インストールパス\MetaTrader\experts\indicators
に格納されています。
拡張子は、EAと同様です。
 
EA、インジケーターの違いは、
EAは、売買ができる。
インジケータは、足に合わせたバッファと描画指示ができる。
で、逆はできません。
 
で、Expert Advisor Wizardは何を作るか決めた後、名前やパラメータなどの情報をセットするとスケルトンができあがるわけです。
決まった部分などは、自動的に作成してくれるわけですね。
 
でも、たとえば、私が書いたソースを試したい！
そんなとき、パラメータをいちいち入力するのが面倒じゃないですか。
そういうときは、どうするか。
 
Nameに名前を入れます。
これは、ファイル名なので入れないわけにはいきません。
その他は、入力する必要はありません。
 
たとえば、インジケーターを作るときの前半にあるこんな命令。
#property indicator_chart_window
#property indicator_buffers 1
#property indicator_color1 Red
自分で書けば、ウィザードで入力しなくても大丈夫です。
 
サンプルを使いたいときは、ファイル名だけでファイルを作って、ソースはコピーするやり方もあるっていうことですね。
自分で作ったものをベースに作りたいときも同じです。
 
ソースファイルも配っているから、そんな面倒なこともしたくない！！
って人は、もっと簡単な方法があります。
 
EAは、
インストールパス\MetaTrader\experts
インジケーターは、

インストールパス\MetaTrader\experts\indicators
にソースファイルや実行ファイルをコピーしてください。
それで、MetaEditorを再起動してください。

 
再起動しないといけないところが、煩わしいところですね。
ファイル名だけ作る方法だと再起動がいりません。
 
EAなどを動かしていて、止めたくない！！
ってときは、ファイル名方式。
どうでもいいときは、コピー＆再起動方式
と使い分けが必要かな。
 
どちらの方法でも結果は同じなので、いい方法をお使いください。
]]></description>
			<content:encoded><![CDATA[<p>Expert Advisor Wizardは、<a title="Permanent Link to インジケーターを作ってみる" rel="bookmark" href="http://metatraderfx.net/metatrader-beginner/%e3%82%a4%e3%83%b3%e3%82%b8%e3%82%b1%e3%83%bc%e3%82%bf%e3%83%bc%e3%82%92%e4%bd%9c%e3%81%a3%e3%81%a6%e3%81%bf%e3%82%8b%e3%80%82/">インジケーターを作ってみる</a>でも紹介していますが、MetaEditorでEAやインジケーターを作るときのウィザードです。</p>
<p> </p>
<p>一応、注意事項というか便利かもという情報を</p>
<p> </p>
<p> </p>
<div id="attachment_58" class="wp-caption aligncenter" style="width: 310px"><a href="http://metatraderfx.net/wp-content/uploads/2009/05/wizard_i.jpg"><img class="size-medium wp-image-58" title="wizard_i" src="http://metatraderfx.net/wp-content/uploads/2009/05/wizard_i-300x181.jpg" alt="Expert Advisor Wizard　インジケータ作成" width="300" height="181" /></a><p class="wp-caption-text">Expert Advisor Wizard　インジケータ作成</p></div>
<p>ここでは、まあ書いてある内容のものが作れます。</p>
<p>よく使うのは、</p>
<p>Expert AdvisorとCustom Indicatorでしょう。</p>
<p> </p>
<p>Expert Advisorは、EAとか自動売買とかいわれるものを作成します。</p>
<p>インストールパス\MetaTrader\experts</p>
<p>にソースと実行ファイルができあがります。</p>
<p>ソースの拡張子は、mq4</p>
<p>実行ファイルの拡張子は、ex4</p>
<p>です。</p>
<p> </p>
<p>Custom Indicatorはインジケーターというグラフを各プログラムを作成します。</p>
<p>ソースと実行ファイルは、</p>
<p>インストールパス\MetaTrader\experts\indicators</p>
<p>に格納されています。</p>
<p>拡張子は、EAと同様です。</p>
<p> </p>
<p>EA、インジケーターの違いは、</p>
<p>EAは、売買ができる。</p>
<p>インジケータは、足に合わせたバッファと描画指示ができる。</p>
<p>で、逆はできません。</p>
<p> </p>
<p>で、Expert Advisor Wizardは何を作るか決めた後、名前やパラメータなどの情報をセットするとスケルトンができあがるわけです。</p>
<p>決まった部分などは、自動的に作成してくれるわけですね。</p>
<p> </p>
<p>でも、たとえば、私が書いたソースを試したい！</p>
<p>そんなとき、パラメータをいちいち入力するのが面倒じゃないですか。</p>
<p>そういうときは、どうするか。</p>
<p> </p>
<p>Nameに名前を入れます。</p>
<p>これは、ファイル名なので入れないわけにはいきません。</p>
<p>その他は、入力する必要はありません。</p>
<p> </p>
<p>たとえば、インジケーターを作るときの前半にあるこんな命令。</p>
<p>#property indicator_chart_window</p>
<p>#property indicator_buffers 1</p>
<p>#property indicator_color1 Red</p>
<p>自分で書けば、ウィザードで入力しなくても大丈夫です。</p>
<p> </p>
<p>サンプルを使いたいときは、ファイル名だけでファイルを作って、ソースはコピーするやり方もあるっていうことですね。</p>
<p>自分で作ったものをベースに作りたいときも同じです。</p>
<p> </p>
<p>ソースファイルも配っているから、そんな面倒なこともしたくない！！</p>
<p>って人は、もっと簡単な方法があります。</p>
<p> </p>
<p>EAは、</p>
<p>インストールパス\MetaTrader\experts</p>
<div>インジケーターは、</div>
<div>
<p>インストールパス\MetaTrader\experts\indicators</p>
<div>にソースファイルや実行ファイルをコピーしてください。</div>
<div>それで、<strong><span style="text-decoration: underline;"><span style="color: #ff0000;">MetaEditorを再起動してください。</span></span></strong></div>
</div>
<p> </p>
<div>再起動しないといけないところが、煩わしいところですね。</div>
<div>ファイル名だけ作る方法だと再起動がいりません。</div>
<p> </p>
<div>EAなどを動かしていて、止めたくない！！</div>
<div>ってときは、<strong>ファイル名方式</strong>。</div>
<div>どうでもいいときは、<strong>コピー＆再起動方式</strong></div>
<div>と使い分けが必要かな。</div>
<p> </p>
<div>どちらの方法でも結果は同じなので、いい方法をお使いください。</div>
]]></content:encoded>
			<wfw:commentRss>http://metatraderfx.net/metatrader-beginner/expert-advisor-wizard/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://metatraderfx.net/metatrader-beginner/expert-advisor-wizard/" />
	</item>
		<item>
		<title>かるく文法（まとめ）</title>
		<link>http://metatraderfx.net/metatrader-beginner/%e3%81%8b%e3%82%8b%e3%81%8f%e6%96%87%e6%b3%95%ef%bc%88%e3%81%be%e3%81%a8%e3%82%81%ef%bc%89/</link>
		<comments>http://metatraderfx.net/metatrader-beginner/%e3%81%8b%e3%82%8b%e3%81%8f%e6%96%87%e6%b3%95%ef%bc%88%e3%81%be%e3%81%a8%e3%82%81%ef%bc%89/#comments</comments>
		<pubDate>Tue, 05 May 2009 07:55:18 +0000</pubDate>
		<dc:creator>kei</dc:creator>
				<category><![CDATA[MQL4]]></category>
		<category><![CDATA[メタトレーダー入門]]></category>
		<category><![CDATA[プログラミング]]></category>
		<category><![CDATA[入門]]></category>
		<category><![CDATA[文法]]></category>

		<guid isPermaLink="false">http://metatraderfx.net/?p=129</guid>
		<description><![CDATA[メタトレーダーのMQL4は、CやC#と同じような書式で、
関数は、{}の中が有効で、計算や条件は()でくくります。
if(a==0)
{
//処理
}
上記のように条件は()でくくります。
a==0は最終的に、true、falseのどちらかとしてあつかわれ、条件があっている場合は、true、
間違っている場合は、falseになります。
{}の間は、関数（上記の例ではif）の処理が有効な範囲として表します。
 
また、計算も()でくくることができて
a=(10/(2+3));
の様に表すことができて、
a=10/5;
となり
a=2;
と同じ意味になります。
 
四則演算は、かるく文法（四則演算編）を参照してください。
条件判断は、かるく文法（if文編）を参照してください。
ループ（繰り返す処理）は、かるく文法(for文編)、かるく文法(while文編)を参照してください。
]]></description>
			<content:encoded><![CDATA[<p>メタトレーダーのMQL4は、CやC#と同じような書式で、</p>
<p>関数は、{}の中が有効で、計算や条件は()でくくります。</p>
<p>if(a==0)</p>
<p>{</p>
<p>//処理</p>
<p>}</p>
<p>上記のように条件は()でくくります。</p>
<p>a==0は最終的に、true、falseのどちらかとしてあつかわれ、条件があっている場合は、true、</p>
<p>間違っている場合は、falseになります。</p>
<p>{}の間は、関数（上記の例ではif）の処理が有効な範囲として表します。</p>
<p> </p>
<p>また、計算も()でくくることができて</p>
<p>a=(10/(2+3));</p>
<p>の様に表すことができて、</p>
<p>a=10/5;</p>
<p>となり</p>
<p>a=2;</p>
<p>と同じ意味になります。</p>
<p> </p>
<p>四則演算は、<a href="http://metatraderfx.net/metatrader-beginner/%e3%81%8b%e3%82%8b%e3%81%8f%e6%96%87%e6%b3%95%ef%bc%88%e5%9b%9b%e5%89%87%e6%bc%94%e7%ae%97%e7%b7%a8%ef%bc%89/" target="_blank">かるく文法（四則演算編）</a>を参照してください。</p>
<p>条件判断は、<a href="http://metatraderfx.net/metatrader-beginner/%e3%81%8b%e3%82%8b%e3%81%8f%e6%96%87%e6%b3%95%ef%bc%88if%e6%96%87%e7%b7%a8%ef%bc%89/" target="_blank">かるく文法（if文編）</a>を参照してください。</p>
<p>ループ（繰り返す処理）は、<a href="http://metatraderfx.net/metatrader-beginner/%e3%81%8b%e3%82%8b%e3%81%8f%e6%96%87%e6%b3%95%ef%bc%88for%e6%96%87%e7%b7%a8%ef%bc%89/" target="_blank">かるく文法(for文編)</a>、<a href="http://metatraderfx.net/metatrader-beginner/%e3%81%8b%e3%82%8b%e3%81%8f%e6%96%87%e6%b3%95%ef%bc%88while%e7%b7%a8%ef%bc%89/" target="_blank">かるく文法(while文編)</a>を参照してください。</p>
]]></content:encoded>
			<wfw:commentRss>http://metatraderfx.net/metatrader-beginner/%e3%81%8b%e3%82%8b%e3%81%8f%e6%96%87%e6%b3%95%ef%bc%88%e3%81%be%e3%81%a8%e3%82%81%ef%bc%89/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://metatraderfx.net/metatrader-beginner/%e3%81%8b%e3%82%8b%e3%81%8f%e6%96%87%e6%b3%95%ef%bc%88%e3%81%be%e3%81%a8%e3%82%81%ef%bc%89/" />
	</item>
		<item>
		<title>かるく文法（while文編）</title>
		<link>http://metatraderfx.net/metatrader-beginner/%e3%81%8b%e3%82%8b%e3%81%8f%e6%96%87%e6%b3%95%ef%bc%88while%e7%b7%a8%ef%bc%89/</link>
		<comments>http://metatraderfx.net/metatrader-beginner/%e3%81%8b%e3%82%8b%e3%81%8f%e6%96%87%e6%b3%95%ef%bc%88while%e7%b7%a8%ef%bc%89/#comments</comments>
		<pubDate>Tue, 05 May 2009 05:54:06 +0000</pubDate>
		<dc:creator>kei</dc:creator>
				<category><![CDATA[MQL4]]></category>
		<category><![CDATA[メタトレーダー入門]]></category>
		<category><![CDATA[プログラミング]]></category>
		<category><![CDATA[入門]]></category>
		<category><![CDATA[文法]]></category>

		<guid isPermaLink="false">http://metatraderfx.net/?p=124</guid>
		<description><![CDATA[かるく文法（for文編）と同じようにぐるぐる回す系です。
メタトレーダーのMQL4でもそうですが、文法的にはCやC#と同じなので、この辺のプログラムを使っている方は、おなじみの文法です。
 
while編
while(条件)
{
}
の様に使います。
条件を満たしている間は、ぐるぐる{}の間を回り続けます。
 
int i=10;
whie(i&#62;=0)
{
//処理
i&#8211;;
}
このように記述するとiが10から0の間、処理を続け-1になったときに抜けます。
このような記述の場合は、for文を利用してもかまいません。
 
int flg=1;
int a=0;
while(flg==1)
{
//処理
a++;
if(a==10) flg=0;
}
 
上記のようにaが10になったときにflgへ0を代入して、ループを抜けるような使い方も行います。
 
while文の場合は、下の例のような使い方が一般的かもしれません。
]]></description>
			<content:encoded><![CDATA[<p><a href="http://metatraderfx.net/metatrader-beginner/%e3%81%8b%e3%82%8b%e3%81%8f%e6%96%87%e6%b3%95%ef%bc%88for%e6%96%87%e7%b7%a8%ef%bc%89/" target="_blank">かるく文法（for文編）</a>と同じようにぐるぐる回す系です。</p>
<p>メタトレーダーのMQL4でもそうですが、文法的にはCやC#と同じなので、この辺のプログラムを使っている方は、おなじみの文法です。</p>
<p> </p>
<p><strong><em><span style="text-decoration: underline;">while編</span></em></strong></p>
<p>while(条件)</p>
<p>{</p>
<p>}</p>
<p>の様に使います。</p>
<p>条件を満たしている間は、ぐるぐる{}の間を回り続けます。</p>
<p> </p>
<p>int i=10;</p>
<p>whie(i&gt;=0)</p>
<p>{</p>
<p>//処理</p>
<p>i&#8211;;</p>
<p>}</p>
<p>このように記述するとiが10から0の間、処理を続け-1になったときに抜けます。</p>
<p>このような記述の場合は、for文を利用してもかまいません。</p>
<p> </p>
<p>int flg=1;</p>
<p>int a=0;</p>
<p>while(flg==1)</p>
<p>{</p>
<p>//処理</p>
<p>a++;</p>
<p>if(a==10) flg=0;</p>
<p>}</p>
<p> </p>
<p>上記のようにaが10になったときにflgへ0を代入して、ループを抜けるような使い方も行います。</p>
<p> </p>
<p>while文の場合は、下の例のような使い方が一般的かもしれません。</p>
]]></content:encoded>
			<wfw:commentRss>http://metatraderfx.net/metatrader-beginner/%e3%81%8b%e3%82%8b%e3%81%8f%e6%96%87%e6%b3%95%ef%bc%88while%e7%b7%a8%ef%bc%89/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://metatraderfx.net/metatrader-beginner/%e3%81%8b%e3%82%8b%e3%81%8f%e6%96%87%e6%b3%95%ef%bc%88while%e7%b7%a8%ef%bc%89/" />
	</item>
		<item>
		<title>かるく文法（for文編）</title>
		<link>http://metatraderfx.net/metatrader-beginner/%e3%81%8b%e3%82%8b%e3%81%8f%e6%96%87%e6%b3%95%ef%bc%88for%e6%96%87%e7%b7%a8%ef%bc%89/</link>
		<comments>http://metatraderfx.net/metatrader-beginner/%e3%81%8b%e3%82%8b%e3%81%8f%e6%96%87%e6%b3%95%ef%bc%88for%e6%96%87%e7%b7%a8%ef%bc%89/#comments</comments>
		<pubDate>Sun, 03 May 2009 22:17:27 +0000</pubDate>
		<dc:creator>kei</dc:creator>
				<category><![CDATA[MQL4]]></category>
		<category><![CDATA[メタトレーダー入門]]></category>
		<category><![CDATA[プログラミング]]></category>
		<category><![CDATA[入門]]></category>
		<category><![CDATA[文法]]></category>

		<guid isPermaLink="false">http://metatraderfx.net/?p=121</guid>
		<description><![CDATA[ぐるぐる決まった数だけ、回したいときの方法を説明します。
 
for文編
for(初期値;条件;ステップ)
{
//やりたいこと
}
 
たとえば、
int i;
int Num[10];
for(i=0;i&#60;10;i++)
{
Num[i]=i;
}
こんな感じだと。
iが０から9まで、1づつ足していきます。
 
配列は、0から始まるので、iを0から始めています。
 
Ｎｕｍ[配列番号]に配列番号と同じ数字を代入しているわけです。
だから、Num[2]は2になります。
 
i&#60;10はiが10より小さい間、ループすることを意味しています。
ですから、0から9の間で、10になったときにループを抜けます。
 
i++は、i=i+1の略で、ループするたびに1足していくことを意味します。
 
決まった数だけ、ループしたいときにfor文を使うことを覚えておいてください。
 
ちなみに
 
for(i=9;i&#62;=0;i&#8211;){}
この場合は、9から0までカウントダウンして、-1になったときにループを抜けます。
 
逆にカウントダウンしたいときはこんな感じ。
条件がi&#62;=0で=が入っていることに注意してください。
0までを含みますからね。
i&#62;-1としても同じことです。
 
i&#8211;はi=i-1の略です。
]]></description>
			<content:encoded><![CDATA[<p>ぐるぐる決まった数だけ、回したいときの方法を説明します。</p>
<p> </p>
<p><strong><em><span style="text-decoration: underline;">for文編</span></em></strong></p>
<p>for(初期値;条件;ステップ)</p>
<p>{</p>
<p>//やりたいこと</p>
<p>}</p>
<p> </p>
<p>たとえば、</p>
<p>int i;</p>
<p>int Num[10];</p>
<p>for(i=0;i&lt;10;i++)</p>
<p>{</p>
<p>Num[i]=i;</p>
<p>}</p>
<p>こんな感じだと。</p>
<p>iが０から9まで、1づつ足していきます。</p>
<p> </p>
<p>配列は、0から始まるので、iを0から始めています。</p>
<p> </p>
<p>Ｎｕｍ[配列番号]に配列番号と同じ数字を代入しているわけです。</p>
<p>だから、Num[2]は2になります。</p>
<p> </p>
<p>i&lt;10はiが10より小さい間、ループすることを意味しています。</p>
<p>ですから、0から9の間で、10になったときにループを抜けます。</p>
<p> </p>
<p>i++は、i=i+1の略で、ループするたびに1足していくことを意味します。</p>
<p> </p>
<p>決まった数だけ、ループしたいときにfor文を使うことを覚えておいてください。</p>
<p> </p>
<p>ちなみに</p>
<p> </p>
<p>for(i=9;i&gt;=0;i&#8211;){}</p>
<p>この場合は、9から0までカウントダウンして、-1になったときにループを抜けます。</p>
<p> </p>
<p>逆にカウントダウンしたいときはこんな感じ。</p>
<p>条件がi&gt;=0で=が入っていることに注意してください。</p>
<p>0までを含みますからね。</p>
<p>i&gt;-1としても同じことです。</p>
<p> </p>
<p>i&#8211;はi=i-1の略です。</p>
]]></content:encoded>
			<wfw:commentRss>http://metatraderfx.net/metatrader-beginner/%e3%81%8b%e3%82%8b%e3%81%8f%e6%96%87%e6%b3%95%ef%bc%88for%e6%96%87%e7%b7%a8%ef%bc%89/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://metatraderfx.net/metatrader-beginner/%e3%81%8b%e3%82%8b%e3%81%8f%e6%96%87%e6%b3%95%ef%bc%88for%e6%96%87%e7%b7%a8%ef%bc%89/" />
	</item>
		<item>
		<title>かるく文法（四則演算編）</title>
		<link>http://metatraderfx.net/metatrader-beginner/%e3%81%8b%e3%82%8b%e3%81%8f%e6%96%87%e6%b3%95%ef%bc%88%e5%9b%9b%e5%89%87%e6%bc%94%e7%ae%97%e7%b7%a8%ef%bc%89/</link>
		<comments>http://metatraderfx.net/metatrader-beginner/%e3%81%8b%e3%82%8b%e3%81%8f%e6%96%87%e6%b3%95%ef%bc%88%e5%9b%9b%e5%89%87%e6%bc%94%e7%ae%97%e7%b7%a8%ef%bc%89/#comments</comments>
		<pubDate>Sun, 03 May 2009 16:10:17 +0000</pubDate>
		<dc:creator>kei</dc:creator>
				<category><![CDATA[MQL4]]></category>
		<category><![CDATA[メタトレーダー入門]]></category>
		<category><![CDATA[プログラミング]]></category>
		<category><![CDATA[入門]]></category>
		<category><![CDATA[文法]]></category>

		<guid isPermaLink="false">http://metatraderfx.net/?p=116</guid>
		<description><![CDATA[基本の演算方法を説明します。
 
四則演算編
四則演算は、
+：足し算
-：引き算
*：かけ算
/：割り算
%：割り算のあまり
 
int a=1;
int b=2;
int c=0;
c=a+b;
//1+2でcは3になります。
c=b-a;
//2-1でcは1になります。
c=a*b;
//1*2でcは2になります。
c=b/a;
//2/1でcは2になります。
 
double d=0.0;
c=a/b;
d=a/b;
この場合は、ちょっと変わってきます。
cはint型で整数、dはdouble型で小数点を格納できます。
だから、cは0.5を四捨五入した値の1。
dは0.5になります。
 
ちなみに、
d=a%b;
は、0.5になり、あまりを計算することができます。
d=3%2;
これも0.5です。
 
doubleは、もう一つ気をつけなければいけないことがあります。
 
精度といわれるもので、計算する通貨ペアの最低単位にあわされます。
USDJPYの場合は、0.01が最低単位なので、
d=1/7;
は、0.14285714285714285714285714285714
ですが、0.14になります。
 
EURUSDは、0.001が最低単位なので、
0.1429になります。
 
この最低単位は、Pointという変数に格納されています。
桁数は、Digitsに格納されています。
USDJPYの場合は、Pointは0.01。
Digitsは、2が格納されています。
 
また、計算上もっと細かい単位にしたい場合は、
IndicatorDigits
を使います。
今の精度より、2桁下まで利用したいときは
IndicatorDigits（Digits+2）;
こうすることで、USDJPYで0.0001の単位まで、計算されます。
]]></description>
			<content:encoded><![CDATA[<p>基本の演算方法を説明します。</p>
<p> </p>
<p><strong><em><span style="text-decoration: underline;">四則演算編</span></em></strong></p>
<p>四則演算は、</p>
<p>+：足し算</p>
<p>-：引き算</p>
<p>*：かけ算</p>
<p>/：割り算</p>
<p>%：割り算のあまり</p>
<p> </p>
<p>int a=1;</p>
<p>int b=2;</p>
<p>int c=0;</p>
<p>c=a+b;</p>
<p>//1+2でcは3になります。</p>
<p>c=b-a;</p>
<p>//2-1でcは1になります。</p>
<p>c=a*b;</p>
<p>//1*2でcは2になります。</p>
<p>c=b/a;</p>
<p>//2/1でcは2になります。</p>
<p> </p>
<p>double d=0.0;</p>
<p>c=a/b;</p>
<p>d=a/b;</p>
<p>この場合は、ちょっと変わってきます。</p>
<p>cはint型で整数、dはdouble型で小数点を格納できます。</p>
<p>だから、cは0.5を四捨五入した値の1。</p>
<p>dは0.5になります。</p>
<p> </p>
<p>ちなみに、</p>
<p>d=a%b;</p>
<p>は、0.5になり、あまりを計算することができます。</p>
<p>d=3%2;</p>
<p>これも0.5です。</p>
<p> </p>
<p>doubleは、もう一つ気をつけなければいけないことがあります。</p>
<p> </p>
<p>精度といわれるもので、計算する通貨ペアの最低単位にあわされます。</p>
<p>USDJPYの場合は、0.01が最低単位なので、</p>
<p>d=1/7;</p>
<p>は、0.14285714285714285714285714285714</p>
<p>ですが、0.14になります。</p>
<p> </p>
<p>EURUSDは、0.001が最低単位なので、</p>
<p>0.1429になります。</p>
<p> </p>
<p>この最低単位は、<a href="http://googolyenfx.blog18.fc2.com/blog-entry-236.html" target="_blank">Point</a>という変数に格納されています。</p>
<p>桁数は、<a href="http://googolyenfx.blog18.fc2.com/blog-entry-232.html" target="_blank">Digits</a>に格納されています。</p>
<p>USDJPYの場合は、<a href="http://googolyenfx.blog18.fc2.com/blog-entry-236.html" target="_blank">Point</a>は0.01。</p>
<p><a href="http://googolyenfx.blog18.fc2.com/blog-entry-232.html" target="_blank">Digits</a>は、2が格納されています。</p>
<p> </p>
<p>また、計算上もっと細かい単位にしたい場合は、</p>
<p><a href="http://googolyenfx.blog18.fc2.com/blog-entry-239.html" target="_blank">IndicatorDigits</a></p>
<p>を使います。</p>
<p>今の精度より、2桁下まで利用したいときは</p>
<p><a href="http://googolyenfx.blog18.fc2.com/blog-entry-239.html" target="_blank">IndicatorDigits</a>（<a href="http://googolyenfx.blog18.fc2.com/blog-entry-232.html" target="_blank">Digits</a>+2）;</p>
<p>こうすることで、USDJPYで0.0001の単位まで、計算されます。</p>
]]></content:encoded>
			<wfw:commentRss>http://metatraderfx.net/metatrader-beginner/%e3%81%8b%e3%82%8b%e3%81%8f%e6%96%87%e6%b3%95%ef%bc%88%e5%9b%9b%e5%89%87%e6%bc%94%e7%ae%97%e7%b7%a8%ef%bc%89/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://metatraderfx.net/metatrader-beginner/%e3%81%8b%e3%82%8b%e3%81%8f%e6%96%87%e6%b3%95%ef%bc%88%e5%9b%9b%e5%89%87%e6%bc%94%e7%ae%97%e7%b7%a8%ef%bc%89/" />
	</item>
		<item>
		<title>かるく文法（if文編）</title>
		<link>http://metatraderfx.net/metatrader-beginner/%e3%81%8b%e3%82%8b%e3%81%8f%e6%96%87%e6%b3%95%ef%bc%88if%e6%96%87%e7%b7%a8%ef%bc%89/</link>
		<comments>http://metatraderfx.net/metatrader-beginner/%e3%81%8b%e3%82%8b%e3%81%8f%e6%96%87%e6%b3%95%ef%bc%88if%e6%96%87%e7%b7%a8%ef%bc%89/#comments</comments>
		<pubDate>Sun, 03 May 2009 14:56:01 +0000</pubDate>
		<dc:creator>kei</dc:creator>
				<category><![CDATA[MQL4]]></category>
		<category><![CDATA[メタトレーダー入門]]></category>
		<category><![CDATA[プログラミング]]></category>
		<category><![CDATA[入門]]></category>
		<category><![CDATA[文法]]></category>

		<guid isPermaLink="false">http://metatraderfx.net/?p=111</guid>
		<description><![CDATA[あまり難しい、文法を使うつもりはないけど基本的なやつだけ説明しておきます。
 
if文
もし、こんなんだったら、こうする。
っていうことを行います。
 
int ChkNo=1;
if(ChkNo==0)
{
//ChkNoが0のとき
}
else if(ChkNo==1)
{
//ChkNoが1のとき
}
else
{
//ChkNoが0と1以外のとき
}
こんな感じで書きます。
上記の例だと、2番目に入ってきます。
 
条件文は
==：右と左の値が同じ場合
!=：右と左が違う場合
&#60;：左より右が大きい場合
&#60;=：左と同じか、右の方が大きい場合
&#62;：右より左が大きい場合
&#62;=：右と同じか、左の方が大きい場合
こんな感じの条件文が使えます。
 
条件は、連結することができて
&#38;&#38;：AND
&#124;&#124;：OR
で結ぶことも可能です。
 
int a=1;
string strBuf=&#8221;ABC&#8221;;
 
if(a==1 &#38;&#38; strBuf==&#8221;ABC&#8221;){}
こんな感じで、2つの条件が整ったときだけ処理するように指定できます。
]]></description>
			<content:encoded><![CDATA[<p>あまり難しい、文法を使うつもりはないけど基本的なやつだけ説明しておきます。</p>
<p> </p>
<p><strong><em><span style="text-decoration: underline;">if文</span></em></strong></p>
<p>もし、こんなんだったら、こうする。</p>
<p>っていうことを行います。</p>
<p> </p>
<p>int ChkNo=1;</p>
<p>if(ChkNo==0)</p>
<p>{</p>
<p>//ChkNoが0のとき</p>
<p>}</p>
<p>else if(ChkNo==1)</p>
<p>{</p>
<p>//ChkNoが1のとき</p>
<p>}</p>
<p>else</p>
<p>{</p>
<p>//ChkNoが0と1以外のとき</p>
<p>}</p>
<p>こんな感じで書きます。</p>
<p>上記の例だと、2番目に入ってきます。</p>
<p> </p>
<p>条件文は</p>
<p>==：右と左の値が同じ場合</p>
<p>!=：右と左が違う場合</p>
<p>&lt;：左より右が大きい場合</p>
<p>&lt;=：左と同じか、右の方が大きい場合</p>
<p>&gt;：右より左が大きい場合</p>
<p>&gt;=：右と同じか、左の方が大きい場合</p>
<p>こんな感じの条件文が使えます。</p>
<p> </p>
<p>条件は、連結することができて</p>
<p>&amp;&amp;：AND</p>
<p>||：OR</p>
<p>で結ぶことも可能です。</p>
<p> </p>
<p>int a=1;</p>
<p>string strBuf=&#8221;ABC&#8221;;</p>
<p> </p>
<p>if(a==1 &amp;&amp; strBuf==&#8221;ABC&#8221;){}</p>
<p>こんな感じで、2つの条件が整ったときだけ処理するように指定できます。</p>
]]></content:encoded>
			<wfw:commentRss>http://metatraderfx.net/metatrader-beginner/%e3%81%8b%e3%82%8b%e3%81%8f%e6%96%87%e6%b3%95%ef%bc%88if%e6%96%87%e7%b7%a8%ef%bc%89/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://metatraderfx.net/metatrader-beginner/%e3%81%8b%e3%82%8b%e3%81%8f%e6%96%87%e6%b3%95%ef%bc%88if%e6%96%87%e7%b7%a8%ef%bc%89/" />
	</item>
		<item>
		<title>インジケーターを作ってみる</title>
		<link>http://metatraderfx.net/metatrader-beginner/%e3%82%a4%e3%83%b3%e3%82%b8%e3%82%b1%e3%83%bc%e3%82%bf%e3%83%bc%e3%82%92%e4%bd%9c%e3%81%a3%e3%81%a6%e3%81%bf%e3%82%8b%e3%80%82/</link>
		<comments>http://metatraderfx.net/metatrader-beginner/%e3%82%a4%e3%83%b3%e3%82%b8%e3%82%b1%e3%83%bc%e3%82%bf%e3%83%bc%e3%82%92%e4%bd%9c%e3%81%a3%e3%81%a6%e3%81%bf%e3%82%8b%e3%80%82/#comments</comments>
		<pubDate>Fri, 01 May 2009 08:34:02 +0000</pubDate>
		<dc:creator>kei</dc:creator>
				<category><![CDATA[MQL4]]></category>
		<category><![CDATA[インジケータ]]></category>
		<category><![CDATA[メタトレーダー入門]]></category>
		<category><![CDATA[インジケーター]]></category>
		<category><![CDATA[サンプル]]></category>
		<category><![CDATA[プログラミング]]></category>
		<category><![CDATA[入門]]></category>
		<category><![CDATA[移動平均]]></category>

		<guid isPermaLink="false">http://metatraderfx.net/?p=85</guid>
		<description><![CDATA[今回は、インジケータを作ってみようと思います。  3本の移動平均を表示したいと思います。  
 簡単なプログラムを作ってみるを参考にMetaEditorのメニューでFile-Newで「Expert Advisor Wizard」を開きます。  「Custom Indicator」にチェックを入れて、次へを押します。   
Nameに３EA（名前なので何でもいいです）、Addボタンを押してパラメータを３つ追加します。
Nameをそれぞれ、Peried1、Peried2、Peried3とします。  Typeはintにしてください。   
次へを押します。
 
Addボタンを押して、表示するグラフのラインを追加します。
３つ追加して、Red、Yellow、Greenを選んでください。
別に違う色でもかまいません。
今回は、線で表示するのでTypeはLineのままにしてください。
 
完了を押すと、スケルトンが作成されます。
 
先頭の方に以下の行があると思います。
コメントを付けて、説明します。
//メインウィンドウに表示する。
#property indicator_chart_window
//グラフに利用する入れ物が３つ（最大８個）
#property indicator_buffers 3
//１本目は、太さ１の赤
#property indicator_color1 Red
//２本目は、太さ１の黄色
#property indicator_color2 Yellow
//３本目は、太さ１の緑
#property indicator_color3 Green
//入力するパラメータは、以下の3つ
extern int       Peried1;
extern int       Peried2;
extern int       Peried3;
//表示するグラフに対応する入れ物３つ
double ExtMapBuffer1[];
double ExtMapBuffer2[];
double ExtMapBuffer3[];
インジケータを使うときは、必要な数の上記の設定が必要になります。
ちょこっとだけ改造します。

extern int       Peried1=7;
extern int       Peried2=14;
extern int       [...]]]></description>
			<content:encoded><![CDATA[<p>今回は、インジケータを作ってみようと思います。  3本の移動平均を表示したいと思います。  </p>
<p> <a href="http://metatraderfx.net/metatrader-beginner/%e7%b0%a1%e5%8d%98%e3%81%aa%e3%83%97%e3%83%ad%e3%82%b0%e3%83%a9%e3%83%a0%e3%82%92%e4%bd%9c%e3%81%a3%e3%81%a6%e3%81%bf%e3%82%8b/" target="_blank">簡単なプログラムを作ってみる</a>を参考にMetaEditorのメニューでFile-Newで「Expert Advisor Wizard」を開きます。  「Custom Indicator」にチェックを入れて、次へを押します。   </p>
<div id="attachment_86" class="wp-caption aligncenter" style="width: 310px"><a href="http://metatraderfx.net/wp-content/uploads/2009/05/wizard_i_3ea.jpg"><img class="size-medium wp-image-86" title="wizard_i_3ea" src="http://metatraderfx.net/wp-content/uploads/2009/05/wizard_i_3ea-300x181.jpg" alt="3EAパラメータ追加" width="300" height="181" /></a><p class="wp-caption-text">3EAパラメータ追加</p></div>
<p>Nameに３EA（名前なので何でもいいです）、Addボタンを押してパラメータを３つ追加します。</p>
<p>Nameをそれぞれ、Peried1、Peried2、Peried3とします。  Typeはintにしてください。   </p>
<p>次へを押します。</p>
<p> </p>
<div id="attachment_87" class="wp-caption aligncenter" style="width: 310px"><a href="http://metatraderfx.net/wp-content/uploads/2009/05/wizard_i_3ea2.jpg"><img class="size-medium wp-image-87" title="wizard_i_3ea2" src="http://metatraderfx.net/wp-content/uploads/2009/05/wizard_i_3ea2-300x181.jpg" alt="グラフの種類を選択" width="300" height="181" /></a><p class="wp-caption-text">グラフの種類を選択</p></div>
<p>Addボタンを押して、表示するグラフのラインを追加します。</p>
<p>３つ追加して、Red、Yellow、Greenを選んでください。</p>
<p>別に違う色でもかまいません。</p>
<p>今回は、線で表示するのでTypeはLineのままにしてください。</p>
<p> </p>
<p>完了を押すと、スケルトンが作成されます。</p>
<p> </p>
<p>先頭の方に以下の行があると思います。</p>
<p>コメントを付けて、説明します。</p>
<p>//メインウィンドウに表示する。</p>
<p>#property indicator_chart_window</p>
<p>//グラフに利用する入れ物が３つ（最大８個）</p>
<p>#property indicator_buffers 3</p>
<p>//１本目は、太さ１の赤</p>
<p>#property indicator_color1 Red</p>
<p>//２本目は、太さ１の黄色</p>
<p>#property indicator_color2 Yellow</p>
<p>//３本目は、太さ１の緑</p>
<p>#property indicator_color3 Green</p>
<p>//入力するパラメータは、以下の3つ</p>
<p>extern int       Peried1;</p>
<p>extern int       Peried2;</p>
<p>extern int       Peried3;</p>
<p>//表示するグラフに対応する入れ物３つ</p>
<p>double ExtMapBuffer1[];</p>
<p>double ExtMapBuffer2[];</p>
<p>double ExtMapBuffer3[];</p>
<div>インジケータを使うときは、必要な数の上記の設定が必要になります。</div>
<div>ちょこっとだけ改造します。</div>
<div>
<div>extern int       Peried1=7;</div>
<div>extern int       Peried2=14;</div>
<div>extern int       Peried3=21;</div>
<div>とデフォルトの数字を設定しましょう。</div>
<div>これで、何も入力しなくても利用可能になります。</div>
<div>次は、初期設定です。</div>
<div>
<div>int init()</div>
<div>  {</div>
<div>//&#8212;- indicators</div>
<div>//１本目（０番から始まる）はライン</div>
<div>   <a href="http://googolyenfx.blog18.fc2.com/blog-entry-247.html" target="_blank">SetIndexStyle</a>(0,DRAW_LINE);</div>
<div>//１本目のバッファをExtMapBuffer1とする</div>
<div>   <a href="http://googolyenfx.blog18.fc2.com/blog-entry-242.html" target="_blank">SetIndexBuffer</a>(0,ExtMapBuffer1);</div>
<div>//２本目はライン</div>
<div>   <a href="http://googolyenfx.blog18.fc2.com/blog-entry-247.html" target="_blank">SetIndexStyle</a>(1,DRAW_LINE);</div>
<div>//２本目のバッファをExtMapBuffer2</div>
<div>   <a href="http://googolyenfx.blog18.fc2.com/blog-entry-242.html" target="_blank">SetIndexBuffer</a>(1,ExtMapBuffer2);</div>
<div>//３本目はライン</div>
<div>   <a href="http://googolyenfx.blog18.fc2.com/blog-entry-247.html" target="_blank">SetIndexStyle</a>(2,DRAW_LINE);</div>
<div>//３本目のバッファをExtMapBuffer3</div>
<div>   <a href="http://googolyenfx.blog18.fc2.com/blog-entry-242.html" target="_blank">SetIndexBuffer</a>(2,ExtMapBuffer3);</div>
<div>//&#8212;-</div>
<div>   return(0);</div>
<div>  }</div>
</div>
<div>最初の方で、色を設定したのでここでは、どのように描画するか。</div>
<div>線ごとにバッファをどれにするかをしていします。</div>
<div>これで、ExtMapBuffer1などに値を入れるだけで線を書いてくれるようになります。</div>
<div>ExtMapBuffer1などは、描画されている足の数に対応したバッファです。</div>
<div>ExtMapBuffer1[0]から始まり、最新が0になります。</div>
<p> </p>
<div>実際に、移動平均の値を登録していきましょう。</div>
<div>
<div>int start()</div>
<div>  {</div>
<div>//変化していない足の数を取得する</div>
<div>   int counted_bars=<a href="http://googolyenfx.blog18.fc2.com/blog-entry-77.html" target="_blank">IndicatorCounted</a>();</div>
<div>//値を入れる足番号の変数</div>
<div>   int i;</div>
<div>//表示されている足の数から、変化のない足の数を引いたもの（描画すべき足）の値をセット</div>
<div>   i = <a href="http://googolyenfx.blog18.fc2.com/blog-entry-229.html" target="_blank">Bars</a>-counted_bars-1;</div>
<div>//最新の足（0）をを描画するまで繰り返す。</div>
<div>//古いものから書いていきます。</div>
<div>   while(i&gt;=0)</div>
<div>   {</div>
<div>//１本目の単純移動平均の値を取得</div>
<div>       ExtMapBuffer1[i]=<a href="http://googolyenfx.blog18.fc2.com/blog-entry-188.html" target="_blank">iMA</a>(NULL,0,Peried1,0,MODE_SMA,PRICE_CLOSE,i);</div>
<div>//２本目の単純移動平均の値を取得</div>
<div>       ExtMapBuffer2[i]=<a href="http://googolyenfx.blog18.fc2.com/blog-entry-188.html" target="_blank">iMA</a>(NULL,0,Peried2,0,MODE_SMA,PRICE_CLOSE,i);</div>
<div>//３本目の単純移動平均の値を取得</div>
<div>       ExtMapBuffer3[i]=<a href="http://googolyenfx.blog18.fc2.com/blog-entry-188.html" target="_blank">iMA(</a>NULL,0,Peried3,0,MODE_SMA,PRICE_CLOSE,i);</div>
<div>//１つ新しい足番号にする（1引く）</div>
<div>       i&#8211;;</div>
<div>   }</div>
<div>   return(0);</div>
<div>  }</div>
<p> </p>
<p>さて、以上でプログラムは終了です。</p>
<p>コンパイル（F5）してみましょう。</p>
<p>メタトレーダーへ戻って、3EAを表示させたい通貨のウィンドウへドロップしてみてください。</p>
<p> </p>
<div id="attachment_98" class="wp-caption aligncenter" style="width: 310px"><a href="http://metatraderfx.net/wp-content/uploads/2009/05/3ea_param.jpg"><img class="size-medium wp-image-98" title="3ea_param" src="http://metatraderfx.net/wp-content/uploads/2009/05/3ea_param-300x147.jpg" alt="3EAパラメータ" width="300" height="147" /></a><p class="wp-caption-text">3EAパラメータ</p></div>
<div>ドラッグしたときに表示されるウィンドウの「パラメータ入力」タブを押すと上の画面のようになります。</div>
<div>初期設定した内容が表示されていることが分かると思います。</div>
<div>この設定は、後で変更可能です。</div>
<div>OKボタンを押して、描画させてみましょう。</div>
<div>
<div id="attachment_99" class="wp-caption aligncenter" style="width: 310px"><a href="http://metatraderfx.net/wp-content/uploads/2009/05/3ea_line.jpg"><img class="size-medium wp-image-99" title="3ea_line" src="http://metatraderfx.net/wp-content/uploads/2009/05/3ea_line-300x151.jpg" alt="3EA表示" width="300" height="151" /></a><p class="wp-caption-text">3EA表示</p></div>
<p>3種類の移動平均が表示されていることが分かります。</p>
<p>簡単でしょ！！</p>
<p> </p></div>
<p><a href="http://googolyenfx.blog18.fc2.com/blog-entry-188.html" target="_blank">iMa</a>が移動平均を取得する関数です。</p>
<p>パラメータで、いろいろな移動平均を取得できます。</p>
<p>今回は、単純移動平均（MODE_SMA）、終値（PRICE_CLOSE）を利用しました。</p>
<p>他にも、指数平均、平滑平均、加重平均なども選べます。</p>
<p>終値の他にも始値、高値、安値、平均をとったものなどを選ぶことができます。</p>
<p> </p>
<p>今回のプログラムは、以下からダウンロードできます。</p>
<p><a href="http://download-center.metatraderfx.net/indicator/3ea/" target="_blank">ここから、ダウンロード</a></p>
<p> </p>
<p>インジケータは、</p>
<p>インストールパス\MetaTrader\experts\indicators</p>
<p>に入れてください。</p>
<p> </p>
<p> </p></div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://metatraderfx.net/metatrader-beginner/%e3%82%a4%e3%83%b3%e3%82%b8%e3%82%b1%e3%83%bc%e3%82%bf%e3%83%bc%e3%82%92%e4%bd%9c%e3%81%a3%e3%81%a6%e3%81%bf%e3%82%8b%e3%80%82/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://metatraderfx.net/metatrader-beginner/%e3%82%a4%e3%83%b3%e3%82%b8%e3%82%b1%e3%83%bc%e3%82%bf%e3%83%bc%e3%82%92%e4%bd%9c%e3%81%a3%e3%81%a6%e3%81%bf%e3%82%8b%e3%80%82/" />
	</item>
		<item>
		<title>簡単なプログラムを作ってみる</title>
		<link>http://metatraderfx.net/metatrader-beginner/%e7%b0%a1%e5%8d%98%e3%81%aa%e3%83%97%e3%83%ad%e3%82%b0%e3%83%a9%e3%83%a0%e3%82%92%e4%bd%9c%e3%81%a3%e3%81%a6%e3%81%bf%e3%82%8b/</link>
		<comments>http://metatraderfx.net/metatrader-beginner/%e7%b0%a1%e5%8d%98%e3%81%aa%e3%83%97%e3%83%ad%e3%82%b0%e3%83%a9%e3%83%a0%e3%82%92%e4%bd%9c%e3%81%a3%e3%81%a6%e3%81%bf%e3%82%8b/#comments</comments>
		<pubDate>Fri, 01 May 2009 02:05:14 +0000</pubDate>
		<dc:creator>kei</dc:creator>
				<category><![CDATA[MQL4]]></category>
		<category><![CDATA[インジケータ]]></category>
		<category><![CDATA[メタトレーダー入門]]></category>
		<category><![CDATA[インジケーター]]></category>
		<category><![CDATA[サンプル]]></category>
		<category><![CDATA[プログラミング]]></category>
		<category><![CDATA[入門]]></category>

		<guid isPermaLink="false">http://metatraderfx.net/?p=50</guid>
		<description><![CDATA[とりあえず、プログラムを作ってみましょう。  今回は、現在のレートを表示するものを作ります。  インジケータ、EAどちらでも作れますが、設定の簡単なEAで作ります。     まず、MetaEditorを起動します。   
メタトレーダーの赤丸のボタンを押すとエディターが起動します。      
こんな感じの画面が開いたと思います。
次にメニューからFile-Newを選択します。
 
こんな感じの画面が開いたと思います。
「Custom Indicator」にチェックを入れて、次へを押します。
 
Nameにプログラムの名前、今回は「NowRate」
Authorは、作成者名
Linkは、公開先のURLなど
Author、Linkは省略可能です。
Parametersには、外部入力するパラメータを入れますが、今回は利用しないのでそのままにします。
次へを押してください。
 
Indicator in separete windowにチェックを入れると、サブウィンドウに表示されます。
今回は、メインウィンドウに表示するのでチェックを入れません。
Minimum、Maximumはサブウィンドウの最大・最小を固定するときに利用します。
Indexesは、グラフの線を追加し、色などを設定するときに使います。
今回は利用しません。
完了を押してください。
エディターにスケルトンが表示されたと思います。
int start()
  {
   int    counted_bars=IndicatorCounted();
//&#8212;-
 
//&#8212;-
   return(0);
  }
を

int start()
  {
   int    counted_bars=IndicatorCounted();
//&#8212;-
   Comment(&#8221;Ask=&#8221;,Ask,&#8221;  Bid=&#8221;,Bid);
//&#8212;-
   return(0);
  }
と書き換えてください。
「Conpile」ボタンを押すか、F5を押してコンパイルします。


下のErrorsにエラーが出ないで、終了していることを確認してください。
これで、現在のレートを表示するインジケータを作ることができました。
簡単です。
今回使った、関数の説明をします。
Comment()
これは、左上にコメントを表示します。
「,」でつなぐことで複数の変数をまとめて表示することが可能です。
今回は、&#8221;"でくくった文字と、Ask、Bidという変数の内容を表示させています。
Askは、表示させたウィンドウの現在の買値
Bidは、売値が入っている予約変数です。
予約変数は、いくつかありますが別の機会に紹介します。
では、インジケータを表示してみましょう。
メタトレーダーで、表示させたい通貨のグラフを表示させます。
通貨のグラフの表示のさせ方などは、１２１証券の日本語マニュアルを読んでくださいね。
次に、ナビゲーターウィンドウのCustom Indicatorsを展開すると今作成した「NowRate」が表示されているはずです。
これをドラッグして、表示させたい通貨ウィンドウへドロップしてください。


こんな画面が、表示されますがOKを押してください。


左上にAskとBidの値が表示されたと思います。
これで、成功です。
初めてのプログラムとしては、あっさりいけたと思います。
メタトレーダーのプログラムは、あまり複雑なことをやる必要がないんです。
簡単に作れます。
大変なのは、何をどうするかというノウハウ！
とりあえず、こんな感じで進めていきますね。
今回のソースとインジケータをアップしておきます。
必要な方は、ダウンロードしてください。
ここから、ダウンロード
ちなみに、マニュアルについて以前このサイトを紹介しました。
mt4 (MetaTrader4)使い倒シストレ
Eブックとして、まとまったものも以下で販売しています。

ＦＸ完全自動売買システム構築のための２５０の技 MetaTrader4逆引き大全集
気になる方は、チェックしてみてください。
 
インジケータは、
インストールパス\MetaTrader\experts\indicators
に入れてください。
]]></description>
			<content:encoded><![CDATA[<p>とりあえず、プログラムを作ってみましょう。  今回は、現在のレートを表示するものを作ります。  インジケータ、EAどちらでも作れますが、設定の簡単なEAで作ります。     まず、MetaEditorを起動します。   </p>
<div id="attachment_51" class="wp-caption aligncenter" style="width: 310px"><a href="http://metatraderfx.net/wp-content/uploads/2009/05/menu_editor.jpg"><img class="size-medium wp-image-51" title="menu_editor" src="http://metatraderfx.net/wp-content/uploads/2009/05/menu_editor-300x18.jpg" alt="MetaEditor起動" width="300" height="18" /></a><p class="wp-caption-text">MetaEditor起動</p></div>
<p>メタトレーダーの赤丸のボタンを押すとエディターが起動します。      </p>
<div id="attachment_55" class="wp-caption aligncenter" style="width: 310px"><a href="http://metatraderfx.net/wp-content/uploads/2009/05/metaeditor.jpg"><img class="size-medium wp-image-55" title="metaeditor" src="http://metatraderfx.net/wp-content/uploads/2009/05/metaeditor-300x221.jpg" alt="MetaEditor" width="300" height="221" /></a><p class="wp-caption-text">MetaEditor</p></div>
<p>こんな感じの画面が開いたと思います。</p>
<p>次にメニューからFile-Newを選択します。</p>
<p> </p>
<div id="attachment_58" class="wp-caption aligncenter" style="width: 310px"><a href="http://metatraderfx.net/wp-content/uploads/2009/05/wizard_i.jpg"><img class="size-medium wp-image-58" title="wizard_i" src="http://metatraderfx.net/wp-content/uploads/2009/05/wizard_i-300x181.jpg" alt="Expert Advisor Wizard　インジケータ作成" width="300" height="181" /></a><p class="wp-caption-text">Expert Advisor Wizard　インジケータ作成</p></div>
<p>こんな感じの画面が開いたと思います。</p>
<p>「Custom Indicator」にチェックを入れて、次へを押します。</p>
<p> </p>
<div id="attachment_60" class="wp-caption aligncenter" style="width: 310px"><a href="http://metatraderfx.net/wp-content/uploads/2009/05/wizard_i2.jpg"><img class="size-medium wp-image-60" title="wizard_i2" src="http://metatraderfx.net/wp-content/uploads/2009/05/wizard_i2-300x181.jpg" alt="インジケータ設定" width="300" height="181" /></a><p class="wp-caption-text">インジケータ設定</p></div>
<p>Nameにプログラムの名前、今回は「NowRate」</p>
<p>Authorは、作成者名</p>
<p>Linkは、公開先のURLなど</p>
<p>Author、Linkは省略可能です。</p>
<p>Parametersには、外部入力するパラメータを入れますが、今回は利用しないのでそのままにします。</p>
<p>次へを押してください。</p>
<p> </p>
<div id="attachment_61" class="wp-caption aligncenter" style="width: 310px"><a href="http://metatraderfx.net/wp-content/uploads/2009/05/wizard_i3.jpg"><img class="size-medium wp-image-61" title="wizard_i3" src="http://metatraderfx.net/wp-content/uploads/2009/05/wizard_i3-300x181.jpg" alt="インジケータ設定" width="300" height="181" /></a><p class="wp-caption-text">インジケータ設定</p></div>
<p>Indicator in separete windowにチェックを入れると、サブウィンドウに表示されます。</p>
<p>今回は、メインウィンドウに表示するのでチェックを入れません。</p>
<p>Minimum、Maximumはサブウィンドウの最大・最小を固定するときに利用します。</p>
<p>Indexesは、グラフの線を追加し、色などを設定するときに使います。</p>
<p>今回は利用しません。</p>
<p>完了を押してください。</p>
<p>エディターにスケルトンが表示されたと思います。</p>
<p>int start()</p>
<p>  {</p>
<p>   int    counted_bars=IndicatorCounted();</p>
<p>//&#8212;-</p>
<p> </p>
<p>//&#8212;-</p>
<p>   return(0);</p>
<p>  }</p>
<div>を</div>
<div>
<div>int start()</div>
<div>  {</div>
<div>   int    counted_bars=IndicatorCounted();</div>
<div>//&#8212;-</div>
<div>   <a href="http://googolyenfx.blog18.fc2.com/blog-entry-128.html" target="_blank">Comment</a>(&#8221;Ask=&#8221;,<a href="http://googolyenfx.blog18.fc2.com/blog-entry-228.html" target="_blank">Ask</a>,&#8221;  Bid=&#8221;,<a href="http://googolyenfx.blog18.fc2.com/blog-entry-230.html" target="_blank">Bid</a>);</div>
<div>//&#8212;-</div>
<div>   return(0);</div>
<div>  }</div>
<div>と書き換えてください。</div>
<div>「Conpile」ボタンを押すか、F5を押してコンパイルします。</div>
<div>
<div id="attachment_65" class="wp-caption aligncenter" style="width: 310px"><a href="http://metatraderfx.net/wp-content/uploads/2009/05/metaeditor_c.jpg"><img class="size-medium wp-image-65" title="metaeditor_c" src="http://metatraderfx.net/wp-content/uploads/2009/05/metaeditor_c-300x221.jpg" alt="Compile" width="300" height="221" /></a><p class="wp-caption-text">Compile</p></div>
</div>
<div>下のErrorsにエラーが出ないで、終了していることを確認してください。</div>
<div>これで、現在のレートを表示するインジケータを作ることができました。</div>
<div>簡単です。</div>
<div>今回使った、関数の説明をします。</div>
<div><a href="http://googolyenfx.blog18.fc2.com/blog-entry-128.html" target="_blank">Comment()</a></div>
<div>これは、左上にコメントを表示します。</div>
<div>「,」でつなぐことで複数の変数をまとめて表示することが可能です。</div>
<div>今回は、&#8221;"でくくった文字と、Ask、Bidという変数の内容を表示させています。</div>
<div><a href="http://googolyenfx.blog18.fc2.com/blog-entry-228.html" target="_blank">Ask</a>は、表示させたウィンドウの現在の買値</div>
<div><a href="http://googolyenfx.blog18.fc2.com/blog-entry-230.html" target="_blank">Bid</a>は、売値が入っている予約変数です。</div>
<div>予約変数は、いくつかありますが別の機会に紹介します。</div>
<div>では、インジケータを表示してみましょう。</div>
<div>メタトレーダーで、表示させたい通貨のグラフを表示させます。</div>
<div>通貨のグラフの表示のさせ方などは、<a href="http://px.a8.net/svt/ejp?a8mat=1HPN4D+4EYTM2+1K86+62U37" target="_blank">１２１証券</a>の日本語マニュアルを読んでくださいね。</div>
<div>次に、ナビゲーターウィンドウのCustom Indicatorsを展開すると今作成した「NowRate」が表示されているはずです。</div>
<div>これをドラッグして、表示させたい通貨ウィンドウへドロップしてください。</div>
<div>
<div id="attachment_66" class="wp-caption aligncenter" style="width: 310px"><a href="http://metatraderfx.net/wp-content/uploads/2009/05/coustomindicatornowrate.jpg"><img class="size-medium wp-image-66" title="coustomindicatornowrate" src="http://metatraderfx.net/wp-content/uploads/2009/05/coustomindicatornowrate-300x147.jpg" alt="カスタムインジケータパラメータ設定" width="300" height="147" /></a><p class="wp-caption-text">カスタムインジケータパラメータ設定</p></div>
</div>
<div>こんな画面が、表示されますがOKを押してください。</div>
<div>
<div id="attachment_67" class="wp-caption aligncenter" style="width: 289px"><a href="http://metatraderfx.net/wp-content/uploads/2009/05/nowrate.jpg"><img class="size-full wp-image-67" title="nowrate" src="http://metatraderfx.net/wp-content/uploads/2009/05/nowrate.jpg" alt="NowRate" width="279" height="205" /></a><p class="wp-caption-text">NowRate</p></div>
</div>
<div>左上にAskとBidの値が表示されたと思います。</div>
<div>これで、成功です。</div>
<div>初めてのプログラムとしては、あっさりいけたと思います。</div>
<div>メタトレーダーのプログラムは、あまり複雑なことをやる必要がないんです。</div>
<div>簡単に作れます。</div>
<div>大変なのは、何をどうするかというノウハウ！</div>
<div>とりあえず、こんな感じで進めていきますね。</div>
<div>今回のソースとインジケータをアップしておきます。</div>
<div>必要な方は、ダウンロードしてください。</div>
<div><a href="http://download-center.metatraderfx.net/indicator/nowrate/" target="_blank">ここから、ダウンロード</a></div>
<div>ちなみに、マニュアルについて以前このサイトを紹介しました。</div>
<div><a href="http://googolyenfx.blog18.fc2.com/" target="_blank">mt4 (MetaTrader4)使い倒シストレ</a></div>
<div>Eブックとして、まとまったものも以下で販売しています。</div>
</div>
<p><a href="http://www.infocart.jp/t/24105/eba/" target="_blank">ＦＸ完全自動売買システム構築のための２５０の技 MetaTrader4逆引き大全集</a></p>
<p>気になる方は、チェックしてみてください。</p>
<p> </p>
<p>インジケータは、</p>
<p>インストールパス\MetaTrader\experts\indicators</p>
<p>に入れてください。</p>
]]></content:encoded>
			<wfw:commentRss>http://metatraderfx.net/metatrader-beginner/%e7%b0%a1%e5%8d%98%e3%81%aa%e3%83%97%e3%83%ad%e3%82%b0%e3%83%a9%e3%83%a0%e3%82%92%e4%bd%9c%e3%81%a3%e3%81%a6%e3%81%bf%e3%82%8b/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://metatraderfx.net/metatrader-beginner/%e7%b0%a1%e5%8d%98%e3%81%aa%e3%83%97%e3%83%ad%e3%82%b0%e3%83%a9%e3%83%a0%e3%82%92%e4%bd%9c%e3%81%a3%e3%81%a6%e3%81%bf%e3%82%8b/" />
	</item>
	</channel>
</rss>

