MQL4、MQL5に関する初心者からの質問、アルゴリズムやコードに関するヘルプ、ディスカッションなど。 - ページ 1230 1...122312241225122612271228122912301231123212331234123512361237...1953 新しいコメント Valeriy Yastremskiy 2020.08.12 16:58 #12291 Igor Makanu:あなたの例には多くの誤りがあります。があるはずです。ここでは価格は正規化されていません OrderSend(Symbol(),OP_BUY,Lots,Ask,3,Bid-SL*Point,Bid+TP*Point,"My order",MagicNumber,0,clrGreen);ここで、条件がfalseの場合、なぜOnTick()からの終了が必要なのか、そのロジックが理解できないのです。おそらく、このままループを続けて、単純に注文の数を計算 すべきなのでしょう。あなたの例はロジックが非常にシンプルなので、他のタスクのために修正するのは難しいのでは......。とか、「この人、トレールしたいんだろうな」とか。 まだ早いよ)))一度にたくさん出るでしょう。あまり意味がないですね))))そして、そう、もちろんすべてのsendorderの正規化のための計算の後が必要です)))) そこで、注文による条件として、我々の魔法で現在の楽器に注文がなければ、注文を入れるのです。そして、その条件は閉じるまで注文に到達しない。 PSが気に入らない状態 そうでない場合 Galim_V 2020.08.12 19:20 #12292 ご挨拶、式の読み方について教えてください。 string sym=(symbol==NULL ? Symbol() : symbol); Vladimir Pastushak 2020.08.12 19:29 #12293 Galim_V:はじめまして、この表現の正しい読み方を教えてください。 もしsymbolが 空であれば、現在のシンボルの値をsym変数に 返します。 Galim_V 2020.08.12 19:31 #12294 Vladimir Pastushak:もしsymbol変数が空なら、現在のチャートシンボルの値をsym変数に 返し、空でないなら、その値をsym変数に渡します ありがとうございました。 Alexey Viktorov 2020.08.12 19:33 #12295 Galim_V:はじめまして、この表現の正しい読み方を教えてください。symbolがNULLの場合はSymbol()を読み込み、それ以外の場合は変数に代入 します。このエントリに相当string sym; if(symbol == NULL) sym = Symbol(); else sym = symbol; 違いは行数だけです。 Galim_V 2020.08.13 05:21 #12296 Alexey Viktorov:Symbol()がNULLの場合、変数を代入し、それ以外の場合は値を 代入します。このエントリーに相当するもの 違いは行数だけです。 ありがとうございました。 Alexey Belyakov 2020.08.13 09:48 #12297 Valeriy Yastremskiy:どのようなその後、例えば、あなたがウィンドウを開いていないEurobucksが、Eurofuntは、あなたが選択した順序のシンボルを比較すると、真の場合は、Eurobucksに注文があり、我々のマジック、その後Onstart関数から戻り、そうでない場合は、Eurobucksに注文が設定されますが、クロズ、高、Asc、入札は、これらのインスタンスの入札と尋ねるので、受注を開く際にエラーになります別のEurofuntの。また、Symbol()はカレントウィンドウのシンボルを返すので、エラーは発生しません。メタエディタからテンプレートを使用することができます。左上に「新規作成」ボタンがあります。OnStart関数はまだ使われていますが、それは正しくなく、OnStartはスクリプトのためのものです。正しいテンプレートです。正しいコードです。注文のコメントが抜けていますし、コードにマジコンが計上されていません。冒頭の警告の中に、Implicit type conversion of number to string(数値から文字列への暗黙の型変換)と記されています!!! はい、その通りに動作します。ありがとうございます!!! テンプレートで作成することがそんなに重要だとは知りませんでした。さすがOnStart。基本構造を間違えていました。まあ、これから知ることになるんだけどね。 Valeriy Yastremskiy 2020.08.13 11:35 #12298 Alexey Belyakov:はい、その通りに動作します。ありがとうございます!(笑)。テンプレートから作成することがそんなに重要だとは知りませんでした。OnStart、確かにそうですね。基本構造を間違えていました。まあ、これから知ることになるんですけどね。 まあ、それと、オーダーを扱う機能に入れるものは、すべて正規化すること。小数点以下が6桁の場合は、発注されずにエラーとなります。 KimIVから便利な機能のみ」でトピックを検索するか、KodoBaseで調べてみてください。 Igor Makanuは、より多くのエラーを上に書きました。そして、キムの機能は、まず本当に便利です。コメントは明確です。 Dmitrii Solovei 2020.08.13 12:13 #12299 よろしくお願いします。なぜテストではエラーが出るのか - "" 2020.08.13 13:09:11.393 2018.08.01 00:00:123456 GBPUSD,M30: array out of range in '123456.mq4' (59,13) "" ?・・・? #property link "2020年、グレイ。" #プロパティリンク "uirnP0215@mail.ru" #property version "1.00" #プロパティの厳密さ input double lots = 0.01; input int Magic = 1546; double ibufUP[]。 double ibufDN[]。 //+------------------------------------------------------------------+ //| 専門家による初期化機能 //+------------------------------------------------------------------+ int OnInit() { return(INIT_SUCCEEDED); } //+------------------------------------------------------------------+ //| 専門家による初期化関数 //+------------------------------------------------------------------+ void OnDeinit(const int reason) { //--- } //+------------------------------------------------------------------+ //| エキスパートティック機能 //+------------------------------------------------------------------+ void OnTick() { CountFractals()。 if(ibufUP[3]>0)とする。 { if(!OrderSend(Symbol(), OP_SELL, lots, Bid, 30, 0, 0, "", Magic, 0, clrRed)) Print("Failed to open sell order"); } if(ibufDN[3]>0)とする。 { if(!OrderSend(Symbol(), OP_BUY, lots, Bid, 30, 0, 0, "", Magic, 0, clrGreen)) Print("Failed to openBuy order"); } } //+------------------------------------------------------------------+ //+------------------------------------------------------------------+ void CountFractals() { for(int i=150; i>=0; i--) { ibufUP[i] = iFractals(NULL, 0, MODE_UPPER, i); ibufDN[i] = iFractals(NULL, 0, MODE_LOWER, i); } } //+------------------------------------------------------------------+ Any questions from newcomers どんな新人の質問でも、フォーラムを乱雑にしないように。プロフェッショナルは、通り過ぎないでください。Nowhere without you - PROBLEM Sayberix 2020.08.13 16:25 #12300 Madmas:よろしくお願いします。なぜテストではエラーが出るのか - "" 2020.08.13 13:09:11.393 2018.08.01 00:00:123456 GBPUSD,M30: array out of range in '123456.mq4' (59,13) "" ?・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 18#property link "2020年、グレイ。"#プロパティリンク "uirnP0215@mail.ru"#property version "1.00"#プロパティの厳密さinput double lots = 0.01;input int Magic = 1546;double ibufUP[]。double ibufDN[]。//+------------------------------------------------------------------+//| 専門家による初期化機能//+------------------------------------------------------------------+int OnInit(){return(INIT_SUCCEEDED);}//+------------------------------------------------------------------+//| 専門家による初期化関数//+------------------------------------------------------------------+void OnDeinit(const int reason){//---}//+------------------------------------------------------------------+//| エキスパートティック機能//+------------------------------------------------------------------+void OnTick(){CountFractals()。if(ibufUP[3]>0)とする。{if(!OrderSend(Symbol(), OP_SELL, lots, Bid, 30, 0, 0, "", Magic, 0, clrRed))Print("Failed to open sell order");}if(ibufDN[3]>0)とする。{if(!OrderSend(Symbol(), OP_BUY, lots, Bid, 30, 0, 0, "", Magic, 0, clrGreen))Print("Failed to openBuy order");}}//+------------------------------------------------------------------+//+------------------------------------------------------------------+void CountFractals(){for(int i=150; i>=0; i--){ibufUP[i] = iFractals(NULL, 0, MODE_UPPER, i);ibufDN[i] = iFractals(NULL, 0, MODE_LOWER, i);}}//+------------------------------------------------------------------+ 手始めにCountFractals 関数でデクリメントカウンタを追加して ください。 1...122312241225122612271228122912301231123212331234123512361237...1953 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
あなたの例には多くの誤りがあります。
があるはずです。
ここでは価格は正規化されていません OrderSend(Symbol(),OP_BUY,Lots,Ask,3,Bid-SL*Point,Bid+TP*Point,"My order",MagicNumber,0,clrGreen);
ここで、条件がfalseの場合、なぜOnTick()からの終了が必要なのか、そのロジックが理解できないのです。
おそらく、このままループを続けて、単純に注文の数を計算 すべきなのでしょう。
あなたの例はロジックが非常にシンプルなので、他のタスクのために修正するのは難しいのでは......。とか、「この人、トレールしたいんだろうな」とか。
まだ早いよ)))一度にたくさん出るでしょう。あまり意味がないですね))))そして、そう、もちろんすべてのsendorderの正規化のための計算の後が必要です))))
そこで、注文による条件として、我々の魔法で現在の楽器に注文がなければ、注文を入れるのです。そして、その条件は閉じるまで注文に到達しない。
PSが気に入らない状態 そうでない場合
ご挨拶、式の読み方について教えてください。
はじめまして、この表現の正しい読み方を教えてください。
もしsymbolが 空であれば、現在のシンボルの値をsym変数に 返します。
もしsymbol変数が空なら、現在のチャートシンボルの値をsym変数に 返し、空でないなら、その値をsym変数に渡します
ありがとうございました。
はじめまして、この表現の正しい読み方を教えてください。
symbolがNULLの場合はSymbol()を読み込み、それ以外の場合は変数に代入 します。
このエントリに相当
違いは行数だけです。Symbol()がNULLの場合、変数を代入し、それ以外の場合は値を 代入します。
このエントリーに相当するもの
違いは行数だけです。ありがとうございました。
どのようなその後、例えば、あなたがウィンドウを開いていないEurobucksが、Eurofuntは、あなたが選択した順序のシンボルを比較すると、真の場合は、Eurobucksに注文があり、我々のマジック、その後Onstart関数から戻り、そうでない場合は、Eurobucksに注文が設定されますが、クロズ、高、Asc、入札は、これらのインスタンスの入札と尋ねるので、受注を開く際にエラーになります別のEurofuntの。また、Symbol()はカレントウィンドウのシンボルを返すので、エラーは発生しません。
メタエディタからテンプレートを使用することができます。左上に「新規作成」ボタンがあります。OnStart関数はまだ使われていますが、それは正しくなく、OnStartはスクリプトのためのものです。正しいテンプレートです。
正しいコードです。注文のコメントが抜けていますし、コードにマジコンが計上されていません。冒頭の警告の中に、Implicit type conversion of number to string(数値から文字列への暗黙の型変換)と記されています!!!
はい、その通りに動作します。ありがとうございます!!!
テンプレートで作成することがそんなに重要だとは知りませんでした。さすがOnStart。基本構造を間違えていました。まあ、これから知ることになるんだけどね。
はい、その通りに動作します。ありがとうございます!(笑)。
テンプレートから作成することがそんなに重要だとは知りませんでした。OnStart、確かにそうですね。基本構造を間違えていました。まあ、これから知ることになるんですけどね。
まあ、それと、オーダーを扱う機能に入れるものは、すべて正規化すること。小数点以下が6桁の場合は、発注されずにエラーとなります。
KimIVから便利な機能のみ」でトピックを検索するか、KodoBaseで調べてみてください。
Igor Makanuは、より多くのエラーを上に書きました。そして、キムの機能は、まず本当に便利です。コメントは明確です。
よろしくお願いします。なぜテストではエラーが出るのか - "" 2020.08.13 13:09:11.393 2018.08.01 00:00:123456 GBPUSD,M30: array out of range in '123456.mq4' (59,13) "" ?・・・?
#property link "2020年、グレイ。"
#プロパティリンク "uirnP0215@mail.ru"
#property version "1.00"
#プロパティの厳密さ
input double lots = 0.01;
input int Magic = 1546;
double ibufUP[]。
double ibufDN[]。
//+------------------------------------------------------------------+
//| 専門家による初期化機能
//+------------------------------------------------------------------+
int OnInit()
{
return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
//| 専門家による初期化関数
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
{
//---
}
//+------------------------------------------------------------------+
//| エキスパートティック機能
//+------------------------------------------------------------------+
void OnTick()
{
CountFractals()。
if(ibufUP[3]>0)とする。
{
if(!OrderSend(Symbol(), OP_SELL, lots, Bid, 30, 0, 0, "", Magic, 0, clrRed))
Print("Failed to open sell order");
}
if(ibufDN[3]>0)とする。
{
if(!OrderSend(Symbol(), OP_BUY, lots, Bid, 30, 0, 0, "", Magic, 0, clrGreen))
Print("Failed to openBuy order");
}
}
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
void CountFractals()
{
for(int i=150; i>=0; i--)
{
ibufUP[i] = iFractals(NULL, 0, MODE_UPPER, i);
ibufDN[i] = iFractals(NULL, 0, MODE_LOWER, i);
}
}
//+------------------------------------------------------------------+
よろしくお願いします。なぜテストではエラーが出るのか - "" 2020.08.13 13:09:11.393 2018.08.01 00:00:123456 GBPUSD,M30: array out of range in '123456.mq4' (59,13) "" ?・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 18
#property link "2020年、グレイ。"
#プロパティリンク "uirnP0215@mail.ru"
#property version "1.00"
#プロパティの厳密さ
input double lots = 0.01;
input int Magic = 1546;
double ibufUP[]。
double ibufDN[]。
//+------------------------------------------------------------------+
//| 専門家による初期化機能
//+------------------------------------------------------------------+
int OnInit()
{
return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
//| 専門家による初期化関数
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
{
//---
}
//+------------------------------------------------------------------+
//| エキスパートティック機能
//+------------------------------------------------------------------+
void OnTick()
{
CountFractals()。
if(ibufUP[3]>0)とする。
{
if(!OrderSend(Symbol(), OP_SELL, lots, Bid, 30, 0, 0, "", Magic, 0, clrRed))
Print("Failed to open sell order");
}
if(ibufDN[3]>0)とする。
{
if(!OrderSend(Symbol(), OP_BUY, lots, Bid, 30, 0, 0, "", Magic, 0, clrGreen))
Print("Failed to openBuy order");
}
}
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
void CountFractals()
{
for(int i=150; i>=0; i--)
{
ibufUP[i] = iFractals(NULL, 0, MODE_UPPER, i);
ibufDN[i] = iFractals(NULL, 0, MODE_LOWER, i);
}
}
//+------------------------------------------------------------------+
手始めにCountFractals 関数でデクリメントカウンタを追加して ください。