[アーカイブ!】どんなルーキーの質問でも、フォーラムを散らかさないように。プロフェッショナルの皆さん、通り過ぎないでください。あなたなしではどこにも行けない - 2. - ページ 81 1...747576777879808182838485868788...537 新しいコメント Nameless 2011.02.08 20:47 #801 extern bool BUY = true; extern int Magic = 0; extern double Lot = 0.1; extern int takeprofit = 0; extern int stoploss = 0; extern int slippage = 3; double SL,TP; int init(){ return(0); }. int start() { if (BUY) { if (takeprofit!=0) TP =NormalizeDouble(Ask + takeprofit*Point,Digits); else TP=0; if (stoploss!=0) SL = NormalizeDouble(Ask - stoploss*Point,Digits); else SL=0; 。 BUY=false; }. return(0); }. void OPENORDER(string ord) { int error; while (true) { error=true; if (ord=="Buy") error=OrderSend(Symbol(),OP_BUY, Lot,NormalizeDouble(Ask,Digits),slippage,SL,TP,",Magic,0){BUY = false;}. } return; } [Archive!] Any rookie question, [アーカイブ!】どんなエキスパートやインジケーターでも無料で書きます。 初心者の方からの質問 MQL4 MT4 MetaTrader Nameless 2011.02.08 20:48 #802 nemo811: 例を挙げてください。私はまだ勉強中で、フラグを立てるという作業に直面していないのです。) この変数を false に変更するだけで、次のティックで EA はこのブロックに入らず、再起動するまで何も開きません。 Igor Makanu 2011.02.08 20:48 #803 nemo811: EAの条件(注文を出すなど)を1ティックごとに繰り返すのではなく、1回だけ実行できるようにするにはどうしたらよいか、アドバイスをお願いします。この場合、EA はポジションを閉じるときに、新しいポジションを開くべきではありません。やってみたが、意図したとおりに動かない。 ありがとうございました。 オーダーチケットの保存先の変数名をエラーにしたのはなぜですか? if (ord=="Buy") error=OrderSend(Symbol(),OP_BUY,Lot,NormalizeDouble(Ask,Digits),slippage,SL,TP,"",Magic,0){BUY = false;}; }. OrderSend()を読むと、勝手に疑問が消えると思うのですが、私ならこんな風に書きます。 void OPENORDER(string ord) { int ticket = -1; while (ticket<0) {ticket=OrderSend(Symbol(),OP_BUY, Lot,NormalizeDouble(Ask,Digits),slippage,SL,TP,"",Magic,0); sleep(500); } return; } Nameless 2011.02.08 20:55 #804 IgorM: もしかしたら、私が以前、問題提起をしたのを読んでくれたのかもしれません。解決策は見つかったようですが、mql()で文字列を扱う方法が本には載っていません。 行単位で数字を取り出すには? Владимир Тезис 2011.02.08 21:01 #805 NameLess: もしかしたら、私が以前、問題提起をしたのを読んでくれたのかもしれません。解決策は見つかったようですが、mql()で文字列を扱う方法が本には載っていません。 行単位で数字を取り出すには? MQL4文字列関数の実験用スクリプトを作成 - こちらを参照https://docs.mql4.com/ru/strings Roma 2011.02.08 21:02 #806 ゼロ どのようなルールで、例えば? Nameless 2011.02.08 21:03 #807 drknn: MQL4の文字列関数を実験するスクリプトを作成する - こちらを参照https://docs.mql4.com/ru/strings/StringSubstr ありがとうございました。 Igor Makanu 2011.02.08 21:07 #808 NameLess: もしかしたら、少し前に私が問題を指摘したのを読んでくれたのかもしれませんね。これで解決しそうなものですが、本にはmqlで文字列を扱う方法が載っていないんですよね( 数字の羅列から数字を取り出すには? で、数値を文字列に変換するhttps://docs.mql4.com/ru/convert/DoubleToStr 文字列の一部を切り取るhttps://docs.mql4.com/ru/strings/StringSubstr 始めからhttps://docs.mql4.com/ru/strings/StringLen を実数型に変換し直すhttps://docs.mql4.com/ru/convert/StrToDouble というのは、文字列を扱うのに必要なのはそれだけなので、たぶんStrToDouble()で十分でしょう。 もう一つの方法は、実数のx乗を10倍して、その結果をint型に与えることです - 私が間違っていなければ、丸めは行われません。 Nameless 2011.02.08 21:10 #809 IgorM: 数値を文字列に変換するhttps://docs.mql4.com/ru/convert/DoubleToStr 文字列https://docs.mql4.com/ru/strings/StringSubstr の一部をhttps://docs.mql4.com/ru/strings/StringLen の先頭から切り取る。 で、すべてを実数型に変換して戻すhttps://docs.mql4.com/ru/convert/StrToDouble というのは、文字列を扱うのに必要なのは、StrToDouble()で十分なのかもしれません。 しかし、この「醜い方法」では、丸めずに切り捨ててしまいます。 別の方法として、実数に 10 の x 乗を掛けて、その結果を int 型に渡します - 私が間違っていなければ、丸めはしません。 は、少なくとも*切り取る*、数字はインジケータから文字列にしか取り出せないので...アドバイスありがとうございます、実験してみますね) [Удален] 2011.02.08 21:36 #810 IgorM: NameLess です。 ありがとうございました。フラグを立てるロジックと、注文 数を返す機能は理解できました。でも、注文が終了する瞬間も気になる。フラグ条件が再度注文を出そうとしているように見えますが、注文番号を返す関数では注文が1つ少ないと言って、ポジションの開設も初期化しています。見落としがあったら訂正してください。 1...747576777879808182838485868788...537 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
extern bool BUY = true;
extern int Magic = 0;
extern double Lot = 0.1;
extern int takeprofit = 0;
extern int stoploss = 0;
extern int slippage = 3;
double SL,TP;
int init(){
return(0);
}.
int start()
{
if (BUY)
{
if (takeprofit!=0) TP =NormalizeDouble(Ask + takeprofit*Point,Digits); else TP=0;
if (stoploss!=0) SL = NormalizeDouble(Ask - stoploss*Point,Digits); else SL=0;
。
BUY=false;
}.
return(0);
}.
void OPENORDER(string ord)
{
int error;
while (true)
{ error=true;
if (ord=="Buy") error=OrderSend(Symbol(),OP_BUY, Lot,NormalizeDouble(Ask,Digits),slippage,SL,TP,",Magic,0){BUY = false;}.
}
return;
}
例を挙げてください。私はまだ勉強中で、フラグを立てるという作業に直面していないのです。)
EAの条件(注文を出すなど)を1ティックごとに繰り返すのではなく、1回だけ実行できるようにするにはどうしたらよいか、アドバイスをお願いします。この場合、EA はポジションを閉じるときに、新しいポジションを開くべきではありません。やってみたが、意図したとおりに動かない。
ありがとうございました。オーダーチケットの保存先の変数名をエラーにしたのはなぜですか?
if (ord=="Buy") error=OrderSend(Symbol(),OP_BUY,Lot,NormalizeDouble(Ask,Digits),slippage,SL,TP,"",Magic,0){BUY = false;}; }.
OrderSend()を読むと、勝手に疑問が消えると思うのですが、私ならこんな風に書きます。
もしかしたら、私が以前、問題提起をしたのを読んでくれたのかもしれません。解決策は見つかったようですが、mql()で文字列を扱う方法が本には載っていません。
行単位で数字を取り出すには?
もしかしたら、私が以前、問題提起をしたのを読んでくれたのかもしれません。解決策は見つかったようですが、mql()で文字列を扱う方法が本には載っていません。
行単位で数字を取り出すには?
MQL4文字列関数の実験用スクリプトを作成 - こちらを参照https://docs.mql4.com/ru/strings
ゼロ
どのようなルールで、例えば?
MQL4の文字列関数を実験するスクリプトを作成する - こちらを参照https://docs.mql4.com/ru/strings/StringSubstr
ありがとうございました。
もしかしたら、少し前に私が問題を指摘したのを読んでくれたのかもしれませんね。これで解決しそうなものですが、本にはmqlで文字列を扱う方法が載っていないんですよね(
数字の羅列から数字を取り出すには?
で、数値を文字列に変換するhttps://docs.mql4.com/ru/convert/DoubleToStr
文字列の一部を切り取るhttps://docs.mql4.com/ru/strings/StringSubstr 始めからhttps://docs.mql4.com/ru/strings/StringLen
を実数型に変換し直すhttps://docs.mql4.com/ru/convert/StrToDouble
というのは、文字列を扱うのに必要なのはそれだけなので、たぶんStrToDouble()で十分でしょう。
もう一つの方法は、実数のx乗を10倍して、その結果をint型に与えることです - 私が間違っていなければ、丸めは行われません。
数値を文字列に変換するhttps://docs.mql4.com/ru/convert/DoubleToStr
文字列https://docs.mql4.com/ru/strings/StringSubstr の一部をhttps://docs.mql4.com/ru/strings/StringLen の先頭から切り取る。
で、すべてを実数型に変換して戻すhttps://docs.mql4.com/ru/convert/StrToDouble
というのは、文字列を扱うのに必要なのは、StrToDouble()で十分なのかもしれません。
しかし、この「醜い方法」では、丸めずに切り捨ててしまいます。 別の方法として、実数に 10 の x 乗を掛けて、その結果を int 型に渡します - 私が間違っていなければ、丸めはしません。
は、少なくとも*切り取る*、数字はインジケータから文字列にしか取り出せないので...アドバイスありがとうございます、実験してみますね)
IgorM:
NameLess です。