MQL4、MQL5に関する初心者からの質問、アルゴリズムやコードに関するヘルプ、ディスカッションなど。 - ページ 1347 1...134013411342134313441345134613471348134913501351135213531354...1953 新しいコメント Порт-моне тв 2021.01.10 05:30 #13461 Expert Advisorを終了できない。まず、価格がその領域に入った場合の買いトリガーとなる長方形を1つ描き、次に2つ目の長方形を描きます。 しかし、その逆に、価格がその領域内で開いたり閉じたりし始めるのです。私は何を間違えているのだろう? //+------------------------------------------------------------------+ //| RECTANGLES OP_BUY.mq4||RECTANGLES OP_BUY.mq4 //+------------------------------------------------------------------+ #property copyright "" #プロパティリンク "" #property version "1.00" #プロパティの厳密さ extern int Magic = 777701; extern double Lot = 0.01; extern int Slippage = 3; int ticketです。 int OrderOfSymbol。 //+------------------------------------------------------------------+ //| 専門家による初期化機能 //+------------------------------------------------------------------+ int OnInit() { //--- return(INIT_SUCCEEDED); } //+------------------------------------------------------------------+ //| 専門家による初期化関数 //+------------------------------------------------------------------+ void OnDeinit(const int reason) { //--- } //+------------------------------------------------------------------+ //| エキスパートティック機能 //+------------------------------------------------------------------+ void OnTick() { //--- //Check for therectangle: if(ObjectsTotal(OBJ_RECTANGLE)==0)とする。 {コメント("長方形を描いて 買い取引を開始します!");}。 //矩形のNAMEを取得します。 for(int n=0;n<ObjectsTotal();n++) { 文字列名=ObjectName(n); if(ObjectType(name)==OBJ_RECTANGLE)とする。 { datetime t1a = (datetime) ObjectGet(name,OBJPROP_TIME1)。 datetime t2a = (datetime) ObjectGet(name,OBJPROP_TIME2)。 double p1a=NormalizeDouble(ObjectGet(name,OBJPROP_PRICE1),Digits); double p2a=NormalizeDouble(ObjectGet(name,OBJPROP_PRICE2),Digits); OrderOfSymbol=CounterOrderTradeType(-1)です。 if (OrderOfSymbol<1) if (クローズ[1]>オープン[1]) if(TimeCurrent()>t1a && TimeCurrent()<t2a &&) ビッド < p1a && ビッド > p2a ) { ticket = OrderSend(Symbol(,OP_BUY, Lot, Ask, Slippage, 0, 0, "open buy order", Magic, 0, Blue)。 } } } //Check if there is already secondrectangle: if(ObjectsTotal(OBJ_RECTANGLE)==1) {Comment("2つ目の矩形を描いて 買い取引を終了します!");}。 //矩形のNAMEを取得します。 for(int n=0;n<ObjectsTotal();n++) { 文字列名=ObjectName(n); if(ObjectType(name)==OBJ_RECTANGLE)とする。 { datetime t1b = (datetime) ObjectGet(name,OBJPROP_TIME1)。 datetime t2b = (datetime) ObjectGet(name,OBJPROP_TIME2)。 double p1b=NormalizeDouble(ObjectGet(name,OBJPROP_PRICE1),Digits); double p2b=NormalizeDouble(ObjectGet(name,OBJPROP_PRICE2),Digits); if(TimeCurrent()>t1b && TimeCurrent()<t2b &&) ビッド < p1b && ビッド > p2b ) CloseBuyPositions1()。 } } /Cすでに2番目の矩形が あるかどうか確認する : if(ObjectsTotal(OBJ_CHANNEL)==2) {コメント("買い注文の開始と終了エリアが設定されました - 取引開始です!");}。 } //+------------------------------------------------------------------+ void CloseBuyPositions1() { for(int i = OrdersTotal() - 1; i >= 0; i--) if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) if(OrderMagicNumber() == Magic) if(OrderSymbol() == Symbol()) { if(OrderType()==OP_BUY) { if(OrderClose(OrderTicket(), OrderLots(), Bid, 3, NULL)){Print("Order Close");}; }. } } } //+------------------------------------------------------------------+ //|オーダーカウント| //+------------------------------------------------------------------+ int CounterOrderTradeType(ENUM_ORDER_TYPE order_type) { int cnt=0; //---- for(int pos=OrdersTotal()-1;pos>=0;pos--) { if(OrderSelect(pos, SELECT_BY_POS, MODE_TRADES)==false) continue; if(OrderSymbol()!=_Symbol)を続ける。 if(order_type == OrderType() || order_type == -1) cnt++; } //---- return(cnt); } Any questions from newcomers 初心者の方からの質問 MQL4 MT4 MetaTrader どんな新人の質問でも、フォーラムを乱雑にしないように。プロフェッショナルは、通り過ぎないでください。Nowhere without you - Tretyakov Rostyslav 2021.01.10 09:39 #13462 Порт-моне тв: このようなコードを投稿する機能があります、あなたのコードを読んでみんなが手助けしやすくなりますよ。 Alexey Viktorov 2021.01.10 09:46 #13463 MakarFX: このようなコードを投稿する機能があります、あなたのコードを読んでみんなが手助けしやすくなると思います。 それは彼のためになりません。空白行は、彼のような人にしか読めない。 Tretyakov Rostyslav 2021.01.10 10:03 #13464 Порт-моне тв: 私は何を間違えているのだろう? スクウェアの名前に独自性がない、売買の条件としてどんなスクウェアでも持っている Tretyakov Rostyslav 2021.01.10 10:06 #13465 Порт-моне тв: また、これにより Tretyakov Rostyslav 2021.01.10 13:36 #13466 エラーを修正する方法を教えてください //+------------------------------------------------------------------+ #property copyright "Copyright 2020," #property version "1.0" #property strict //--- Inputs int side_position = 1; input ENUM_BASE_CORNER CornerInfo = CORNER_RIGHT_UPPER; input ENUM_BASE_CORNER CornerInfo1 = CORNER_LEFT_UPPER; //+------------------------------------------------------------------+ //| Expert initialization function | //+------------------------------------------------------------------+ int OnInit() { //--- if(side_position == 2) { CornerInfo = CORNER_RIGHT_LOWER; CornerInfo1 = CORNER_LEFT_LOWER; } //--- return(INIT_SUCCEEDED); } //+------------------------------------------------------------------+ 以下はそのエラーです。 'CornerInfo' - constant cannot be modified Wa.mq4 22 1 'CornerInfo1' - constant cannot be modified Wa.mq4 23 1 2 errors, 0 warnings 3 1 Aleksei Stepanenko 2021.01.10 13:47 #13467 Forallf:ありがとうございました。 どういたしまして ) MakarFX: エラーを修正する方法を教えてください。以下はエラーです。 入力変数の 変更はできません。 こんな風にできるんですね。 input ENUM_BASE_CORNER CornerInfo = CORNER_RIGHT_UPPER; ENUM_BASE_CORNER MyCornerInfo = CornerInfo; ....... if(side_position == 2) { MyCornerInfo = CORNER_RIGHT_LOWER; Tretyakov Rostyslav 2021.01.10 13:50 #13468 Aleksei Stepanenko:どういたしまして )入力変数を 変更することはできません。こんな風にできるんですね。 ありがとう、わかったよ Порт-моне тв 2021.01.11 01:14 #13469 MakarFX:これはあなたにも役立つはずです。 そうではありませんでした。そして、二乗の値が本来あるべき2つからではなく、最後の1つから取られていることに気づいたのです。どうやったら勝てるのかわからない。自分では気づかなかっただろう。私はmqlに精通しているわけではありません。だからここで質問しているのですが、あなたは私にコムを提供してくれています。 Tretyakov Rostyslav 2021.01.11 06:31 #13470 Порт-моне тв:は役に立たなかった。そして、二乗の値が本来あるべき2つからではなく、最後の1つから取られていることに気づいたのです。どうやったら勝てるのかわからない。自分では想像もつかなかった。私はmqlに精通しているわけではありません、だからあなたに聞いているのです、あなたは私に櫛を提供しています。 私は、あなたがアドレスする人がコードを読みやすくするために、あなたに櫛を提供しています(ここに悪意はありません)。 正方形については、正方形を正しく認識するためには、その起源を理解する必要があります。 1...134013411342134313441345134613471348134913501351135213531354...1953 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
Expert Advisorを終了できない。まず、価格がその領域に入った場合の買いトリガーとなる長方形を1つ描き、次に2つ目の長方形を描きます。
しかし、その逆に、価格がその領域内で開いたり閉じたりし始めるのです。私は何を間違えているのだろう?
//+------------------------------------------------------------------+
//| RECTANGLES OP_BUY.mq4||RECTANGLES OP_BUY.mq4
//+------------------------------------------------------------------+
#property copyright ""
#プロパティリンク ""
#property version "1.00"
#プロパティの厳密さ
extern int Magic = 777701;
extern double Lot = 0.01;
extern int Slippage = 3;
int ticketです。
int OrderOfSymbol。
//+------------------------------------------------------------------+
//| 専門家による初期化機能
//+------------------------------------------------------------------+
int OnInit()
{
//---
return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
//| 専門家による初期化関数
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
{
//---
}
//+------------------------------------------------------------------+
//| エキスパートティック機能
//+------------------------------------------------------------------+
void OnTick()
{
//---
//Check for therectangle:
if(ObjectsTotal(OBJ_RECTANGLE)==0)とする。
{コメント("長方形を描いて 買い取引を開始します!");}。
//矩形のNAMEを取得します。
for(int n=0;n<ObjectsTotal();n++)
{
文字列名=ObjectName(n);
if(ObjectType(name)==OBJ_RECTANGLE)とする。
{
datetime t1a = (datetime) ObjectGet(name,OBJPROP_TIME1)。
datetime t2a = (datetime) ObjectGet(name,OBJPROP_TIME2)。
double p1a=NormalizeDouble(ObjectGet(name,OBJPROP_PRICE1),Digits);
double p2a=NormalizeDouble(ObjectGet(name,OBJPROP_PRICE2),Digits);
OrderOfSymbol=CounterOrderTradeType(-1)です。
if (OrderOfSymbol<1)
if (クローズ[1]>オープン[1])
if(TimeCurrent()>t1a && TimeCurrent()<t2a &&)
ビッド < p1a && ビッド > p2a )
{
ticket = OrderSend(Symbol(,OP_BUY, Lot, Ask, Slippage, 0, 0, "open buy order", Magic, 0, Blue)。
}
}
}
//Check if there is already secondrectangle:
if(ObjectsTotal(OBJ_RECTANGLE)==1)
{Comment("2つ目の矩形を描いて 買い取引を終了します!");}。
//矩形のNAMEを取得します。
for(int n=0;n<ObjectsTotal();n++)
{
文字列名=ObjectName(n);
if(ObjectType(name)==OBJ_RECTANGLE)とする。
{
datetime t1b = (datetime) ObjectGet(name,OBJPROP_TIME1)。
datetime t2b = (datetime) ObjectGet(name,OBJPROP_TIME2)。
double p1b=NormalizeDouble(ObjectGet(name,OBJPROP_PRICE1),Digits);
double p2b=NormalizeDouble(ObjectGet(name,OBJPROP_PRICE2),Digits);
if(TimeCurrent()>t1b && TimeCurrent()<t2b &&)
ビッド < p1b && ビッド > p2b )
CloseBuyPositions1()。
}
}
/Cすでに2番目の矩形が あるかどうか確認する :
if(ObjectsTotal(OBJ_CHANNEL)==2)
{コメント("買い注文の開始と終了エリアが設定されました - 取引開始です!");}。
}
//+------------------------------------------------------------------+
void CloseBuyPositions1()
{
for(int i = OrdersTotal() - 1; i >= 0; i--)
if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
if(OrderMagicNumber() == Magic)
if(OrderSymbol() == Symbol())
{
if(OrderType()==OP_BUY)
{
if(OrderClose(OrderTicket(), OrderLots(), Bid, 3, NULL)){Print("Order Close");}; }.
}
}
}
//+------------------------------------------------------------------+
//|オーダーカウント|
//+------------------------------------------------------------------+
int CounterOrderTradeType(ENUM_ORDER_TYPE order_type)
{
int cnt=0;
//----
for(int pos=OrdersTotal()-1;pos>=0;pos--)
{
if(OrderSelect(pos, SELECT_BY_POS, MODE_TRADES)==false) continue;
if(OrderSymbol()!=_Symbol)を続ける。
if(order_type == OrderType() || order_type == -1) cnt++;
}
//----
return(cnt);
}
このようなコードを投稿する機能があります、あなたのコードを読んでみんなが手助けしやすくなりますよ。
このようなコードを投稿する機能があります、あなたのコードを読んでみんなが手助けしやすくなると思います。
それは彼のためになりません。空白行は、彼のような人にしか読めない。
Порт-моне тв:
私は何を間違えているのだろう?
スクウェアの名前に独自性がない、売買の条件としてどんなスクウェアでも持っている
また、これにより
エラーを修正する方法を教えてください
以下はそのエラーです。
'CornerInfo' - constant cannot be modified Wa.mq4 22 1 'CornerInfo1' - constant cannot be modified Wa.mq4 23 1 2 errors, 0 warnings 3 1
ありがとうございました。
どういたしまして )
エラーを修正する方法を教えてください。
以下はエラーです。
入力変数の 変更はできません。
こんな風にできるんですね。
どういたしまして )
入力変数を 変更することはできません。
こんな風にできるんですね。
ありがとう、わかったよ
これはあなたにも役立つはずです。
そうではありませんでした。そして、二乗の値が本来あるべき2つからではなく、最後の1つから取られていることに気づいたのです。どうやったら勝てるのかわからない。自分では気づかなかっただろう。私はmqlに精通しているわけではありません。だからここで質問しているのですが、あなたは私にコムを提供してくれています。
は役に立たなかった。そして、二乗の値が本来あるべき2つからではなく、最後の1つから取られていることに気づいたのです。どうやったら勝てるのかわからない。自分では想像もつかなかった。私はmqlに精通しているわけではありません、だからあなたに聞いているのです、あなたは私に櫛を提供しています。
私は、あなたがアドレスする人がコードを読みやすくするために、あなたに櫛を提供しています(ここに悪意はありません)。
正方形については、正方形を正しく認識するためには、その起源を理解する必要があります。