質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
MQL4

MQL4とは、MT4(MetaTrader4)で用いられるプログラム言語です。MT4は無料で使えるチャートソフトあり、MQL4を使うことで分析ツールのオリジナルスクリプトの作成ができます。

Q&A

解決済

1回答

461閲覧

OnChartEvent関数で取得した値を引き渡したい

excelrose

総合スコア1

MQL4

MQL4とは、MT4(MetaTrader4)で用いられるプログラム言語です。MT4は無料で使えるチャートソフトあり、MQL4を使うことで分析ツールのオリジナルスクリプトの作成ができます。

0グッド

0クリップ

投稿2022/02/10 15:26

OnChartEvent関数を使用して取得した値をstart()に引き渡したいです。

int start(){
double spread = MarketInfo(Symbol(),MODE_SPREAD)*1;
Print(Price100 - spread); ←このような計算がしたいです
}
void OnChartEvent(const int id,
const long &lparam,
const double &dparam,
const string &sparam)

value = sparam;
target = "Fibo";
pos = StringFind(value, target);
if(pos!=-1)
{
Price000 = ObjectGetDouble(0,sparam,OBJPROP_PRICE,0); //100%の価格を取得
Price100 = ObjectGetDouble(0,sparam,OBJPROP_PRICE,1); //0%の価格を取得
double Price050 =Price000+(Price100 - Price000); //50%の価格を算出
double Price200 =Price100+((Price000 - Price100)*2); //50%の価格を算出
}

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

ファンクションの外で変数定義を行えば各ファンクションで参照(使用)できます。
例えば、
double Price100;
int start(){ .........

また、このままのソースではないと思いますが、使用する変数は全て定義する必要があると思います。
double Price100, Price000;
int pos;
string value, target;

もう一つ気になる操作があります。
OnChartEventで、sparamをもとに処理を行っていますが、
sparamは、発生するイベントに固有の値を持つと思います。
本来、関係するイベントか調べてからStringFindを行うべきだと思うのですが。

投稿2022/02/10 18:35

編集2022/02/10 18:44
yu-ima

総合スコア249

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

excelrose

2022/02/11 00:02

すごい!!!できました!!! 的確なアドバイス、感謝します。 イベントのところを書くのを忘れておりました。(しっかり見て頂いて感謝しております)
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問