どんな新人の質問でも、フォーラムを乱雑にしないように。プロフェッショナルは、通り過ぎないでください。Nowhere without you - 6. - ページ 366 1...359360361362363364365366367368369370371372373...1178 新しいコメント 削除済み 2013.12.24 11:11 #3651 vadynik: 価格から一定のポイント数で注文を閉じようとしているのですが、バーチャルストップを作 ろうとしています...。 なぜなら、コードでは相場を聞いて いるわけではなく、カウントしているだけなので、この行は ((NormalizeDouble(priceopen,Digits)>=(NormalizeDouble(priceopen,Digits)-30*Point))||(NormalizeDouble(priceopen,Digits) <=(NormalizeDouble(priceopen,Digits) + 25*Point)) )) は常に真で、演算子の本体が実行されます。 TarasBY 2013.12.24 11:12 #3652 vadynik: なぜ次のティックですぐに注文が閉じるのか、もう頭が沸騰しそうです。価格から何ピップスで注文を閉じるか、仮想ストップみたいな ものを作りたいのですが...。 値をプリントアウト する priceopen ... 削除済み 2013.12.24 11:23 #3653 vadynik: なぜ次のティックですぐに注文が閉じられるかというと、価格から一定のポイント数で注文を閉じようとしているからで、バーチャルストップのようなもので、もう頭が 沸騰しそうです...。 これは、この行で次のような計算をした場合と同じになります。 if ((100 >=100-30)||(100 <=100 + 25))) { Print(100) です。 オーダークローズ(OrderTicket(),OrderLots(),Bid,50,Blue) ; } わかるか?) Vadim Pyankov 2013.12.24 11:37 #3654 Ekburg: この行で次のような計算をした場合のようです。 if ((100 >=100-30)||(100 <=100 + 25))) { Print(100) です。 オーダークローズ(OrderTicket(),OrderLots(),Bid,50,Blue) ; } ほらね(笑) そう、ロジックが浮いているのです)) 削除済み 2013.12.24 11:56 #3655 vadynik: そう、ロジックが泳いだのです))) そうなりますね...))) 最初は、みんなそうだったと思います...。) Vadim Pyankov 2013.12.24 12:09 #3656 Ekburg: なりますね...))))最初は、誰にでもあることだと思います。) ええ、起動が難しいです)ありがとうございました。 NormalizeDouble(priceopen-30*Point,Digits)>=Bid そういうことなんです。 削除済み 2013.12.24 17:51 #3657 MLQ4で「何らかの条件を満たした上で、手動確認を求める」という書き方を教えてください。 Alekseu Fedotov 2013.12.24 18:20 #3658 Trader7777: MLQ4で「何らかの条件を満たした上で、手動確認を求める」という書き方を教えてください。 MessageBox関数は、メッセージボックスの作成と表示、およびその制御を行う関数です。 削除済み 2013.12.24 18:31 #3659 r772ra: MessageBox関数は、メッセージボックスの作成、表示、管理を 行います。 ありがとうございます、勉強させていただきます...) Alekseu Fedotov 2013.12.24 18:38 #3660 Trader7777: ありがとうございます、検討させていただきます...) 例 //+------------------------------------------------------------------+ //| проверка(MessageBox).mq4 | //| Copyright 2013, MetaQuotes Software Corp. | //| http://www.metaquotes.net | //+------------------------------------------------------------------+ #property copyright "Copyright 2013, MetaQuotes Software Corp." #property link "http://www.metaquotes.net" extern int stoploss = 0, //уровень выставления SL, если 0, то SL не выставляется takeprofit = 0, //уровень выставления TP, если 0, то TP не выставляется Magic = 0; //уникальный номер ордера extern double Lot = 0.01; //объем ордера extern int slippage = 0; //Максимально допустимое отклонение цены для рыночных ордеров double SL,TP; #include <WinUser32.mqh> //+------------------------------------------------------------------+ //| script program start function | //+------------------------------------------------------------------+ int start() { //---- if (MessageBox (" открыть ордер BUY??? ","Скрипт интересуется:",1)==1) { if (takeprofit!=0) TP = NormalizeDouble(Ask + takeprofit*Point,Digits); else TP=0; if (stoploss!=0) SL = NormalizeDouble(Ask - stoploss*Point,Digits); else SL=0; OPENORDER ("Buy"); } //---- return(0); } //+------------------------------------------------------------------+ void OPENORDER(string ord) { int error,err; while (true) { error=true; if (ord=="Buy" ) error=OrderSend(Symbol(),OP_BUY, Lot,NormalizeDouble(Ask,Digits),slippage,SL,TP,"BUY",Magic,0,Blue); if (ord=="Sell") error=OrderSend(Symbol(),OP_SELL,Lot,NormalizeDouble(Bid,Digits),slippage,SL,TP,"SELL",Magic,0,Red); if (error==-1) //неудачная покупка OK { ShowERROR(); err++;Sleep(2000);RefreshRates(); } if (error || err >10) return; } return; } //-------------------------------------------------------------------- void ShowERROR() { int err=GetLastError(); switch ( err ) { case 1: return; case 2: Alert("Нет связи с торговым сервером ",Symbol());return; case 3: Alert("Error неправильные параметры ",Symbol());return; case 130: Alert("Error близкие стопы Ticket ",Symbol());return; case 134: Alert("Недостаточно денег ",Symbol());return; case 146: Alert("Error Подсистема торговли занята ",Symbol());return; case 129: Alert("Error Неправильная цена ",Symbol());return; case 131: Alert("Error Неправильный объем ",Symbol());return; case 4200:Alert("Error Объект уже существует ",Symbol());return; default: Alert("Error " ,err," ",Symbol());return; } } //-------------------------------------------------------------------- 1...359360361362363364365366367368369370371372373...1178 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
価格から一定のポイント数で注文を閉じようとしているのですが、バーチャルストップを作 ろうとしています...。
なぜなら、コードでは相場を聞いて いるわけではなく、カウントしているだけなので、この行は
((NormalizeDouble(priceopen,Digits)>=(NormalizeDouble(priceopen,Digits)-30*Point))||(NormalizeDouble(priceopen,Digits) <=(NormalizeDouble(priceopen,Digits) + 25*Point)) ))
は常に真で、演算子の本体が実行されます。
なぜ次のティックですぐに注文が閉じるのか、もう頭が沸騰しそうです。価格から何ピップスで注文を閉じるか、仮想ストップみたいな ものを作りたいのですが...。
値をプリントアウト する
...
なぜ次のティックですぐに注文が閉じられるかというと、価格から一定のポイント数で注文を閉じようとしているからで、バーチャルストップのようなもので、もう頭が 沸騰しそうです...。
これは、この行で次のような計算をした場合と同じになります。
if ((100 >=100-30)||(100 <=100 + 25)))
{
Print(100) です。
オーダークローズ(OrderTicket(),OrderLots(),Bid,50,Blue) ;
}
わかるか?)
この行で次のような計算をした場合のようです。
if ((100 >=100-30)||(100 <=100 + 25)))
{
Print(100) です。
オーダークローズ(OrderTicket(),OrderLots(),Bid,50,Blue) ;
}
ほらね(笑)
そう、ロジックが浮いているのです))
そう、ロジックが泳いだのです)))
そうなりますね...))) 最初は、みんなそうだったと思います...。)
なりますね...))))最初は、誰にでもあることだと思います。)
ええ、起動が難しいです)ありがとうございました。
そういうことなんです。
MLQ4で「何らかの条件を満たした上で、手動確認を求める」という書き方を教えてください。
MessageBox関数は、メッセージボックスの作成と表示、およびその制御を行う関数です。
MessageBox関数は、メッセージボックスの作成、表示、管理を 行います。
ありがとうございます、勉強させていただきます...)
ありがとうございます、検討させていただきます...)
例