<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
    <title>カワロボ　為替ロボット研究所</title>
    <link rel="alternate" type="text/html" href="http://kawarobo.com/" />
    <link rel="self" type="application/atom+xml" href="http://kawarobo.com/atom.xml" />
    <id>tag:kawarobo.com,2009-06-28://1</id>
    <updated>2009-07-13T21:37:47Z</updated>
    <subtitle>為替ロボット研究所</subtitle>
    <generator uri="http://www.sixapart.com/movabletype/">Movable Type Pro 4.261</generator>

<entry>
    <title>FX先生をプログラミング</title>
    <link rel="alternate" type="text/html" href="http://kawarobo.com/archives/2009/07/fx-2.php" />
    <id>tag:kawarobo.com,2009://1.564</id>

    <published>2009-07-13T21:16:57Z</published>
    <updated>2009-07-13T21:37:47Z</updated>

    <summary>つい先日、いただいた「FX先生」という本を読みました。いままでFX入門的な本はい...</summary>
    <author>
        <name>kawarobo</name>
        
    </author>
    
        <category term="MetaTrader4入門" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="fx先生" label="FX先生" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://kawarobo.com/">
        <![CDATA[<p>つい先日、いただいた「FX先生」という本を読みました。<br />いままでFX入門的な本はいくつか目を通したことはありましたが、取引ソフトの操作方法や用語の解説程度にとどまるものばかりで非常に物足りないものばかりでした。<br /><br />しかしこの本はFXの投資塾をやっておられる方の著書ということで内容が基本的なことではありながら実践的で、この本に書かれている取引ルールをそのままMetaTraderに移植すれば結構いい成績になるんじゃないかと思いました。<br /><br />そこで、この「FX先生」の取引ルールをプログラミングして行って、その過程をここで報告していこうと思います。<br /><br />*まとまった時間がなかなか取れないので、途切れ途切れになるかもしれませんがご了承ください。m(_ _)m<br /><br />PR:<a href="http://ck.jp.ap.valuecommerce.com/servlet/referral?sid=2330322&amp;pid=878231219" target="_blank" ><img src="http://ad.jp.ap.valuecommerce.com/servlet/gifbanner?sid=2330322&amp;pid=878231219" height="1" width="1" border="0">【ひまわりFX】口座開設で「FX先生」もらえます！</a><br /> </p>
]]>
        

    </content>
</entry>

<entry>
    <title>FXの口座をいっぱい持つと無敵になる？？その２</title>
    <link rel="alternate" type="text/html" href="http://kawarobo.com/archives/2009/05/fx-1.php" />
    <id>tag:kawarobo.com,2009://1.562</id>

    <published>2009-05-23T20:36:56Z</published>
    <updated>2009-06-29T09:06:14Z</updated>

    <summary>先日の話題と関連して、もう一つ興味深い話がありました。これも同じ人から聞いた話な...</summary>
    <author>
        <name>kawarobo</name>
        
    </author>
    
        <category term="怪情報？" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://kawarobo.com/">
        <![CDATA[先日の話題と関連して、もう一つ興味深い話がありました。<br /><br />これも同じ人から聞いた話なのですが、あの邪道かつせこい手法よりはいくぶんまともな感じ（失礼）の手法です。<br />といっても怪しいのは怪しいですが(^^;<br /><br />デイトレやスキャルピングで勝つにはどうすればいいでしょうか？<br />誰もが一度は考えるだろうと思うんですが、<br />「1分足やティックチャートをじっと見て、レンジなら上で売り、下で買い。レンジブレイクしてトレンドができたらそっちについていく。」<br /><br />言葉で言うのは簡単ですが、実際にやろうとするとこれほど難しいことはないですね。<br /><br />例えばこれはレンジかな？というような状況がしばらく続いていたとします。<br />上下の幅は精々５，６pips程度しかなくレンジの上下で取るのは難しそうです。<br />ところが次の瞬間、下に2pipsほどレンジを抜けました。<br />さあ、これはレンジブレイクなのか、だましなのか・・・<br /><br />なにかきっかけがあって20～30pip程度するすると動き出すこともあれば、単にプライスがぶれただけですぐレンジに戻る場合もあります。<br />チャートをじっと見ているだけでこれを瞬時に判断できるでしょうか？<br /><br /><br />そこを見極める、ある方法があった(?)のです<br /><br /><br />勘のいい方はこの記事のタイトルと先日の話の流れで気づかれたかと思いますが、<br /><br />複数のFX口座を使う方法です。<br /><br /><br />それはつまり、いろんなFX会社のプライスを比較するのです。<br /><br />例えば、A、B、C、D　4つのFX会社の取引画面を開いておいてプライスを監視しておきます。<br />先ほどの狭いレンジのような状況になったときに、<br />A社のプライスが下に2pips抜けました。B,C,D社は動きません。<br />これは単にA社のプライスがブレただけなんだなと判断してだましを回避です。<br /><br />次にA社が抜けたあとB社、C社と抜けて来ました。<br />お！これは動き出したな、と判断して一番出遅れているD社で売り注文を出し<br />うまくトレンドに乗って勝つことができました。<br /><br />と、こういう感じです。<br /><br />なるほどね～、とこれを聞いたときには思いましたが、<br />2社を比較して見るだけでも大変なのに、４社、５社も同時に見るなんて・・しかも一番出遅れてるところを見極めて注文出すなんて<br />とても人間わざではありません。<br /><br />人間には不可能。　・・ということで、やっぱり期待に漏れずその人はやってくれました。<br />人間に無理なら機械にやらせよう！　監視＆出遅れ発見ツールを作ったのです！<br /><br />おお～～　さすがですね。<br />気合が違います。<br /><br /><br />さて気になる結果ですが、<br /><br /><br />本人いわく、『調整中』とのことで明言はしてくれませんでしたが、<br />実際にはそう単純な話ではなく、A,B,C社でいっせいにブレただけだったり、トレンド発生と同時に一気に値が飛んで変なところをつかまされたり、<br />なかなか大変なようです。<br /><br /><br />世の中甘くはないですね。<br /><br /><br />ただ先日のあの方法よりは危険が少なそうです。なんとなくまともな感じもしますし(^^;)、<br />聞いたことの無いやり方なので　工夫してうまくいくのかどうなのか興味があります。<br /><br />また追いかけて進展を聞きましたら、こちらで報告したいと思います。<br />そしてあわよくばツールの公開も（？）<br /><br /><br />そして、これを読んで興味を持たれた方はとりあえず手動からでも試して見てはいかがでしょうか？]]>
        
    </content>
</entry>

<entry>
    <title>FXの口座をいっぱい持つと無敵になる？？</title>
    <link rel="alternate" type="text/html" href="http://kawarobo.com/archives/2009/05/fx.php" />
    <id>tag:kawarobo.com,2009://1.561</id>

    <published>2009-05-19T03:41:06Z</published>
    <updated>2009-06-29T09:07:10Z</updated>

    <summary>ちょっと怪しいですが、興味深い話を聞きましたのでご紹介します。リスク分散のために...</summary>
    <author>
        <name>kawarobo</name>
        
    </author>
    
        <category term="怪情報？" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="裁定取引　fx　" label="裁定取引　FX　" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://kawarobo.com/">
        <![CDATA[ちょっと怪しいですが、興味深い話を聞きましたのでご紹介します。<br /><br />リスク分散のためにFXの口座をいくつかに分けて運用している方は多いと思いますが、リスク分散ではなく別の目的で複数の口座を持つ人がいるそうです。<br /><br /><br />ご存知のとおり、FXは株と違って証券取引場を通さない相対取引です。<br />同じドル円でも、A会社とB会社でプライスが違っているわけです。<br /><br />そこでこんなことを考えた人がいます。<br /><br />A社とB社のプライスをずっと比較し続けていたら、どこかのタイミングで2社の価格の差がスプレｯド以上にひらくことがあるのでは？と。<br /><br />つまり、A社のドル円が95.00-95.03 に対し、B社 95.04-95.06となるような瞬間があるのか？ということです。<br /><br />もしそんなことがあったとすれば、A社で95.03でドル円買い、B社で95.04売りとすればその時点で1pipの儲かることになります。<br /><br />ただこのままではどちらもポジションがひらきっぱなしなので、<br />今度はA社の売り値とB社の買値が同じになったタイミング（例　A社95.10-95.13、B社95.08-95.10）　でA社でドル円売りクローズ、B社でドル円買いクローズすれば無事取引終了です。<br />こうすれば最初に買ったときより上がってるか下がってるかに関係なく、確実に1pipの儲けになります。<br /><br /><br />これを裁定取引と言うのかどうかはわかりませんが、<br />このとおり実現できれば、取引を始めた瞬間に利益が確定するわけなので、絶対に負けないということになるのです・・<br /><br />せいぜい数pipsしかとれないので　かなりせこいですが・・・<br />ちり積もで、例えば10万通貨でやれば1pipでも千円ですから、平均2pipで1日10往復できれば2万円、100万通貨でやれば1日20万円にもなります！！<br />さすがにこれは現実的とは思えませんが。<br /><br /><br /><br />そして実際にそんなことが起こりうるのか、ということですが<br />実はこれが本当にできてしまうらしいのです。。<br /><br />私も実際、FXCMと、ある会社とで比較をしてみて、そんな瞬間を目撃しました。<br /><br /><br />ただし、この状況になったとしても0.数秒ぐらいしかもたないので、<br />「あれ？これはもしかして？」と判断しあぐねてる間に崩れてしまいます。<br />もし瞬時に察知できたとしても、あっちをクリック、こっちをクリックしていては絶対に間に合いません。<br /><br /><br />とても人間わざでは無理なんですね・・<br /><br />しかしこれを見つけた人はあきらめませんでした。<br />人間に無理なら機械にやらせよう！ということで、2社の値段を監視して<br />その瞬間が訪れたときに売買操作を自動でやってくれるツールを開発したのです！<br /><br />根性ですね～<br /><br />しかしすごいですね、完全自動で理論的には絶対に負けないわけですから<br />それこそ寝ているだけで勝手に儲かる！・・・<br /><br /><br /><br />と、言いたいところですが、やはり世の中そんなに甘くはありませんでした。<br /><br />実際に動かしてみると、スリッページやオーダーが通らないなどの罠がいくつもあって、思ったとおりのプライスで約定してくれないそうです。<br />数pipsしかとれないからとレバレッジを思いっきり効かせていたのに、A社のほうしか約定せずB社スルーとかなると、かなり痛いことになります。<br /><br />それでもその人はあきらめず開発を続けていて、真偽の程はわかりませんがようやくそれらしい感じになってきたと言っています。<br />ポイントはとにかくいろんな会社の口座を開いて、それぞれの会社間のプライスの開き具合をチェックして、最良の「通貨ペア」ならぬ「会社ペア」を見つけることだそうです。<br />そしてスリッページの有無や表示のプライスで確実に執行できるかどうかの確認も。<br /><br />ただしデモトレードではだめです。プライスが微妙に遅れていたり、実際には約定できない値が出ている場合があるそうです。これは実際にトレードしてみて確認しないと分からないとのこと。<br /><br />これはコストがばかにならなそうです・・・<br /><br /><br />以上、私が聞いたのはここまでです。<br />邪道、かつ非常にせこい手法でしたので(^^; それ以上深追いしませんでした。<br /><br /><br />もし思いのほかたくさんの方が興味をもたれるようでしたら、さらに詳細を聞いてみようと思います。あわよくばツールの公開もできれば・・　<br /><br />ただし、上述のとおりうまくいかないリスクが高いですので、試される方はくれぐれも自己責任でお願いします。m(__)m<br />]]>
        
    </content>
</entry>

<entry>
    <title>MT5の登場は今秋？</title>
    <link rel="alternate" type="text/html" href="http://kawarobo.com/archives/2009/04/mt5.php" />
    <id>tag:kawarobo.com,2009://1.560</id>

    <published>2009-04-15T14:54:43Z</published>
    <updated>2009-06-29T09:00:51Z</updated>

    <summary> MetaTrader5が出るという話が結構前から出ていたようです。 去年の年末...</summary>
    <author>
        <name>kawarobo</name>
        
    </author>
    
        <category term="MT5(MetaTrader5)" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="mt5metatrader5" label="MT5 MetaTrader5" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://kawarobo.com/">
        <![CDATA[<p> <strong>MetaTrader5</strong>が出るという話が結構前から出ていたようです。<br />
去年の年末に出るとか、3月末とか噂がありましたが、今年の秋ごろ（Automated Trading Championship 2009に間に合うように）出るのではないかとのことです。<a href="http://forum.mql4.com/11730/page11" target="_blank">http://forum.mql4.com/</a></p>

<p>自動売買の新しい方法を試すため、先日久しぶりにMQL4を触ってみたんですが、MT4で使えるDLLの作成方法などの情報が乏しく、仕様的にもかなり古い感じでなかなか厳しいものがありました。（この新しい方法については近日中にアップします）</p>

<p>早く<strong>MQL5</strong>を使ってみたいなあと期待しています。</p>]]>
        
    </content>
</entry>

<entry>
    <title>このサイトの内容について</title>
    <link rel="alternate" type="text/html" href="http://kawarobo.com/archives/2007/08/post-68.php" />
    <id>tag:kawarobo.com,2007://1.559</id>

    <published>2007-08-22T21:09:42Z</published>
    <updated>2009-06-29T09:00:51Z</updated>

    <summary>長らく放置が続いていてすみません・・　フォーラムのほうもなぜか表示できない状態に...</summary>
    <author>
        <name>kawarobo</name>
        
    </author>
    
        <category term="1.お知らせ" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://kawarobo.com/">
        <![CDATA[<p>長らく放置が続いていてすみません・・　<strike>フォーラムのほうもなぜか表示できない状態になっています・・</strike>動くようになりました<a href="http://forum.kawarobo.com/" target="_blank">http://forum.kawarobo.com/</a></p>

<p>初めてお越しになった方へ<br />
このサイトの内容は２年ほどまえの状態のままですので、現在では使えない情報が多々あると思います。ご覧になる際はどうぞ話半分、１０分の１くらいでお願いします。。</p>

<p>またHyperOrderは開発が終了してしまったようですね・・<br />
自動売買をされるのであれば<br />
取引ソフトにMetaTraderを採用しているブローカーを利用するのが手っ取り早いと思います。<br />
InterbankFX <a href="http://www.interbankfx.com/">http://www.interbankfx.com/</a><br />
FX Direct Dealer <a href="http://www.fxdd.com/">http://www.fxdd.com/</a><br />
NorthFinance <a href="http://www.northfinance.com/">http://www.northfinance.com/</a><br />
ODL Security <a href="http://www.odlsecurities.com/">http://www.odlsecurities.com/</a><br />
alpari <a href="http://www.alpari.co.uk/">http://www.alpari.co.uk/</a><br />
など、海外ではいろいろあるようです。（信用リスクなど一切責任はもてませんが。。）<br />
私自身はInterbankFXに口座を開いていますが、国内でどこか採用しているところはないでしょうかねぇ・・</p>

<p>あと、こんなものをみつけました！<br />
<a href="http://championship.mql4.com/2007/en">http://championship.mql4.com/2007/en</a><br />
２００７年１０月開催で、賞金総額８万ドルです！<br />
腕に覚えのある方、いかがでしょうか?!</p>]]>
        
    </content>
</entry>

<entry>
    <title>プログラムの作成　練習２－４　繰り返しフォー</title>
    <link rel="alternate" type="text/html" href="http://kawarobo.com/archives/2005/11/post-64.php" />
    <id>tag:kawarobo.com,2005://1.558</id>

    <published>2005-11-26T07:00:21Z</published>
    <updated>2009-06-29T09:04:33Z</updated>

    <summary>次は繰り返し処理を行なう方法です。 &quot;Hello&quot;と１０回表示させたい時、 Pr...</summary>
    <author>
        <name>kawarobo</name>
        
    </author>
    
        <category term="MetaEditor入門" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="プログラム" label="プログラム" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://kawarobo.com/">
        <![CDATA[<p>次は繰り返し処理を行なう方法です。</p>

<p>"Hello"と１０回表示させたい時、<br />
Print（"Hello"）;　を10回書いてもいいですが、このようにfor()を使うと楽にできます。</p>

<p>int i;<br />
for(i=0; i<10; i++){ <br />
 Print("Hello"); // ＊<br />
} </p>

<p>＊の行が10回繰り返し実行されます。</p>

<p>for(i=0; i<10; i++){ 　～　}　を翻訳（？）すると、<br />
「①始めに　i=0をセットします。そしてi<10なら、｛｝の処理を行いなさい。<br />
　②｛｝の処理が終わったら、i++（iを１増やす）を行ない、<br />
　③それでも　i<10なら｛｝の処理を行いなさい。<br />
　（以下、②③のくりかえし）<br />
」<br />
こんな感じです。</p>

<p>最初は、i=0なので　i<10 ( 0<10 )となり、＊のPrint文が実行されます。<br />
それが終わったところで、i++ で iが1になりますが、それでも i<10 ( 1<10 )なので、＊のPrint文が実行されます。<br />
そして、i=2、3、4・・・と繰り返していって、iが9の時、＊のPrint文を実行したあと最初に戻り、<br />
i++をすると、iは10になります。<br />
i=10だと　i<10　の条件を満たさなくなるので、forの処理は終了です。</p>

<p>つまり、i=0からi=9まで合計10回、処理が行なわれるわけです。</p>

<p>この実行結果を見ると分かりやすいと思います。<br />
int i;<br />
Print("forの前");<br />
for(i=0;i<10;i++){<br />
 Print("Hello i="+i);<br />
}<br />
Print("forの後");</p>

<p>結果は、<br />
「forの前」<br />
「Hello i=0」<br />
「Hello i=1」<br />
　・・・<br />
「Hello i=9」<br />
「forの後」<br />
となります。</p>

<p><br />
for( ) は入れ子式にすることもできます。</p>

<p>int I,J;<br />
for(I=0; I<10; I++){<br />
　for(J=0; J<10; J++){<br />
　　Print("I="+I+ ",J="+J);<br />
　}<br />
}<br />
Print("end");</p>

<p>結果は、<br />
I=0,J=0<br />
I=0,J=1<br />
　・・・<br />
I=0,J=8<br />
I=0,J=9<br />
I=1,J=0<br />
I=1,J=1<br />
　・・・<br />
I=1,J=9<br />
I=2,J=0<br />
　・・・<br />
　・・・<br />
I=9,J=9<br />
end</p>

<p>応用として、<br />
このようにするとティック更新の度に、直近10足分の始値が出力されます。<br />
int start(){<br />
 int i;<br />
 for(i=0; i<10; i++){<br />
  Print("Open["+i+"]="+ Open[i]);<br />
 }<br />
}<br />
結果は<br />
Open[0]=114.40<br />
Open[1]=114.23<br />
Open[2]=114.30<br />
...<br />
Open[9]=114.89</p>

<p>Open[ ]はMT４に備わっている機能で、指定した本数分 前の足の始値を得るものです。<br />
Open[0]は現在の足、Open[1]なら一つ前の足の始値になります。<br />
上の例だと新しいものから順に出力されますが、古い順に出力したい場合には、</p>

<p>Print("Open["+<strong>i</strong>+"]="+ Open[<strong>i</strong>]);<br />
の<strong>i</strong>を下のように<strong>(9-i)</strong>に変えます。<br />
Print("Open["+(9-i)+"]="+ Open[9-i]);</p>

<p>もしくは、</p>

<p>int start(){<br />
 int i;<br />
 for(<strong>i=9; i>-1; i--</strong>){<br />
  Print("Open["+i+"]="+ Open[i]);<br />
 }<br />
}<br />
のように、繰り返しのたびにiを減らしていくように、for文を変更するといいでしょう。<br />
(　i=9,8,7,,,1,0　と変化していきます)</p>

<p>結果<br />
Open[9]=114.89<br />
Open[8]=114.80<br />
Open[7]=114.20<br />
...<br />
Open[0]=114.40</p>]]>
        
    </content>
</entry>

<entry>
    <title>プログラムの作成　練習２－３　条件分岐</title>
    <link rel="alternate" type="text/html" href="http://kawarobo.com/archives/2005/11/post-63.php" />
    <id>tag:kawarobo.com,2005://1.557</id>

    <published>2005-11-19T15:40:57Z</published>
    <updated>2009-06-29T09:00:47Z</updated>

    <summary>プログラミングに欠かせない処理、条件分岐を練習してみましょう。 条件分岐は、 「...</summary>
    <author>
        <name>kawarobo</name>
        
    </author>
    
        <category term="MetaEditor入門" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://kawarobo.com/">
        <![CDATA[<p>プログラミングに欠かせない処理、条件分岐を練習してみましょう。</p>

<p>条件分岐は、<br />
「こういう状態なら○○の処理を、そうでないならｘｘの処理を実行せよ」<br />
というふうに、条件に応じて処理内容を変えるものです。</p>

<p>mq4ではif()を使います。</p>

<p>int start(){<br />
　int i;<br />
　i=1;<br />
　<strong>if(i==1){</strong><br />
　　Print("OK");①<br />
　<strong>} else{</strong><br />
　　Print("NG");②<br />
　<strong>}</strong><br />
}</p>

<p>if()は「もし（）内の条件が真ならば、そのあとの｛｝内の処理を行い、偽ならば、else以下の処理を行え」というものです。<br />
つまりこの例では, i が1なら①の処理を行い、iが1以外なら②の処理を行ないます。iには1を代入していますので、①が実行されて「OK」が出力されます。</p>

<p>i==1と「＝」が二つ並んでいることに注意してください。＝を一個だけにしているとエラーが出ます。</p>

<p>==は比較演算子と呼ばれるもので、両辺の値を比較するための記号です。</p>

<p>・A == B　AとBが等しければtrue(真）<br />
・A != B　AとBが等しくないならtrue<br />
・A &gt B　Aのほうが大きいならtrue<br />
・A &gt= B　AがB以上ならtrue(A=Bの場合を含む）<br />
・A &lt B<br />
・A &lt= B</p>

<p>A==B　かつ　A &gt C　というような条件を調べるには、<br />
&&をつかって、　<br />
A==B && A &gt C<br />
というふうに書きます。<br />
この場合、A=2、B=2、C=1ならば真、A=2、B=2、C=3ならば偽になります。</p>

<p>「または」は|| （Shift+￥キーで出る「|」を2つ）です。<br />
A==B || A &lt C<br />
AとBが等しい、または、AよりCが大　なら真<br />
　A=2,B=2,C=3は真、A=2,B=3,C=1も真、A=2,B=2,C=1も真です。<br />
　A=2,B=1,C=3は偽になります。</p>

<p>（）でくくればさらに複雑な条件を調べることが出来ます。<br />
(A==B && A &gt C) || A &lt D<br />
AがBと等しくてCより大きい、または、AがDより小さいなら真<br />
A=2、B=2、C=1、D=3ならば真、A=2、B=2、C=3、D=１の場合も真、A=2、B=2、C=3、D=3は偽になります。</p>

<p><br />
真や偽のときの処理が一行で終わる場合には｛｝を省略することが出来ます。<br />
if( i==1) Print("OK");<br />
else Print("NG");</p>

<p>入れ子式に使うこともできます。<br />
if( i==1 ){<br />
　if( j==2 ){<br />
　　Print("OK");<br />
　} else {<br />
　　Print("NG j");<br />
　}<br />
} else Print("NG i");</p>

<p>偽の場合に何もしないのなら、elseは省略できます。</p>

<p>int start(){<br />
int i,j;<br />
i=1;<br />
j=2;<br />
if( i==1) {<br />
　Print("i ==1");<br />
}</p>

<p>if( j==1) Print("j=1");<br />
else Print("j !=1");</p>

<p>return(0);<br />
}<br />
//結果、「i==1」と 「j !=1」が表示される</p>]]>
        
    </content>
</entry>

<entry>
    <title>プログラムの作成　練習２－２　演算</title>
    <link rel="alternate" type="text/html" href="http://kawarobo.com/archives/2005/11/post-62.php" />
    <id>tag:kawarobo.com,2005://1.555</id>

    <published>2005-11-19T04:36:49Z</published>
    <updated>2009-06-29T09:00:47Z</updated>

    <summary>前回のコードに少し手を加えてこのようにしてみました。 結果はどうなるでしょうか。...</summary>
    <author>
        <name>kawarobo</name>
        
    </author>
    
        <category term="MetaEditor入門" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://kawarobo.com/">
        <![CDATA[<p>前回のコードに少し手を加えてこのようにしてみました。<br />
結果はどうなるでしょうか。</p>

<p>int i;<br />
int start(){<br />
 string mojiretsu; //文字列変数mojiretsuを宣言<br />
 i++;<br />
 <strong>mojiretsu ="i="+i ;</strong><br />
 Print(mojiretsu);<br />
 return(0);<br />
}<br />
結果は「i=1」、「i=2」、、、となります。<br />
太字の部分で、変数mojiretsuには文字列「i=」にiの値をくっつけたものが代入されているからです。</p>

<p>＊ここではわざわざ変数を使っていますが、print()内に直接入れてしまっても構いません。<br />
Print(mojiretsu); → Print("i="+i);</p>

<p>数値同士の場合は、その計算結果が表示されます。<br />
int i,j;<br />
i=1;<br />
j=2;<br />
Print(i+j);//結果「３」が表示される</p>

<p>つまり、「文字列+文字列」や「文字列+数値」は文字列になり、「数値+数値」は数値になります。</p>

<p>ではこうするとどうなるでしょう？<br />
int i,j;<br />
i=1;<br />
j=2;<br />
Print("i+j="+i+j); </p>

<p>結果は「i+j=12」になります。<br />
これはまず文字列"i+j="+数値iが行なわれて文字列"i+j=1"になり、続いて文字列"i+j=1"+数値jが行なわれるからです。<br />
i+jを数値として計算したい場合は、（）でくくって<br />
Print("i+j="+(i+j) );<br />
とします。</p>

<p>プログラム内では算数の演算と同じ優先順位があります。<br />
( )内が最優先、次が*(掛ける)や/（割る）、そのあとで＋や－、という順番です。<br />
例えば、1*2+3は5で 、1+2*3=7、(1+2)*3=9　となります。</p>

<p>ということは<br />
Print("i*j="+ i * j );<br />
とすると、i*jの部分が先に計算されますので、結果は「i*j=2」になります。</p>]]>
        
    </content>
</entry>

<entry>
    <title>プログラムの作成　練習２－１</title>
    <link rel="alternate" type="text/html" href="http://kawarobo.com/archives/2005/11/post-61.php" />
    <id>tag:kawarobo.com,2005://1.556</id>

    <published>2005-11-17T02:55:15Z</published>
    <updated>2009-06-29T09:00:47Z</updated>

    <summary>変数についてさらに練習してみましょう。 その前に気をつけておくことがあります。 ...</summary>
    <author>
        <name>kawarobo</name>
        
    </author>
    
        <category term="MetaEditor入門" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://kawarobo.com/">
        <![CDATA[<p>変数についてさらに練習してみましょう。</p>

<p>その前に気をつけておくことがあります。<br />
変数名はできるだけ自分で分かりやすいように名づければよいのですが、<br />
予約語とかぶらないように気をつけてください。<br />
エディタで入力した時に色が変わって表示されるものは、システム上ですでに予約されている単語なので、新たな変数名としては使えません。<br />
一部の小文字を大文字に変えるなどして無理やり使い分けることもできますが、おすすめはしません。</p>

<p>さて、変数をつかった次のプログラムを見てください。<br />
int start()<br />
{<br />
 int i; //　変数i を整数として宣言<br />
 print(i); //　iの中身（＝０）を表示<br />
 return(0);//　終了<br />
}<br />
前回までのHello.mq4とほとんど同じですね。<br />
これはティックが更新されるたびに「０」と表示されます。<br />
変数iは宣言をしただけで、何も代入していません。<br />
何も値を入れていない変数の中身は0になります。<br />
（stringの場合は空っぽの状態（＝NULL）になります）</p>

<p>これに少し手を加えます。<br />
int start()<br />
{<br />
 int i; //　変数i を整数として宣言<br />
 i=i+1; <br />
 print(i); //　iの中身を表示<br />
 return(0);//　終了<br />
}<br />
i=i+1は、「i+1の値を　iに代入する」という意味です。「iの値を１増やす」と考えるほうが自然でしょうか。<br />
ここではiは0+1で1になります。<br />
このように変数の値を１増やすという処理はよく使われるので、特別に「変数++」 というふうに省略して書くことができます。i=i+1ならi++というようにです。<br />
i--というのもあって、これはi=i-1のことです。</p>

<p>似たような感じで、i +=1 というのもあります。これもi=i+1の意味ですが、最後の数字を変えればi=i+2や3などの代わりにもできます。<br />
+=だけじゃなく、-=、 *=、 /=、などもできます。例えばi *=3はi=i*3の意味です。</p>

<p>さてプログラムに戻ります。<br />
この場合の結果は毎回「１」が表示されます。なぜなら、start(){～}の中で宣言された変数は毎回、リセットされてしまうからです。<br />
リセットされて０になっているところへ１を足したものが出力されるので結果は常に１です。</p>

<p>では回数を重ねるごとに数を増やしていきたい場合はどうすればいいでしょうか？<br />
実はこんなふうに、変数の宣言をstart(){～}の外に出してしまえばいいのです。</p>

<p><strong>int i; //　変数i を整数として宣言</strong><br />
int start()<br />
{<br />
 i=i++; // i=i+1の意味 <br />
 print(i); //　iの中身を表示<br />
 return(0);//　終了<br />
}<br />
これで変数iがリセットされることはなくなりますので、１，２，３，４と、毎回値が１ずつ増えていくようになります。<br />
このように変数の値を保存しておきたいものは、start()の外で宣言するようにしてください。</p>]]>
        
    </content>
</entry>

<entry>
    <title>コンパイル時エラーの対処方法</title>
    <link rel="alternate" type="text/html" href="http://kawarobo.com/archives/2005/11/post-60.php" />
    <id>tag:kawarobo.com,2005://1.549</id>

    <published>2005-11-16T02:09:53Z</published>
    <updated>2009-06-29T09:00:47Z</updated>

    <summary>mql4プログラムをコンパイルした時に出てくるエラーの見方です。 エラーメッセー...</summary>
    <author>
        <name>kawarobo</name>
        
    </author>
    
        <category term="MQL4" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://kawarobo.com/">
        <![CDATA[<p><a href="http://kawarobo.com/archives/images/errorsetsumei.html" onclick="window.open('http://kawarobo.com/archives/images/errorsetsumei.html','popup','width=475,height=178,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://kawarobo.com/archives/images/errorsetsumei-thumb.jpg" width="160" height="59" align="left" /></a>mql4プログラムをコンパイルした時に出てくるエラーの見方です。<br />
エラーメッセージは左側にエラー内容、右側にエラーが発生した場所が記されています。<br clear="all"/><br />
'printstring' - variable not defined<br />
　　C:\Program Files\MetaTrader 4\experts\Hello.mq4 (2, 1)<br />
発生場所の（）内は行数と文字数を表します。この例だと2行目の1文字目に問題があることになります。</p>

<p>現在のカーソル位置（行数、文字数）がエディタ画面の右下に出ているので、それを見ながらエラー箇所に移動し、修正します。</p>

<p>主なエラーと対処方法をざっとあげてみます。</p>

<p>'変数名' - variable not defined<br />
　変数が宣言されていません。<br />
　変数が宣言されているか確認、変数名のタイプミス（特に大文字小文字の別）が無いか確認</p>

<p>'\end_of_program' - ending bracket '}' expected <br />
　}　が足りません。{　に対する }をどこかに書き忘れています。<br />
　エラー発生場所はプログラムの最後になっていますが、実際にはどこか途中で足りない部分があるのでプログラム全体を見直す必要があります。</p>

<p>'\end_of_program' - unbalanced left parenthesis	<br />
　)　が足りません。( に対する )をどこかに書き忘れています。<br />
　エラー発生場所はプログラムの最後になっていますが、実際にはどこか途中で足りない部分があるのでプログラム全体を見直す必要があります。</p>

<p>'return' - semicolon expected<br />
　;　セミコロンが抜けています。<br />
　指定行前後の行末を確認。</p>

<p>';' - semicolon unexpected<br />
　;セミコロンが変なところにあります。<br />
　指定行前後に不必要なセミコロンがないか確認</p>

<p>')' - wrong parameters count<br />
　関数のパラメータ数が足りません。<br />
　指定行にある関数の書式を確認</p>

<p>'=' - illegal assignment use<br />
　=の使い方が間違っています。<br />
　if分などの条件式で「==」と間違ってないか確認</p>]]>
        
    </content>
</entry>

<entry>
    <title>プログラムの作成　練習１－４</title>
    <link rel="alternate" type="text/html" href="http://kawarobo.com/archives/2005/11/post-59.php" />
    <id>tag:kawarobo.com,2005://1.554</id>

    <published>2005-11-16T01:12:56Z</published>
    <updated>2009-06-29T09:00:47Z</updated>

    <summary>つづいて、変数の使い方を練習してみましょう。 前回のプログラムで Print(&quot;...</summary>
    <author>
        <name>kawarobo</name>
        
    </author>
    
        <category term="MQL4" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://kawarobo.com/">
        <![CDATA[<p>つづいて、変数の使い方を練習してみましょう。</p>

<p>前回のプログラムで<br />
Print("Hello World");<br />
となっていた部分を<br />
<strong>printstring</strong>="Hello World";//①<br />
 Print(<strong>printstring</strong>);//②<br />
と置き換えてみます。<br />
①はprintstring という変数に文字列「Hello World」を代入せよ　という意味、<br />
②は変数printstringを画面に出力せよ　という意味です。このとき変数printstringには①で指定した文字列が入っていますので、「Hello World」と表示されることになります。</p>

<p>Print(<strong>"</strong>printstring<strong>"</strong>)ではないことに注意して下さい。<br />
" "で囲むと、この部分は変数ではなくただの文字列ですよ、という意味になるので、「Hello World」ではなく「printstring」という文字列が表示されることになります。</p>

<p>ではプログラム全体を見て見ましょう。上に書いたように置き換えるとこのようになります。<br />
int start(){<br />
 printstring="Hello World";<br />
 Print(printstring);<br />
 return(0);<br />
}</p>

<p>しかし、このままだとエラーが出てきます。<br />
printstringというのは私が勝手に名づけた変数です。ルールのところでも書いていますが、そういう自分で作った変数は、使う前に必ず「こういう変数を使います」ということを宣言しておかなくてはいけません。<br />
今回のprintstringには文字列をいれることにしていますので、<br />
string printstring;<br />
と最初に書いて、printstringは文字列変数です！と宣言します。</p>

<p>int start(){<br />
 <strong>string printstring;</strong><br />
 printstring="Hello World";<br />
 Print(printstring);<br />
 return(0);<br />
}</p>

<p>次は変数の使い方をもう少し掘り下げてみましょう。</p>]]>
        
    </content>
</entry>

<entry>
    <title>プログラムの作成　練習１－３</title>
    <link rel="alternate" type="text/html" href="http://kawarobo.com/archives/2005/11/post-57.php" />
    <id>tag:kawarobo.com,2005://1.546</id>

    <published>2005-11-04T18:28:02Z</published>
    <updated>2009-06-29T09:00:46Z</updated>

    <summary>[サンプルコード：Hello World] では、これをベースにプログラミングを...</summary>
    <author>
        <name>kawarobo</name>
        
    </author>
    
        <category term="MetaEditor入門" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://kawarobo.com/">
        <![CDATA[<p>[サンプルコード：Hello World]</p>

<p>では、これをベースにプログラミングをしてみましょう。<br />
Print("Hello World");<br />
この一文を3行目に入れてください。</p>

<p>int start()<br />
{<br />
　Print("Hello World");<br />
  return(0);<br />
}</p>

<p>Print( )は（）内の値を画面に表示するものです。<br />
int start() {　から　}　はティックの更新ごとに実行されるので、為替のレートが変わるたびに「HelloWorld」と表示が出るはずです。</p>

<p><a href="http://kawarobo.com/archives/images/hellocompile1.html" onclick="window.open('http://kawarobo.com/archives/images/hellocompile1.html','popup','width=798,height=555,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://kawarobo.com/archives/images/hellocompile-thumb.jpg" width="160" height="111" align="left" /></a><br />
実際にどのようになるか見てみましょう。<br />
Complileボタンを押すと、プログラムファイルが上書き保存され、エラーがないかチェックされます。<br />
エラーが無ければ下の画面に「0 error(s). 0 warning(s)」と表示され、完成です。<br clear="all"/><br />
<a href="http://kawarobo.com/archives/images/hellodrag1.html" onclick="window.open('http://kawarobo.com/archives/images/hellodrag1.html','popup','width=239,height=169,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://kawarobo.com/archives/images/hellodrag-thumb.jpg" width="160" height="113" align="left" /></a><br />
MetaTraderボタンを押し、MT4の画面に戻ると、ExpertAdvisorsの中に「Hello」が追加されています。<br />
これをチャートにドラッグして適用します。<br clear="all"/><br />
<a href="http://kawarobo.com/archives/images/helloallow.html" onclick="window.open('http://kawarobo.com/archives/images/helloallow.html','popup','width=715,height=281,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://kawarobo.com/archives/images/helloallow-thumb.jpg" width="160" height="62" align="left" /></a>「Allow live trading」にチェックを入れてOK。<br clear="all"/><br />
<a href="http://kawarobo.com/archives/images/helloenable.html" onclick="window.open('http://kawarobo.com/archives/images/helloenable.html','popup','width=357,height=100,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://kawarobo.com/archives/images/helloenable-thumb.jpg" width="160" height="44" align="left" /></a>「Enable Expert Advisors」ボタンを押すとマークが変わり、エキスパートが実行開始します。<br clear="all"/><br />
<a href="http://kawarobo.com/archives/images/helloprint.html" onclick="window.open('http://kawarobo.com/archives/images/helloprint.html','popup','width=313,height=251,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://kawarobo.com/archives/images/helloprint-thumb.jpg" width="160" height="128" align="left" /></a>TerminalウィンドウのExperts画面を開いてみてください。<br />
為替レートが変わるたびにHelloWorldという文字列が表示されるはずです。 <br clear="all"/></p>]]>
        
    </content>
</entry>

<entry>
    <title>プログラムの作成　練習１－２</title>
    <link rel="alternate" type="text/html" href="http://kawarobo.com/archives/2005/11/post-56.php" />
    <id>tag:kawarobo.com,2005://1.547</id>

    <published>2005-11-01T16:25:09Z</published>
    <updated>2009-06-29T09:00:47Z</updated>

    <summary>[自動作成されるコードの内容] 初めてみると何だかわけの分からないコードがずらず...</summary>
    <author>
        <name>kawarobo</name>
        
    </author>
    
        <category term="MetaEditor入門" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://kawarobo.com/">
        <![CDATA[<p>[自動作成されるコードの内容]<br />
初めてみると何だかわけの分からないコードがずらずらと並んでいるように見えますが、内容は非常に単純です。<br />
//で始まる行はコメントなのでプログラムには直接関係しません。<br />
このコメント行と、空行を除くと、プログラムは以下のように４つに分けられます。</p>

<p>①ヘッダー<br />
　#property copyright "kawarobo"<br />
　#property link  "http://kawarobo.com/"</p>

<p>②開始時の処理<br />
　int init()<br />
　{<br />
　　return(0);<br />
　}<br />
③終了時の処理<br />
　int deinit()<br />
　{<br />
　　 return(0);<br />
　}<br />
④メイン<br />
　int start()<br />
　{<br />
　　 return(0);<br />
　}</p>

<p>たったこれだけです。</p>

<p>①ヘッダーでは、パラメーターの定義やグローバル変数の宣言などを行ないます。意味がわからなければとりあえず読み飛ばしてください。<br />
②このinit( ) { ～ }　内に書かれた処理は、このエキスパートプログラムをチャートに適用した時、最初に一回だけ実行されます。<br />
③deinit( ){ ～ }は、エキスパートの使用を停止（チャートから削除）した時に最後に一回だけ実行されます。<br />
④ここがプログラムのメインです。start( ){ ～ }　ここに書かかれた処理は、チャートのデータが更新されるたびに実行されます。</p>

<p>つまり、プログラム実行の流れはこのようになります。<br />
②チャートへの適用時に一回だけ実行<br />
④・・・④　ティック更新ごとに繰り返し実行（自動売買のメイン）<br />
③チャートから削除した時に一回だけ実行</p>

<p>ただ②、③の処理はどういう使い道があるのか、あまり思い浮かびません。。<br />
不要な場合は削除してしまって構いません。<br />
①の#property copyright "～"や#property link"～"もネットで配布したりしないのであれば不要です。</p>

<p>実は、必要最小限の簡潔なプログラムにするには、自動作成されたコードを全て消して、<br />
int start()<br />
{</p>

<p>  return(0);<br />
}</p>

<p>とだけ書けばOKなのです。^-^;</p>]]>
        
    </content>
</entry>

<entry>
    <title>プログラムの作成　練習１－１</title>
    <link rel="alternate" type="text/html" href="http://kawarobo.com/archives/2005/11/post-55.php" />
    <id>tag:kawarobo.com,2005://1.548</id>

    <published>2005-10-31T18:13:20Z</published>
    <updated>2009-06-29T09:00:47Z</updated>

    <summary>【プログラム作成の練習】 [準備] とりあえず実際にやってみましょう。 MT4の...</summary>
    <author>
        <name>kawarobo</name>
        
    </author>
    
        <category term="MetaEditor入門" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://kawarobo.com/">
        <![CDATA[<p><strong>【プログラム作成の練習】</strong></p>

<p>[準備]<br />
<img alt="metaopen.jpg" src="http://kawarobo.com/archives/images/metaopen.jpg" width="161" height="89" align="left" /><br />
とりあえず実際にやってみましょう。<br />
MT4のMetaEditorボタンから、MetaEditorを開きます。<br clear="all" /><br />
<img alt="newedit.jpg" src="http://kawarobo.com/archives/images/newedit.jpg" width="160" height="98" align="left" /><br />
Newボタンで新規プログラムを作成。<br clear="all" /><br />
<a href="http://kawarobo.com/archives/images/newmql1.html" onclick="window.open('http://kawarobo.com/archives/images/newmql1.html','popup','width=611,height=365,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://kawarobo.com/archives/images/newmql1-thumb.jpg" width="160" height="95" align="left" /></a><br />
どのタイプのプログラムにするか選択肢が表示されます。ここでは自動売買をするための「ExpertAdvisorProgram」を選びます。<br clear="all" /><br />
<a href="http://kawarobo.com/archives/images/newmql2.html" onclick="window.open('http://kawarobo.com/archives/images/newmql2.html','popup','width=609,height=359,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://kawarobo.com/archives/images/newmql2-thumb.jpg" width="160" height="94" align="left" /></a>作成するプログラムの名前、作成者名などの入力欄があらわれますので、プログラム名を「<strong>Hello</strong>」、作者名は自分の名前を入れてください。<br />
下にパラメーター作成用の欄がありますが、今はそのままで「完了」ボタンを押します。<br clear="all"/><br />
これで「<strong>Hello.mq4</strong>」というプログラムが自動的に作成されます。<br />
自動的に作成されるのは単なる雛型だけなので、このままでは当然何も起こりません。<br />
この雛型をもとに、プログラムを追加していきましょう。<br />
-- -- -- --<br />
<a href="http://kawarobo.com/archives/images/editgamensetumei1.html" onclick="window.open('http://kawarobo.com/archives/images/editgamensetumei1.html','popup','width=531,height=383,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://kawarobo.com/archives/images/editgamensetumei-thumb.jpg" width="160" height="115" /></a><br />
-- -- -- --</p>]]>
        
    </content>
</entry>

<entry>
    <title>プログラミング</title>
    <link rel="alternate" type="text/html" href="http://kawarobo.com/archives/2005/10/post-54.php" />
    <id>tag:kawarobo.com,2005://1.545</id>

    <published>2005-10-27T16:32:05Z</published>
    <updated>2009-06-29T09:00:46Z</updated>

    <summary>ではいよいよ、最も敷居が高い(?)プログラミングに入ります。 といってもそれほど...</summary>
    <author>
        <name>kawarobo</name>
        
    </author>
    
        <category term="MetaEditor入門" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://kawarobo.com/">
        <![CDATA[<p>ではいよいよ、最も敷居が高い(?)プログラミングに入ります。</p>

<p>といってもそれほど身構える必要はありません。<br />
要は、「こうなったらああしなさい」　ということを決められた書式で書くというだけのことです。<br />
この書式がいろいろ細かくてごちゃごちゃしているように見えるかもしれませんが、おおまかなルールが分かってしまえばあとはなんとかなります。<br />
エクセルのマクロやJava、C言語などのプログラミング経験者の方には特に簡単です。</p>

<p><strong>【プログラミングのルール】</strong><br />
①<s>すべてアルファベットで記入（日本語は使えない）</s>日本語使えます<br />
②文末はセミコロン（<b>;</b>）<br />
③コメントアウトは<b>//</b>か <b>/*</b> ～ <b>*/</b><br />
④変数は型を決めて宣言が必要<br />
⑤変数は大文字と小文字の区別がある</p>

<p><br />
まず①、<s>そのままですね。</s>日本語使えました。デフォルトの設定のままだと文字化けするので、MetaEditorのTools＞Options＞Font で日本語のフォント（例：MSゴシック）を選択して下さい。</p>

<p>②もそのままです。一文の終わりには;をつけます。<br />
例：　i=3<b>;</b><br />
　　　j=4<b>;</b><br />
　　（iの値は３にします、jの値は４にしますの意味）</p>

<p>一文を何行かにわけて書くことも出来ます。<br />
例A：　i=3;<br />
例B：　i<br />
　　　 =3;<br />
　　(A,Bどちらも同じです)</p>

<p>③あとで見直すときのために、プログラム中に説明文やコメントを書いておきたい時に使います。<br />
<b>//</b>　と書くと、そこから行の終わりまでが、無視されます。<br />
例：　<b>i=3;</b><br />
　　　//i=2;　この行は無視<br />
　　　<b>j=4;</b> //j=5;←これも無視<br />
　　（太字の部分のみが有効。結果、ｊは４になる）<br />
<b>/*</b> と<b>*/</b>　で囲むと、その部分がまとめて無視されます。一行ずつ//を入れるのが面倒くさいときに使います。<br />
例：　/* i=3;<br />
　　　　j=4;<br />
　　　　全部無視！<br />
　　　*/</p>

<p>④変数は自分で自由に作れますが、一番最初使う前に、こういう変数を使いますよということを宣言しておく必要があります。<br />
上の例ではいきなりi=3とか書いてますが、本当なら、<br />
　int i;<br />
　i=3;<br />
　i=i+1;<br />
というふうに、「int i;」でiという変数を使いますということを宣言しておかないといけません。これは使い始める前に一回だけでOKです。<br />
また、int は整数のことで、iには整数しか入れませんよ、という意味でもあります。もし小数を使いたいなら、「double i;」のようにdoubleを使います。<br />
　double i;　<br />
　int j,k; //<b>,</b>でつないでまとめて宣言もできます<br />
　double l=0.5; // 宣言と同時に初期値の代入もできます<br />
　i=3; //doubleは整数も扱えます<br />
　j=0.5; //←jは整数として宣言していたのでこれはだめです<br />
他に、文字列を扱うstring 、真か偽か2通りの値しか入らないboolがあります。<br />
　string i="abc"; //文字列は""で囲みます<br />
　i=i+"def"; //結果、i="abcdef"</p>

<p>　bool j;<br />
　j=true; // 真がtrue 偽がfalse</p>

<p>⑤変数は大文字小文字の区別があるので、変数iと変数Iは別物です。<br />
　int i,I;<br />
　i=0;I=1;</p>

<p>　int Hensu; //変数は2文字以上でもOK<br />
　string hensu; //Hensu ≠ hensu</p>

<p><strong>【プログラム実行の流れ】</strong></p>

<p>プログラムは、基本的に上から一つずつ順番に実行されます。<br />
例えば、<br />
int i=1;//整数iを宣言して、1を代入。<br />
i=i+8;//i(=1)に８を足した値を新しいiの値(=9)とする<br />
i=i*5; // *はx(掛ける)の意味。i= 9x5＝45<br />
Print(i); //Print(～)は～の値を画面に表示<br />
　//iの値、45が表示される。（TerminalウィンドウのExpert欄に）</p>

<p>という具合です。</p>

<p>＊①の補足：<br />
変数名や関数名にも日本語を使えますが、あまりおすすめはできません。<br />
全角スペースはスペースではなく文字として認識されます。<br />
変数名に日本語を使うと、うっかり全角のスペースを入れてしまうというミスをしやすくなります。</p>

<p>int あ　= 1;<br />
あ = あ + 1;</p>

<p>これはNGです。ぱっと見では何が間違っているか分からず混乱してしまうのですが、<br />
1行目では”あ”ではなく”あ　”（あ+<strong>全角スペース</strong>）という変数を宣言したことになり、<br />
2行目で「変数”あ”が宣言されてません」というエラーが出ます。<br />
2行目だけをいくらみても原因がわからないので、混乱してしまいますね。</p>]]>
        
    </content>
</entry>

</feed>
