初心者の方からの質問 MQL5 MT5 MetaTrader 5 - ページ 722 1...715716717718719720721722723724725726727728729...1504 新しいコメント Artyom Trishkin 2017.01.21 14:23 #7211 Alexey Viktorov: ええ、まあ...そんなブローカーはどこにあるんだろう...。リンク先を教えてください。 そうなんです。買いが買値で決済される Alexey Viktorov 2017.01.21 14:26 #7212 私の不注意をお詫びします。開く」と書いて「ひらく」と読む...。 Konstantin Bragin 2017.01.22 17:45 #7213 こんにちは。 質問です。 買い保留ができない理由を教えてください。 request.price =SymbolInfoDouble(Symbol(),SYMBOL_ASK)+(offset)*point。 offset=1 の場合、 エラーが出ます。 failed buy stop 0.10 AUDNZD.m at1.03748 [Invalid price],i.esmall level price (in my case). その直後に同じ「執行命令」が出た場合 request.price = SymbolInfoDouble(Symbol(), SYMBOL_ASK) はすべて正常に動作する(つまり、注文が行われる)。 1.03747で 0.10の買い注文 [#2 buy 0.10 AUDNZD.m at 1.03747]. 保留中の注文(1.03748)のリクエストが受け付けられない、 つまり1.03747では発注されるのに、1.03748では発注されないのはなぜでしょうか?(SYMBOL_ASKは 、スプレッドとオフセットを考慮するので- ポイントで、注文を配置するための現在の価格からのオフセットは、1増加します)。 しかし、オフセット=100では、保留中のBUY_STOP価格=1.03847 - それはすでに動作します。 ありがとうございます。 Questions from Beginners MQL5 Trailing stop Question for experienced programmers Andrey F. Zelinsky 2017.01.22 17:49 #7214 Konstantin_78:こんにちは。 質問です。 買い保留ができない理由を教えてください。 request.price =SymbolInfoDouble(Symbol(),SYMBOL_ASK)+(offset)*point。 offset=1 の場合、 エラーが出ます。 失敗した買いストップ 0.10 AUDNZD.m at1.03748 [無効な価格]、すなわち小さな価格レベル(私の場合)。 の直後に「実行する命令」を設定すると、その命令は実行されます。 request.price = SymbolInfoDouble(Symbol(), SYMBOL_ASK) はすべて正常に動作する(つまり、注文が行われる)。 1.03747で 0.10の買い注文 [#2 buy 0.10 AUDNZD.m at 1.03747]. 保留中の注文(1.03748)のリクエストが受け付けられない、つまり1.03747では注文が出ますが、1.03748では注文が 小さいのはなぜでしょうか? しかし、offset=100: 保留BUY_STOP価格=1.03847であれば、すでに動作しています。 ありがとうございます。あなたはすでに自分の質問に答えています。各シンボルには「ストプレレベル」(現在価格から注文を出すまでの必要最小限の距離)というパラメータがあり、それぞれ独自の値を持ち、取引条件に設定されています。 Konstantin Bragin 2017.01.22 18:53 #7215 Andrey F. Zelinsky: Вы же сами и ответили на свой вопрос.Есть такой параметр stoplevel -- минимально необходимое расстояние от текущей цены до цены установки отложенного ордера -- для каждого инструмента своё значение и задаётся в торговых условиях と書くのが妥当だろう。価格 =SymbolInfoDouble(Symbol(),SYMBOL_ASK)+SymbolInfoInteger(Symbol(),SYMBOL_TRADE_STOPS_LEVEL)*pointとはいえ、「...現在の 価格から」と書いても、それがスプレッドとどう関係するのか?SYMBOL_ASKに含まれる(SYMBOL_ASK=建値+スプレッドであるため)。 Sile Si 2017.01.23 00:26 #7216 Vladimir Karputov:例を添付しておきますので、参考にしてください...。なるほど、お手本が役に立ったのですね。ありがとうございます。 さて、ここで質問です。 ロットを増やすと、ある時点で自由資金が足りなくなり、ロットを増やした状態でオープンする必要があります。 つまり、FreeMarginが許す限り、最大ロットを入力することです。 この条件の書き 方:計算されたロットでポジションを開く のに十分な資金がない場合、関数はポジションを開くための最大可能ロットを返さなければならない。 double LotA() { double Lot=FirstLot; if(DoublingCount<=0) return Lot; double MaxLot=SymbolInfoDouble(_Symbol,SYMBOL_VOLUME_MAX); double MainLot=SymbolInfoDouble(_Symbol,SYMBOL_VOLUME_MIN);if(Lot<MainLot)Lot=MainLot; if(Lot>MaxLot)Lot=MaxLot; double lt1=Lot; HistorySelect(0,TimeCurrent()); if(HistoryOrdersTotal()==0)return(Lot); double cl=HistoryOrderGetDouble(HistoryOrderGetTicket(HistoryOrdersTotal()-1),ORDER_PRICE_OPEN); double op=HistoryOrderGetDouble(HistoryOrderGetTicket(HistoryOrdersTotal()-2),ORDER_PRICE_OPEN); long typeor=HistoryOrderGetInteger(HistoryOrderGetTicket(HistoryOrdersTotal()-2),ORDER_TYPE); if(typeor==ORDER_TYPE_BUY) { if(op>cl) { if(ud<DoublingCount) { lt1=HistoryOrderGetDouble(HistoryOrderGetTicket(HistoryOrdersTotal()-2),ORDER_VOLUME_INITIAL)*_C_; ud++; } else ud=0; } else ud=0; } if(typeor==ORDER_TYPE_SELL) { if(cl>op) { if(ud<DoublingCount) { lt1=HistoryOrderGetDouble(HistoryOrderGetTicket(HistoryOrdersTotal()-2),ORDER_VOLUME_INITIAL)*_C_; ud++; } else ud=0; } else ud=0; } if(lt1>MaxLot)lt1=MaxLot; lt1=LotCheck(lt1); return(lt1); }//+------------------------------------------------------------------+} Questions from Beginners MQL5 HistoryOrderGetTicket MQL4、MQL5に関する初心者からの質問、アルゴリズムやコードに関するヘルプ、ディスカッションなど。 Renat Akhtyamov 2017.01.23 04:57 #7217 Marina Korotkih: なるほど、お手本が役に立ったのですね。ありがとうございます。さて、この質問。ロットを増やすと、ある時点で自由資金が足りなくなり、より大きなロットで開設する必要がある。つまり、FreeMarginが許す限り、最大ロットを入力することです。この条件の書き 方:計算されたロットでポジションを開く のに十分な資金がない場合、関数はポジションを開くための最大可能ロットを返す必要があります。 double Mgn,Lot=0,BID,ASK; BID=SymbolInfoDouble(_Symbol,SYMBOL_BID); ASK=SymbolInfoDouble(_Symbol,SYMBOL_ASK); if(OrderCalcMargin(ORDER_TYPE_BUY,_Symbol,1,ASK,Mgn)==true)Lot=AccountInfoDouble(ACCOUNT_MARGIN_FREE)/Mgn; if(OrderCalcMargin(ORDER_TYPE_SELL,_Symbol,1,BID,Mgn)==true)Lot=AccountInfoDouble(ACCOUNT_MARGIN_FREE)/Mgn; マリーナ、こんなのはどうだ?売り建玉と買い建玉の2つの計算オプションを適用します。 Vitaly Muzichenko 2017.01.23 05:03 #7218 Renat Akhtyamov: if(OrderCalcMargin(ORDER_TYPE_BUY,_Symbol,1,ASK,Mgn)==true)Lot=AccountInfoDouble(ACCOUNT_MARGIN_FREE)/Mgn; if(OrderCalcMargin(ORDER_TYPE_SELL,_Symbol,1,BID,Mgn)==true)Lot=AccountInfoDouble(ACCOUNT_MARGIN_FREE)/Mgn; マリナさん、もしかしてこんな感じ ですか?いいえ、そんなことはありません。 最大可能ロットを計算するだけでなく、許容最小値についても全体をチェックする必要があります。最小ロットが0.01で、マージンが0.009しか開けられないということもあり得るので、その場合は、決して受け入れられない要求でサーバーを苦しめ、しかし彼らはあなたに対して行動を起こすことができます)。 Renat Akhtyamov 2017.01.23 06:28 #7219 Vitaly Muzichenko:いいえ、そんなことはありません。 あなただけの最大可能なロットを計算する必要はありませんが、また、最小許容のために全体をチェックし、それは最小ロット0.01、およびマージンはあなたが唯一の0.009を開くことができますが、その後受け入れることはありませんが、あなたにアクションと取ることができるサーバの要求を、拷問ことが起こるかもしれませんので、)。当然のようにフルコードを書いて、同時に見る......ということでしょうか。いつもあなたから学び、答えが完成するように見守っています。私は以前、技術監督として働いていました。心配しないでください、すべてうまくいきますよ!」。私たちはチームです Aliaksandr Hryshyn 2017.01.23 18:57 #7220 Marina Korotkih: なるほど、お手本が役に立ったのですね。ありがとうございます。さて、この質問。ロットを増やすと、ある時点で自由資金が足りなくなり、より大きなロットで開設する必要がある。つまり、FreeMarginが許す限り、最大ロットを入力することです。この条件の書き 方:計算されたロットでポジションを開く のに十分な資金がない場合、関数はポジションを開くための最大可能ロットを返さなければならない。 スレ主さん乙です(笑) 1...715716717718719720721722723724725726727728729...1504 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
ええ、まあ...そんなブローカーはどこにあるんだろう...。リンク先を教えてください。
こんにちは。
質問です。
買い保留ができない理由を教えてください。
request.price =SymbolInfoDouble(Symbol(),SYMBOL_ASK)+(offset)*point。
offset=1 の場合、 エラーが出ます。
failed buy stop 0.10 AUDNZD.m at1.03748 [Invalid price],i.esmall level price (in my case).
その直後に同じ「執行命令」が出た場合
request.price = SymbolInfoDouble(Symbol(), SYMBOL_ASK)
はすべて正常に動作する(つまり、注文が行われる)。
1.03747で 0.10の買い注文 [#2 buy 0.10 AUDNZD.m at 1.03747].
保留中の注文(1.03748)のリクエストが受け付けられない、 つまり1.03747では発注されるのに、1.03748では発注されないのはなぜでしょうか?(SYMBOL_ASKは 、スプレッドとオフセットを考慮するので- ポイントで、注文を配置するための現在の価格からのオフセットは、1増加します)。
しかし、オフセット=100では、保留中のBUY_STOP価格=1.03847 - それはすでに動作します。
ありがとうございます。こんにちは。
質問です。
買い保留ができない理由を教えてください。
request.price =SymbolInfoDouble(Symbol(),SYMBOL_ASK)+(offset)*point。
offset=1 の場合、 エラーが出ます。
失敗した買いストップ 0.10 AUDNZD.m at1.03748 [無効な価格]、すなわち小さな価格レベル(私の場合)。
の直後に「実行する命令」を設定すると、その命令は実行されます。
request.price = SymbolInfoDouble(Symbol(), SYMBOL_ASK)
はすべて正常に動作する(つまり、注文が行われる)。
1.03747で 0.10の買い注文 [#2 buy 0.10 AUDNZD.m at 1.03747].
保留中の注文(1.03748)のリクエストが受け付けられない、つまり1.03747では注文が出ますが、1.03748では注文が 小さいのはなぜでしょうか?
しかし、offset=100: 保留BUY_STOP価格=1.03847であれば、すでに動作しています。
ありがとうございます。あなたはすでに自分の質問に答えています。
各シンボルには「ストプレレベル」(現在価格から注文を出すまでの必要最小限の距離)というパラメータがあり、それぞれ独自の値を持ち、取引条件に設定されています。
Вы же сами и ответили на свой вопрос.
Есть такой параметр stoplevel -- минимально необходимое расстояние от текущей цены до цены установки отложенного ордера -- для каждого инструмента своё значение и задаётся в торговых условиях
と書くのが妥当だろう。
価格 =SymbolInfoDouble(Symbol(),SYMBOL_ASK)+SymbolInfoInteger(Symbol(),SYMBOL_TRADE_STOPS_LEVEL)*point
とはいえ、「...現在の 価格から」と書いても、それがスプレッドとどう関係するのか?SYMBOL_ASKに含まれる(SYMBOL_ASK=建値+スプレッドであるため)。
例を添付しておきますので、参考にしてください...。
なるほど、お手本が役に立ったのですね。ありがとうございます。
さて、ここで質問です。
ロットを増やすと、ある時点で自由資金が足りなくなり、ロットを増やした状態でオープンする必要があります。
つまり、FreeMarginが許す限り、最大ロットを入力することです。
この条件の書き 方:計算されたロットでポジションを開く のに十分な資金がない場合、関数はポジションを開くための最大可能ロットを返さなければならない。
{
double Lot=FirstLot;
if(DoublingCount<=0) return Lot;
double MaxLot=SymbolInfoDouble(_Symbol,SYMBOL_VOLUME_MAX);
double MainLot=SymbolInfoDouble(_Symbol,SYMBOL_VOLUME_MIN);
if(Lot<MainLot)Lot=MainLot;
if(Lot>MaxLot)Lot=MaxLot;
double lt1=Lot;
HistorySelect(0,TimeCurrent());
if(HistoryOrdersTotal()==0)return(Lot);
double cl=HistoryOrderGetDouble(HistoryOrderGetTicket(HistoryOrdersTotal()-1),ORDER_PRICE_OPEN);
double op=HistoryOrderGetDouble(HistoryOrderGetTicket(HistoryOrdersTotal()-2),ORDER_PRICE_OPEN);
long typeor=HistoryOrderGetInteger(HistoryOrderGetTicket(HistoryOrdersTotal()-2),ORDER_TYPE);
if(typeor==ORDER_TYPE_BUY)
{
if(op>cl)
{
if(ud<DoublingCount)
{
lt1=HistoryOrderGetDouble(HistoryOrderGetTicket(HistoryOrdersTotal()-2),ORDER_VOLUME_INITIAL)*_C_;
ud++;
}
else ud=0;
}
else ud=0;
}
if(typeor==ORDER_TYPE_SELL)
{
if(cl>op)
{
if(ud<DoublingCount)
{
lt1=HistoryOrderGetDouble(HistoryOrderGetTicket(HistoryOrdersTotal()-2),ORDER_VOLUME_INITIAL)*_C_;
ud++;
}
else ud=0;
}
else ud=0;
}
if(lt1>MaxLot)lt1=MaxLot;
lt1=LotCheck(lt1);
return(lt1);
}
//+------------------------------------------------------------------+}
なるほど、お手本が役に立ったのですね。ありがとうございます。
さて、この質問。
ロットを増やすと、ある時点で自由資金が足りなくなり、より大きなロットで開設する必要がある。
つまり、FreeMarginが許す限り、最大ロットを入力することです。
この条件の書き 方:計算されたロットでポジションを開く のに十分な資金がない場合、関数はポジションを開くための最大可能ロットを返す必要があります。
double Mgn,Lot=0,BID,ASK;
BID=SymbolInfoDouble(_Symbol,SYMBOL_BID);
ASK=SymbolInfoDouble(_Symbol,SYMBOL_ASK);
if(OrderCalcMargin(ORDER_TYPE_BUY,_Symbol,1,ASK,Mgn)==true)Lot=AccountInfoDouble(ACCOUNT_MARGIN_FREE)/Mgn;
if(OrderCalcMargin(ORDER_TYPE_SELL,_Symbol,1,BID,Mgn)==true)Lot=AccountInfoDouble(ACCOUNT_MARGIN_FREE)/Mgn;
マリーナ、こんなのはどうだ?
売り建玉と買い建玉の2つの計算オプションを適用します。
if(OrderCalcMargin(ORDER_TYPE_BUY,_Symbol,1,ASK,Mgn)==true)Lot=AccountInfoDouble(ACCOUNT_MARGIN_FREE)/Mgn;
if(OrderCalcMargin(ORDER_TYPE_SELL,_Symbol,1,BID,Mgn)==true)Lot=AccountInfoDouble(ACCOUNT_MARGIN_FREE)/Mgn;
いいえ、そんなことはありません。
最大可能ロットを計算するだけでなく、許容最小値についても全体をチェックする必要があります。最小ロットが0.01で、マージンが0.009しか開けられないということもあり得るので、その場合は、決して受け入れられない要求でサーバーを苦しめ、しかし彼らはあなたに対して行動を起こすことができます)。
いいえ、そんなことはありません。
あなただけの最大可能なロットを計算する必要はありませんが、また、最小許容のために全体をチェックし、それは最小ロット0.01、およびマージンはあなたが唯一の0.009を開くことができますが、その後受け入れることはありませんが、あなたにアクションと取ることができるサーバの要求を、拷問ことが起こるかもしれませんので、)。
当然のようにフルコードを書いて、同時に見る......ということでしょうか。
いつもあなたから学び、答えが完成するように見守っています。
私は以前、技術監督として働いていました。心配しないでください、すべてうまくいきますよ!」。
私たちはチームです
なるほど、お手本が役に立ったのですね。ありがとうございます。
さて、この質問。
ロットを増やすと、ある時点で自由資金が足りなくなり、より大きなロットで開設する必要がある。
つまり、FreeMarginが許す限り、最大ロットを入力することです。
この条件の書き 方:計算されたロットでポジションを開く のに十分な資金がない場合、関数はポジションを開くための最大可能ロットを返さなければならない。