MQL4、MQL5に関する初心者からの質問、アルゴリズムやコードに関するヘルプ、ディスカッションなど。 - ページ 574 1...567568569570571572573574575576577578579580581...1953 新しいコメント Alekseu Fedotov 2018.06.23 08:51 #5731 Galim_V:課題は、最小の閉塞を持つバーを見つけることです for(int x=0; x<=xBars -1; x++){カウンター++。// Print(Close[x],",",counter)を実行します。int h = ArrayMinimum(Close[x]);if(counter > 20) break;} コンパイラはCloseで悪態をつく終値を 別の配列に書いて、ArrauMinimumのひよこの外側で Galim_V 2018.06.23 09:00 #5732 Alekseu Fedotov:終値を 別の配列に書いて、ArrauMinimumのひよこの外側で ありがとうございました。 Taras Slobodyanik 2018.06.23 10:36 #5733 Galim_V:タスクは、最小のクローズを持つバーを見つけることです。iHighestと iLowestの機能があります(MT5にも搭載されました)。 Galim_V 2018.06.23 10:57 #5734 Taras Slobodyanik:iHighestとiLowestの機能があります(MT5にも搭載されました)。 ありがとうございました。 Ihor Herasko 2018.06.23 12:41 #5735 Galim_V:課題は、最小の閉塞を持つバーを見つけることです for(int x=0; x<=xBars -1; x++){カウンター++。// Print(Close[x],",",counter)を実行します。int h = ArrayMinimum(Close[x]);if(counter > 20) break;} コンパイラはCloseで悪態をつくMQL4で最小/最大価格を 検索するタスクは、1行で解決します。 double fMinClose = iClose(NULL, 0, iLowest(NULL, 0, MODE_CLOSE, <сколько баров>, <начинать с бара>)); PolarSeaman 2018.06.26 05:54 #5736 Taras Slobodyanik:できるけど、正確にはタイマーにならない。 ありがとうございます。 ロット単位で計算する方法を教えてください。保証金=1000、ロット=0.1の場合、保証金は2000ロット=0.2になりました。つまり、デポジットが1500や1700の場合、ロットは増えない。 Konstantin Nikitin 2018.06.26 06:46 #5737 PolarSeaman:ありがとうございます。 ロット単位で計算する方法を教えてください。保証金=1000、ロット=0.1の場合、保証金は2000ロット=0.2になりました。つまり、デポジットが1500や1700であれば、ロットは増えない。double percentLot = 0.01, lot = NormalizeDouble(MathFloor(AccountInfoDouble(ACCOUNT_BALANCE)*percentLot/10)/10, 1); なんとなく... PolarSeaman 2018.06.26 08:05 #5738 Konstantin Nikitin: このように...いやいや、1100円の入金でロットは0.11になるし、2000円までは増えないようにしないと。設定でステップ=1000を設定するには? nikolyafhfgjgfj 2018.06.26 08:22 #5739 こんにちは、あなたは可能であれば、マウスにインデックスの座標を追加することが可能であるかどうかを教えてください、私に電子メールを送ってくださいereminmikola@yandex.ru。 Vladimir Liubchenko 2018.06.26 10:13 #5740 プログラマーの皆さん、こんにちは。以下の条件に対して、正しくアプローチするためのヒントを教えてください。 1.Expert Advisorは、設定で指定した同じロットの成行注文を2つ(買いと売り)出します。- 注文は問題なく実行される 次に問題なのは、価格が売り方向と買い方向の両方に動く可能性があることです。nポイント経過した時点で、Expert AdvisorがLIVEでこれら2つの取引の収益性をスキャンし、nポイント後に負の残高を持つ注文をクローズするようにコードをアレンジするにはどうすればよいでしょうか。他に何か方法があれば、アドバイスをお願いします。 コードを渡すと、最初のポイントだけが実行され、TPとSLで2つのトレードが開始されます。 2.指定したポイント数に達したら、マイナス残高で注文を閉じ、同じロットでさらに2つの注文(買い、売り)を出す。ストップは最初の注文の始値で 設定されます。つまり、トレンドが反転した場合、3つの注文はすべて同時に終了する必要があります。 extern int _ms = 1000; extern double _lots = 0.01; extern double _TP = 80; extern double _SL = 35; int _mn; double pt; //+------------------------------------------------------------------+ //| Expert initialization function | //+------------------------------------------------------------------+ int OnInit() { pt = Point; if (Digits==3||Digits==5) {pt*=10;} else pt = Point; _mn = MagicNumberGenerator(_ms); Print("The magic number is ",_mn); return(INIT_SUCCEEDED); } //+------------------------------------------------------------------+ //| Expert deinitialization function | //+------------------------------------------------------------------+ void OnDeinit(const int reason) { } //+------------------------------------------------------------------+ //| Expert tick function | //+------------------------------------------------------------------+ void OnTick() { if (IsNewCandle()) { if (TotalOpenOrders(_mn)==0) { EnterTrade(OP_BUY); EnterTrade(OP_SELL); } } } //+------------------------------------------------------------------+ //+------------------------------------------------------------------+ //| Открытие первых позиций | //+------------------------------------------------------------------+ void EnterTrade(int type) { double price = 0; double sl = 0; double tp = 0; double lot = _lots; if (type == OP_BUY) price = Ask; else if (type == OP_SELL) price = Bid; int err = 0; int ticket = OrderSend(_Symbol, type, lot, price, 30, 0, 0, NULL, _mn, 0, clrGreen); if (ticket == -1) { err = GetLastError(); Print("Could not place the order due to error ",err," ",ErrorDescription(err)); if (err == ERR_TRADE_NOT_ALLOWED) Alert("You need to enable you autotrade button"); } else { if(!OrderSelect(ticket,SELECT_BY_TICKET)) { err = GetLastError(); Print("Could not select the order due to error ",err," ",ErrorDescription(err)); } else { if (OrderType()==OP_SELL) { sl = OrderOpenPrice()+(_SL*pt); if (_SL==0) sl = 0; tp = OrderOpenPrice()-(_TP*pt); } else if (OrderType()==OP_BUY) { sl = OrderOpenPrice()-(_SL*pt); if (_SL==0) sl = 0; tp = OrderOpenPrice()+(_TP*pt); } if(!OrderModify(ticket, OrderOpenPrice(), sl, tp, 0, clrNONE)) err = GetLastError(); Print("Could not modify the order due to error ",err," ",ErrorDescription(err)); } } } 1...567568569570571572573574575576577578579580581...1953 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
課題は、最小の閉塞を持つバーを見つけることです
for(int x=0; x<=xBars -1; x++)
{
カウンター++。
// Print(Close[x],",",counter)を実行します。
int h = ArrayMinimum(Close[x]);
if(counter > 20) break;
}
コンパイラはCloseで悪態をつく
終値を 別の配列に書いて、ArrauMinimumのひよこの外側で
タスクは、最小のクローズを持つバーを見つけることです。
iHighestと iLowestの機能があります(MT5にも搭載されました)。
iHighestとiLowestの機能があります(MT5にも搭載されました)。
課題は、最小の閉塞を持つバーを見つけることです
for(int x=0; x<=xBars -1; x++)
{
カウンター++。
// Print(Close[x],",",counter)を実行します。
int h = ArrayMinimum(Close[x]);
if(counter > 20) break;
}
コンパイラはCloseで悪態をつく
MQL4で最小/最大価格を 検索するタスクは、1行で解決します。
できるけど、正確にはタイマーにならない。
ありがとうございます。
ロット単位で計算する方法を教えてください。保証金=1000、ロット=0.1の場合、保証金は2000ロット=0.2になりました。つまり、デポジットが1500や1700の場合、ロットは増えない。
ありがとうございます。
ロット単位で計算する方法を教えてください。保証金=1000、ロット=0.1の場合、保証金は2000ロット=0.2になりました。つまり、デポジットが1500や1700であれば、ロットは増えない。
なんとなく...
このように...
いやいや、1100円の入金でロットは0.11になるし、2000円までは増えないようにしないと。設定でステップ=1000を設定するには?
プログラマーの皆さん、こんにちは。以下の条件に対して、正しくアプローチするためのヒントを教えてください。
1.Expert Advisorは、設定で指定した同じロットの成行注文を2つ(買いと売り)出します。- 注文は問題なく実行される
次に問題なのは、価格が売り方向と買い方向の両方に動く可能性があることです。nポイント経過した時点で、Expert AdvisorがLIVEでこれら2つの取引の収益性をスキャンし、nポイント後に負の残高を持つ注文をクローズするようにコードをアレンジするにはどうすればよいでしょうか。他に何か方法があれば、アドバイスをお願いします。
コードを渡すと、最初のポイントだけが実行され、TPとSLで2つのトレードが開始されます。
2.指定したポイント数に達したら、マイナス残高で注文を閉じ、同じロットでさらに2つの注文(買い、売り)を出す。
ストップは最初の注文の始値で 設定されます。つまり、トレンドが反転した場合、3つの注文はすべて同時に終了する必要があります。