トップ  >  お問合せ(Contact)
お問合せ(Contact)



下記フォームへ入力し [ 確 認 ] ボタンを押してください。
(Please start by completing this form , and press the submit[確認] button.)



注意事項





MetaEditorのコンパイルエラーに関する質問は、まずコンパイルエラー でチェックして下さい。
MetaEditorのコンパイルワーニングに関する質問は、まずコンパイルワーニング でチェックして下さい。
カスタムインジケータまたはEA実行中に発生したエラーに関する質問は、まずランタイムエラー でチェックして下さい。
ランタイムエラーの確認方法はErrorDescription()関数のページを参照して下さい。
過去に問い合わせられたコンパイルエラーの質問はMetaEditorコンパイルエラー一覧を参照して下さい。

ネットで拾ったソースコードや他Webサイト(ブログも含む)に掲載されているサンプルコードについては、そのWebサイトの管理人に問い合わせて下さい。



全くプログラムを組んだ事が無く全く分からなくて、何が分からないかも分からない方は、自作してみるのページを読んで下さい。
プログラミング未経験者でも分かり易いようになるべく簡単に説明しています、自作してみるのページの内容で理解できない所があれば好きなだけ問い合わせて下さい。 可能な限り回答します。

リファレンスの説明やサンプルソースで分かり難い部分があったらご連絡下さい。




過去に受けた問い合わせと類似した問い合わせも多いので、
◆Q&A よくある質問&備忘録

◆直近の問い合わせ内容

◆悪い問い合わせの例
で類似した問い合わせ内容が無いか必ず確認して下さい。

ネタになるので妙な問い合わせもとりあえず受け付けるように方針転換しました。
どんなに注意事項を掲載してもどうせ他サイトのサンプルコードや拾ったEAについての問い合わせをしてくるので逆に諦めましたw
ただ他のサイトで拾ったソースコードについての問い合わせは、そのサイト運営者に問い合わせ内容を転送しますのでご了承下さい。





問い合わせフォーム











直近の問い合わせ内容

Q A
カスタムインジケーターを作成していますが、最初の実行時に途中でエラーが発しするのですが2回目に動かすと正常に動作します。ワークメモリ関係の問題かもしれませんが、この原因について解説してほしいです。ソースコードがないので無理ですかね。お時間があって、分かればで結構です。 情報が少なさ過ぎて憶測でしか回答出来ませんが、恐らく1回目の時に「array out of range」というエラーが出ていませんか?
理由は時間をおいてから起動するとヒストリカルデータが不足していて、1回目の時はヒストリカルデータが不足した状態で範囲外アクセスをしていると思います。 エラーが発生している間に不足分のヒストリカルデータがダウンロードされるので2回目以降はエラーにならないと思います。
M1-3.トレンド系インジケータ作成(終値ライン)作成編の不具合対策(バッファオーバーフロー対策) と同じ事が起きていないでしょうか?
これはヒストリカルデータが全く無い時の例ですが、プログラムの作り方によってはヒストリカルデータが僅かにあってもエラーになる場合があります。
それについては EAの仕上げ調整で解説する予定です。

ただ基本的にはエラーになっている行の処理をデバッグすれば自力で解決出来ると思います。
MQL4 の関数データー(算出変数値 や 各種関数値)を EXCEL に転送する為の関数名をお知らせください。
貴、MQL4レファーレンス・リストの、どの関数を使うのか、分かりません。又、EXCEL側の設定に付いてもお願いします。
直接Excelにデータ転送するような関数はありません。
一度FileWrite()関数でCSVファイルを生成してから、Excel VBAでCSVファイルを読み込んでみるのは如何でしょう?
サンプルソースを作成しましたので参考にして下さい。
簡単なインジケーターをインジケーター制作サイト(EAビルダー)で作成してみました。ここで作成したインジケーターをバックテストをして一つの疑問が出たのですが、複数のPCで同じサーバーのMT4,同じヒストリカルデータをインポートしてテストを行ったところ、サインの回数に微妙な差(2個)が出ました。 メールアドレスが間違えていたので返信出来ませんでした(もしかしたら転送された時の為にわざと間違えたのかもしれませんが)。
情報が少ないので憶測でしか答えられませんが
・hstファイルが違う。
・スプレッド設定を「現在値」にしている。
・新しいデータ受信したデータが微妙に異なっている(同じサーバーで違うアカウントの場合データが違ったり、24時間起動した状態で蓄積したデータと、サーバーからまとめて不足分を受信したデータで差異が発生する事がある)。
・バックテストのモデルが「全ティック」の場合、異なる環境でtick生成のランダムシードが一緒にならなかった。

が考えられます。
サブPCのhstファイルを全て削除して、LANケーブルを抜くかインターネット接続を切断したスタンドアローン状態で、メインPCのhstファイルを全てコピー(インポートでは無く、ファイルをダイレクトコピー)して全く同じテストを行っても違う動作をするのであれば、 正直分かりませんのでトレードログ比較して、差異が発生した部分をデバッグして下さい。

あとEAビルダーで作ったものに関しては、EAビルダーのサポート(support@eabuilder.com)に聞いて下さい。
ビット演算子を使ってカウンターを作りたいのですが…以下略 基本的にC言語と同じになります。簡単なサンプルソースを作成しましたので参考にして下さい。
int ABC変数に有るint数値を代入れました。その後,変数ABCに自分で指定したビット番号(例えばBit20)の状態(1 又は 0 )をチェックする方法がありまますか? AND演算子を使用する事で可能です。
https://yukifx.web.fc2.com/sub/contact/sample_bitshift.html
を参考にして下さい。
新しいMQL5のバージョンがあるみたいですが、MQL4とどちらを勉強するべきか迷ってます。
今後のことを考えたら新しいバージョンのMT5の方がいいのでしょうか?
根本的な問題として、MT5を取り扱っている業者が少ないという問題があります。
MQL5を勉強してMT5用のEAを作ったとします、そしてこのEAを運用しようという時にMT5を取り扱っている業者が無い為、取引が出来ませんでした。
という事になります。せっかく勉強して作っても稼働させる環境がなければ意味がありません。
ポジションの最大数の関数ってありますか? ポジション上限は AccountInfoInteger(ACCOUNT_LIMIT_ORDERS)
で確認出来ます。
PrintFormatなる関数があると思いますが、 この呼び出しの前にDEBUGフラグを参照して、出力するかしないかを一括管理したいと考えております。 この関数は、可変長引数を受け取りますが、開発者が、可変長引数を持つ関数を定義することは可能なのでしょうか。 簡単なサンプルソースを作成しましたので参考にして下さい。
自作のEAをコンパイルしたら、event handling function not foundと表示されました。他のすでにコンパイル済のEAも再度コンパイルすると同様に表示され・・・(一部割愛)


メールの内容が良く理解できなかったのですが、とりあえず、新規の作成をしてみたところ、衝撃でした。今は変わっているのですね。int(),deint(),start()の時代からずっとそれを元にして新たなEAを作っていたので、その形式が変わっていたとはまったく知りませんでした。しかし、それでもEAは動いていましたが。
ただ、不思議なのは、それでもEAは動いていたということと、MT4も複数のPCでさらに複数のMT4をダウンロードしてしいますが、そのうちのひとつのみがそういう現象が本日突然起こり、今のところ他ではそれが見られないということです。
MetaEditorの新規作成ボタンを押して、MQL4ウィザードで作成したソースコードでも同様のエラーは出ますでしょうか?
event handling function not foundは、ソースコードにイベント関数( OnInit(), Ondeinit(), OnTick()等 )が一つも無い場合に発生します。
ただ過去(4年前くらい)に、コンパイラのバグでそのイベント関数が認識出来なくなった事例がありました。OnInit()の1行を削除して、手動で書き直してみて下さい。 Build 655でこのエラー検出が追加された時に発生したバグなので、つい最近突如発生するとは考え難いのです.


MT4 Build 600でMetaEditorがMQL5と統合化された時に大幅変更が入りました。 詳細はリンクを見て下さい。 単純にコンパイラに新しい構文エラー検出が追加され、コンパイルが通らなくなっただけで、 既に過去に作成したEAは生成済みのex4ファイルを実行してるので動作します。
動作しなくなったのはコンパイルエラーになって.ex4ファイルが削除されたターミナルだけですよね?
他ターミナルで動作しているのは他ターミナルで再コンパイルしていないので.ex4ファイルが消されていないからです。 大幅変更が入りイベント関数にも変更は入りましたが、互換性は残っていますので古いex4でもMT4で実行可能です。
m[1]からm[50]にそれぞれ数値が入っている場合に、その最大値を調べたいんですが、どのような式を作ればいいのでしょうか。 簡単なサンプルソースを作成しましたので参考にして下さい。
エキスパ−トアドバイザの中のmovinguaverageを使って取引しているのですが、証拠金の残高に応じて数量が決まるため(数量が大きいです)そのため損失が大きく膨らむ可能性があります、従ってこの数量を任意の数量にして小さくしたいのですがそのやり方を教えてください オーダー時のロット数量はOrderSend()関数で指定します。 CheckForOpen()関数内でOrderSend()関数の引数で渡しているLotsOptimized()を任意の数量に置き換えてください。
EA自作したり自動売買するには、やっぱりハイスペックなパソコンじゃなきゃ駄目でしょうか? 何を根拠に「やっぱり」と言っているのか分かりませんが、MT4は処理が軽いので普通のPCで十分です。
MT4はマルチスレッド非対応なのでコア数の多いCPUを搭載したハイスペックゲーミングPCを使ったとしても大差はありません。
ちなみに私は2011年製のOptiplex790SFF(Core i3 2100【2コア/4スレッド】)という化石のようなPCでEA自作していましたが快適でした。
今は新しいOptiplexXE2(Core i5 4570S【4コア/4スレッド】)が安く手に入ったのでメインPCはそちらに引っ越しましたが、今でもEAの自動売買は2011年製のサブPCで稼働させています。
なのでMT4やEAの為に、価格が高いだけの最新のハイスペックPCを無理して購入する必要は無いです。
MathFloorについて、結果が正しく出ないことがあり調べています。 もし解決法や別の方法をご存知でしたらアドバイスいただけますと有難いです。 よろしくお願いいたします。
double tst = 0.7 / 0.1;
Print("tst:",tst);
Print("MathFloor:",MathFloor(tst));
結果が、このように出ます
tst:6.999999999999999
MathFloor:6.0
この場合、割り算の結果がおかしく、MathFloorは正しいです。
これはMT4やMathFloor()関数が悪いのでは無く、浮動小数点演算の誤差によって生じるものです。
詳細は浮動小数点数型[double , float]のページに追記しました。
IND_RateSection.ex4 について、これも大変便利で良いのですが、 できるならば間隔のpips数、及び線の色と種類をパラメーターで 変更できるようになるとありがたいです。 変更対応しました。
ラウンドナンバーの節目に水辺線を引くプログラムですので、 100pips未満の間隔を指定する場合は切りの良い値(20pips/25pips/50pips等)にした方が無難です。
テキストのオブジェクトのコードで、 テキストを挿入する際に、文字入力のパラメーターも同時に開くのを設定する際のコードはどのように書いたらよろしいでしょうか?
言葉不足の説明になってしまい申し訳ございません。 今、テキスト[A]をショートカットキーを押すと呼び出せるものを作っていて、 現状、ショートカットキーをテキスト[A]を呼び出して、 チャートにテキストオブジェクトを選択した状態で挿入させるところまでは出来ています。 ただ、現状だと、そこから文字を入力するパラメーターを開くのに、 右クリックして、Textパラメーターを開くを選択する工程を踏まないと 文字入力のパラメーターは開かない状態です。 理想としては、チャート上でカーソルを合わせた位置でショートカットキーを押したら、 テキストの文字入力のパラメーターが開いて、 すぐに文字を打てる状態にしたいと思っております。 ※Accela2のホットキーだとこれが実現されています。
私の読解力不足のせいか具体的に何をしたいのか読み取れませんでした。「同時に開くのを設定する」とは具体的に何の事を指しているのでしょうか? この一文が良く分かりませんでした
理解できなかった理由が分かりました。 MQL4はMT4の操作を使い易くなるように自由にカスタマイズ出来るプログラミング言語ではありません。
MQL4ではオブジェクトのプロパティ画面を開くという機能は用意されてありません。 Accela2はMQL4で作成されたものではありません。

>現状、ショートカットキーをテキスト[A]を呼び出して、 チャートにテキストオブジェクトを選択した状態で挿入させるところまでは出来ています。
これはMQL4で作成しているのでしょうか? 基本的にMQL4言語以外の事については回答出来かねますが、 Accela2はWindowsAPIのPostMessage()でWM_COMMANDメッセージを送信して「テキスト」オブジェクトのダイアログボタンをプログラムで押しています(正確にはAccela2が使っているAutoHotKeyというツールがWindowsAPIを使っています)。 この手の外部ツールは、VisualStudio等で自作する必要があります。

>ただ、現状だと、そこから文字を入力するパラメーターを開くのに、右クリックして、Textパラメーターを開くを選択する工程を踏まないと 文字入力のパラメーターは開かない状態です。
オブジェクト選択状態からプロパティを開きたいのであれば、 同様にPostMessage()で「右クリック」→「プロパティメニュー選択」→「Enter」のメッセージを送信するプログラムを作成してみてはいかがでしょう? MQL4に連動させたいのであればdllを介してそれをMQL4で操作させて下さい。

MQL4だけで出来る事ではありませんので、分からない事がありましたらWindowsAPIを調べて下さい。 WindowsAPIを扱うにはC++の知識が必要です。

Accela2はfaiさんが作成した外部ツールです、Accela2が全員周知である事を前提とした質問はやめて下さい。
AccountInfoDouble関数で使用する定数の「ACCOUNT_FREEMARGIN」がエラーとなります。 調べてみると、該当バージョンでは「ACCOUNT_MARGIN_FREE」に変わっているようです。 いつからどう変わったのか不明ですが、このように定数が変わったりするような事例は他にもあるのでしょうか? 関数名は同じなので、変更された理由など、想定されることがあれば加えてお教えください。 一つお聞かせ下さい。エラーとはどんなエラーでしょうか?
MT4 Build 1220(MetaEditor Build 2143)で試した結果、コンパイルエラーランタイムエラーも発生しませんでした。 ご指摘の通り確かに定数の名称の変更があったみたいですが、互換性を保つ為に古い定数も使える状態の為コンパイルエラーにはなりません。 過去にも関数名の名前等の変更はありましたが、同様に互換性を保つ為に古い関数や古い定数も残して使用できるようになっています。 私はMQL4開発者では無い為変更された理由は分かりませんが、頻繁にバージョン更新されるツールなので今後も似たような変更は入ると思います。
ラベルのコーナーアンカー設定ですが、コンパイルエラーにもならず、問題なく設定できているはずが、実際には左上以外を指定してもその設定は有効になっていません、 試しに右上を設定してラベルプロパティを開いてみると右上になっているのに、オブジェクトをダブルクリックした時には左上にアンカーが設定されています。手で作成したものはキチンと右上にアンカーが設定されます。 色々調査した結果、参考になったパージがありましたので、それを連携します。 これはMT4上のバグだと思います
手で「挿入」⇒「テキストラベル」で、プロパティでアンカーを右上にすると きちんと右上にアンカーがきて右詰めされますね。 でもプログラムで記述すると、後でいくらプロパティを手で変更しても、アンカーは 左上に固定されていて(見た目のプロパティは変更されている)います。
コーナーアンカーアンカーポイントを同じものだと勘違いされていないでしょうか? MT4上のプロパティでアンカーポイント(OBJPROP_ANCHOR)の設定を変更する事は出来ません (コーナーアンカーを手動変更した時に、自動的にアンカーポイントも変更されるので、アンカーポイントだけ手動変更する事は出来ません)。 参考にされたサイトで紹介されているOBJPROP_ANCHORについてですが、何か勘違いされていると思われます。 OBJPROP_CORNERはオブジェクト座標の起点となるコーナーを設定するもの。 OBJPROP_ANCHORは指定された座標に対するオブジェクトのアンカーを設定するもの
添付した画像を見られていないようですので再度添付します。 長文回答では伝わらないみたいですので、簡潔に回答します。
コーナーアンカー(OBJPROP_CORNER)とアンカーポイント(OBJPROP_ANCHOR)は別物です。 サンプルソースではアンカーポイントの設定はしておりません(←追加しました)。 サンプルソースのOBJPROP_CORNERをいくら変更しても当然アンカーポイントは変化しません。 コーナーアンカー(OBJPROP_CORNER)はオブジェクトのコーナーでは無く、チャートウインドウのコーナーの設定になります。 補足説明ですが、 MT4上のパラメータのアンカー設定値表示は、OBJPROP_CORNERの設定値に依存します(コーナーアンカーの設定値なので当然ですが)。 MT4上のパラメータのアンカー設定を手動で変更すると、OBJPROP_CORNERと一緒にOBJPROP_ANCHORの設定値も変更されるみたいです。
興味が持てない広告が必ず表示されてうっとおしく感じます。 検索履歴やサイトのコンテンツ内容から関連性の高いものがGoogleのアルゴリズムによって選ばれて表示されます。 それでも通常であれば広告の99.75%は興味が持てない内容の筈です、TVやYouTubeを見る際にCMを目的に見る人はいない筈です (TVCMの場合、番組内容に関係なくスポンサーになってくれる企業に依存する場合があるので、 ゴールデンタイムにパチンコ屋のTVCMが増えてきたら実体経済の景気が悪いんだなぁ〜という事が感じ取れます)。
いずれこのサイトは事前予告無しで閉鎖しますので、それまで我慢して下さい。

悪い問い合わせの例


Q A
インジケータIND_EconomicDisplay.ex4がチャート上に表示できません。バグ不具合みたいです。 まずCSVファイルを生成して下さい、詳細はダウンロードページ参照、 使い方の説明をよく読んで下さい。
HLバンドを使ったトレールのEAを作っているところなのですが、うまくいきません。価格がHLバンドを抜けたときに決済するようにしたいのですが、どうしたらいいですか? トレールではなく決済ルールとして試したりしてみましたが、新規もHLバンドを使ったエントリー方法であるためかうまくいきません。 状況がよく理解できません、具体的に何に躓いているのかが分かりません。
>新規もHLバンドを使ったエントリー方法であるためかうまくいきません。
特にこれがよく分かりません。エントリー方法とクローズ方法は何の関係性も無いのですが、何故特定のエントリー方法を使うとクローズ出来なくなるという結論に至ったのでしょう?
どういう理論なのか具体的に説明して欲しいです。

ポジションクローズのやり方自体が分からないのでしょうか? それともポジションクローズ時にエラーが発生して決済されない状態なのでしょうか?

ポジションクローズ自体は、 OrderClose()関数を使って成行決済が出来ますので、 決済したいレートの閾値を現在の気配値が超過した時にOrderClose()関数でクローズしたいチケットを指定して、成行決済します。

OrderClose()でエラーが発生した場合は GetLastError()で最後に発生したエラーを取得出来ますので、 エラーコード一覧でエラーの内容を確認して、ソースコードの修正を行います。
オブジェクトが組み込まれているEAがあるのですが、バックテストだと動くのに、フォワードテストでは動きません。ソースコードを見ても問題ないように見えます。 ちゃんとchartredrawが入ってました。他に入れた方がいい関数はありますか?
色々自分で考えてやってみたのですが、やはりわかりませんでした。 これは海外フォーラムで手に入れました。履歴データを読みます。 バックテストのビジュアルモードでは、青い線が動いていますが、実際に動かすと、動いていません。 海外フォーラムでは、この青い線がバックテストのように動きさえすれば勝てると言われています。 なんとかならないでしょうか?
他人が作ったEAのように聞こえますが、自作したEAでしょうか? 情報が少なさ過ぎて何とも言えませんが、 「バックテストだとオブジェクトが描画されるのに」という事でしょうか? それとも 「バックテストだとEAは動くのに」という事でしょうか? ソースコードを見てみないと憶測でしか回答出来ません。

>ソースコードを見ても問題ないように見えます。
ChartRedraw()関数の意味を理解できていない時点で、ソースコードに問題があったとしても判断出来ていないと思えます。 ChartRedraw()関数は、基本的に描画済みのオブジェクトのオブジェクトプロパティを変更した後にオブジェクトを再描画させる時に使用します。 描画されていないオブジェクトが勝手に描画される魔法の関数ではありません。
>バックテストのビジュアルモードでは、青い線が動いていますが、実際に動かすと、動いていません。
そもそもあの青い線がどういう時に移動するのか条件を理解できていますでしょうか? フォワードテスト中に同じ条件が発生したにも関わらず青い線が移動しなかったという事を確認したのでしょうか?

>海外フォーラムでは、この青い線がバックテストのように動きさえすれば勝てると言われています。 なんとかならないでしょうか?

「はい。上記注意事項を読みました。過去の問い合わせも確認して類似した内容はありませんでした。」と回答されていますが、 「Q&A よくある質問&備忘録」の内容を本当にチェックされたのでしょうか? 得体の知れないEAを訳も分からず使おうとしているように感じ取れるのですが? バックテストの結果を見る限り 【Q. EAはいつかドカンとやられて口座が飛ぶらしいのですが・・・危なくないですか?】 に記載してあるような典型的な無限ナンピン&無限Lot増しです、本当にこれを読まれたのでしょうか? それにバックテストで少し動かしてみただけでも1500枚近い枚数でかなりナンピンしているのですが?


平気で合計1万枚以上の枚数を抱える事になるのですが、このポジションのサイズの大きさを理解できていますでしょうか? ドル円なら現在のレート(112.126円)で、112億円のポジションを持つことになるのですが色々と大丈夫でしょうか? 例え300億円近い資産を持っていたとしても無限Lot増しなのでやればやる程より多くの証拠金が要求されるのですが色々と大丈夫でしょうか? 証拠金が用意できなくなった時点で破産が約束されるEAですが色々と大丈夫でしょうか? 論理的思考・合理的判断力・状況判断能力はありますでしょうか? (「誰でも出来る簡単な仕事で日給10万円!」の張り紙を見て電話してオレオレ詐欺の受け子になってしまう人ぐらい思考停止していると思いますが・・・) 少なくとも国内業者では1500枚の枚数を受け付けてくれる業者は限られています。 私の使っている業者は1ショットの上限が500枚(約5.6億円)です。 海外業者なら約定してくれる業者はあるかもしれませんが・・・

>ソースコードを見ても問題ないように見えます。
975行のそれなりにボリュームのあるソースコードでした。 コメントが殆ど記載されていない上に、海外の人が作成する特有の冗長性の無い可読性が悪いソースコードですが、 あれを全部チェックされたのでしょうか? 私は途中で読む気が失せてしまったのでデバッグツールを使って動作チェックをしたのですが・・・
ソースコードを見ても問題無かったんですよね?凄いですね。
たしかにソースコードには問題はありませんでした、でもロジック自体にとんでもない問題がありました。 無限ナンピンしている割には何故か有効証拠金が減らない不思議なEAなので、試しに証拠金維持率が20%を割ったら強制ロスカットするロジックを入れてみたのですが、結果が変わりませんでした。 ロジックを変えてみても何故必ず勝ってしまうので、何かおかしいと思いました。 ソースコードを眺めていたらkernel32.dllを使用している事に対して不審に思ったので、ライブラリ関数を使用している部分に注目してじっくりチェックして見た結果・・・
ヒストリカルデータを先読みして勝てる時だけエントリーするロジックが組み込まれていました。
ReadFileHst()関数内の一行をコメントアウトしてバックテストして見た結果、


本来のバックテスト結果が現れました。

無限ナンピンをしていればこの形になるのが普通です。
あっという間に破産したのでバックテストは中断されました。

>この青い線がバックテストのように動きさえすれば勝てると言われています。 なんとかならないでしょうか?
まぁ無理でしょうね、バックテストはヒストリカルデータを先読みする事が出来ますが、フォワードテストやライブ口座での配信レートはタイムマシンが無い限り先読みする事は出来ませんからね。 デロリアンを改造してタイムマシンを発明すればなんとかなるんじゃないでしょうか?

EAの製作者は中国人みたいですが、チート文化の中国人らしい手の混んだ悪質な詐欺EAです。 こんなヒストリカルデータを先読みするようなソースコードが組み込まれていたのにも関わらず問題がないようにみえたのでしょうか?すごいですね。 思考停止している自覚が無い人はこういう人達に搾取されるだけです。

あれだけ注意喚起をしていたのにも関わらず得体の知れないEAを有り難く使って他人が破産しても、一切救済する事は出来ません。 なぜなら私は他人の母親では無いからです。 かなりキツイ事を言っていますが、これだけキツイ事を言われても恐らく理解できないでしょう。 過去の経験(学校、バイト先、職場)から似たような人を沢山見てきていますから。そしてまた同じように聖杯を探すでしょうね。
ただ、面白いネタになるEAのソースコードを提供して下さって有難うございました。
MT4はビルト600対応に変更されましたが。昔のEAが誤作動とかあるようです ビルト600対応のEA作るにはC言語などのプログラムなどがわからないと やはり作れませんか。RSIのEA作ろうと思っています。
他の質問が長いので回答ページ参照
Build 600でのMQL4更新参照
自作してみる参照
サンプルソースコード解析参照
「ビルト600対応に変更されましたが。昔のEAが誤作動とかあるようです」と「RSIのEA作ろうと思っています。」から、 新規で作成するEAには何の問題も影響が無いと自分で言っている事に気がついていないのでしょうか?
あと「昔のEAが誤作動とかあるようです」は「良く分からないけど、ネットに書かれていました。自分自身で確認はしていません。」としか聞こえないのですが、そんな事を聞かれても「へぇ〜」としか答えられません。
「C言語などのプログラムなどがわからないと やはり作れませんか。」誰が吹聴したのかは知りませんが、このサイト内に「C言語が出来ないとEAは作れません」と記載されていたのでしょうか?一体どのページでしょうか?
MQL4はC言語ベースで作られていますが、その理屈で行くと今流行のPythonを学ぼうとしている人は他プログラミング言語を学ばければ習得できない事になります。
そうなると初めてC言語を学習する人は一体何のプログラミング言語を習得しなければならないのでしょうか?アセンブラからでしょうか?
あと、何故憶測で話しているにも関わらず「やはり」という言葉を使うのでしょうか?「やはり」というのは「予想・期待の通りであることを表す語」です。

長いので他回答の詳細は回答ページ参照。
下記のプログラムを書いたとすればリカクのプログラムはそのほかの場所に書くものでしょうか。 この点がわからないところです。リカクのプログラムだけを書きたいということなのですが。

externの代わりにinputをつけることでもユーザーに設定可能な外部パラメータとして表示。

input int MagicNumber = 123456; //マジックナンバー
input double Lots = 0.1; //ロット数
input double SLpips = 100; //損切り
input double TPpips = 100; //利食い
input int Slippage = 1; //スリッページ
OrderModify参照
OrderSend参照
OrderClose参照
サンプルソースコード解析参照

他Webサイトの事はそのWebサイト管理人に問い合わせて下さい。
fx-on LaboのWebサイトに記載されている内容については、fx-on LaboのWebサイトを運営している株式会社ゴゴジャンに問い合わせて下さい。
なぜ私に問い合わせるのか皆目検討がつきません。

>下記のプログラムを書いたとすればリカクのプログラムはそのほかの場所に書くものでしょうか
指値を使わずに、条件が成立した時点で決済したいのであれば、普通は他の場所に書くと思いますが・・・ input変数を追加すると勝手にリミット注文を入れてくれるものだと勘違いしていませんか?

それに
>リカクのプログラムだけを書きたいということなのですが
何故か他人事のように質問をしているのが気になります。
誰かにそのサンプルコードについて聞かれてそれを又聞きして、聞いている本人自身よく理解出来ていない印象を受けました。 単純にタイプミスの可能性もありますが、その後の問い合わせ内容を見る限りタイプミスでは無い感じがします。


成行買い注文が約定した後に、エントリー価格の50pips上に利益確定、25pips下に損切りを設定する。 このプログラムは添付写真のようなのですが単純にこのプログラムを プログラムのどの部分に入れればよいのか、単純にこのプログラムだけ入れても他も訂正しないとだめなのか 知りたいわけです。

まず、一つ教えて下さい。 キャプチャーされた画像はIの戦士さんが運営しているサイトのものです。
Iの戦士さんのサイトには問い合わせフォームもありますし、ツイッターで質問する事も可能です。
にも関わらず、何故私のサイトで他サイトのサンプルコードの質問をするのでしょうか?
赤の他人に質問している点で考えれば、Iの戦士さんに質問する事と大差は無いはずです。
またIの戦士さんのサンプルコードなので、Iの戦士さんに聞くの方が筋が通っていると思いますが、 それを何故他サイトの管理人に質問をするのでしょうか? Iの戦士さんに問い合わせて無視されたのでしょうか?

>プログラムのどの部分に入れればよいのか、単純にこのプログラムだけ入れても他も 訂正しないとだめなのか
どの部分に入れれば良いのかはIの戦士さんのサイトに記載してある通りですが・・・
質問内容を見る限り、サンプルコードを眺めてただ憶測を並べているだけのように思えます。実際にプログラムを動かしてみては如何でしょう?
ちなみに
>成行買い注文が約定した後に、エントリー価格の50pips上に利益確定、25pips下に損切りを設定する。
Pointはその通貨ペアの精度に依存します、多くの業者は0.1pipsの精度を採用してる為、
50 * Pointでは 50 * 0.1pipsなので、 50pipsでは無く5pipsになります。
marketinfo()関数 で、その業者の設定値を確認する事が出来ます。
まぁどうせまた教えたリファレンスのリンク先なんて見ないんでしょうけど・・・
教えたリファレンスへのリンクを見て、その中で「分からない所があったので教えて下さい」なら理解出来ますが、 また「他サイトのサンプルコードをコピペして試してみたら上手く行きませんでした、色々調べても分からなかったので教えて下さい」であれば未だ理解出来ます、
何故かひたすら他サイトで紹介されているピンポイントのサンプルコードを持ってきて、
「試してもいませんが、これを入れればいいんですか?」というような感じでした。
私が家庭教師として契約してOne-on-oneで教える人間として雇われているのであればそれでも良いと思いますが・・・ 厳しい事を言いますが、リファンレスを全く見る気が無い人はプログラミングが出来るようになるとは思えません、 なぜなら全ての関数を覚えない限り(全ての関数を暗記する必要はありません)リファレンスは一生調べる必要があるからです。

他Webサイトの事はそのWebサイト管理人に問い合わせて下さい。
Iの戦士さんのWebサイトに記載されている内容については、そのWebサイトを運営しているIの戦士さんに問い合わせて下さい。
なぜ私に問い合わせるのか皆目検討がつきません。
2013年1月15日火曜日 MetaTrader4の使い方(3)」にあるJPG化したサンプルをいただきたかったのですが、 ダウンロードできません122916174846216....XML 失敗-アクセスできませんとなります。閉鎖されたのでしょうか? 他Webサイトの事はそのWebサイト管理人に問い合わせて下さい。
かぼすの投資日記のブログに記載されている内容については、そのブログの管理人のかぼすさんに問い合わせて下さい。
「他Webサイトの事はそのWebサイトの管理人に問い合わせて下さい。」の注意書きを無視してまで、なぜ私に問い合わせるのか皆目検討がつきません。

ネタか何かでしょうか? 私の頭がおかしいだけなのでしょうか?私が仲介して代理で他Webサイトの管理人に問い合わせなければならないのでしょうか?
それとも「Webサイトとブログは別物だから他ブログならOK」という理屈でしょうか?そもそもWebサイト毎に管理人が存在する事を理解していますでしょうか? もしかして全てのWebサイトはGoogleが作成していると思っているのでしょうか?ちなみにこのサイトはfc2ドメインを使用していますが、 fc2がこのWebサイトを作成・管理しているわけではありません、fc2はサーバーを提供しているだけです。 当然fc2にこのサイトについて問い合わせても、そのサイトの管理人に問い合わせて下さいと言われるだけです。 ここまでの内容で何を言っているのか理解できていますでしょうか?
それからURLとはページタイトルの事ではありません。

スポンサーリンク

スポンサーリンク
検索
カスタム検索
MQL4リファレンスツリー
スポンサーリンク
スポンサーリンク


Copyright ©2015 MT4でEA自作しちゃお〜 All Rights Reserved.


Top

inserted by FC2 system