MQL4、MQL5に関する初心者からの質問、アルゴリズムやコードに関するヘルプ、ディスカッションなど。 - ページ 1735

 
anrei2002 #:

キーワードは「HELP!

前にも書きましたが:この掲示板でこの指標は確定できないと、すぐに言った方がいいです

そして、それで理解する......なぜ、あれほど大量のスラグが流し込まれたのか?

そもそも私が書いたものです。

曲がってるから直せない...

それが最初に書いたことです。見ていない、気づいていない、でたらめだと思ったのでしょう。

私があなたに伝えようとしたことを、あなたがここでかき回したゴミと見なすこと--私は悪気はない、あなたのために努力したわけではない、他の誰かが読むだろうし、間違いはないだろう。このフォーラムが気に入らなければ、他のフォーラムを探してください。

 
Nikolay Ivanov #:

さっそく書いてみました。

直せない、曲がっている...。

は修正可能ですが、一番外側の8本のバーが再描画されます。

 
anrei2002 #:

キーワードは「HELP!

私はあなたを助けた - あなたが何をする必要があるかを書き留めた - と?)

何をした?

 
Taras Slobodyanik #:

修正可能ですが、一番外側の8本のバーが再描画されます。

また、9本目のバーにはすぐにシグナルを適用でき、再描画は一切行わないとのことでした。

Taras Slobodyanik#:

私はあなたを助けた - 私はあなたがしなければならないことを書いている - と?)

何をした?

ところで、あなたは裁定に(いくつかの確率で)得るだろう、あなたは彼が行う必要があることをすべてに事前に合意する必要があります。

Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам
Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам
  • 2021.11.09
  • www.mql5.com
В этой ветке я хочу начать свою помощь тем, кто действительно хочет разобраться и научиться программированию на новом MQL4 и желает легко перейти н...
 
Nikolay Ivanov #:

また、9本目のバーでシグナルを送れば、オーバープライスは一切発生しないとも言われていたが、男には理解できない......。

ところで、アービトラージ(裁定取引)を行うには、事前にすべて交渉しなければならない。

ここでできることは、すべて可能です。男はオーバーライドに同意し、8小節の信号を送り返します。

ps. ダイバージェンスやフラクタルも過去に出現しているが、大したことはない。
 
Taras Slobodyanik #:

ここではすべてが可能です。本人が再格付けに同意し、信号も8本戻ってきますが、何が問題なのでしょうか?

余計な矢印を消す「だけ」でいいんだそうです。そして、それをどうするか、再評価するかしないかは、あなたの問題です...。どんな仲裁もこうして始まる :)

規約の作り方にもよるが、いずれにせよ-危険は冒さない...。仲裁に成功しても数ヶ月のストレス...。

 
anrei2002 #:

キーワードは「HELP!

以前にも書きましたが、このインジケータはこの掲示板では確定できないと、すぐに言った方がいいですよ!?

そして、それで理解する......なぜ、あれほど大量のスラグが流し込まれたのか?

その通りです。自分が手伝うということは、自分がやるということであり、誰かが自分のできる範囲で、自分のできる範囲で、自分のできる範囲で手伝ってくれるということです。

何もせずにお願いするだけで、誰かがやってくれるなら、それはのれん分けです。

このスレッドを作成したとき、私は助けという意味であって、自由な願いの生産という意味ではありません。

 

フォーラムユーザーの皆様、経験豊富なプログラマーの皆様、こんにちは。Expert Advisorの最終調整に協力してほしい))コードアドバイザーに2つのことを追加する方法を教えてください。

1.TPとSL、そしてあるロット(おそらく0.01)で注文(1回目)をオープンします。この注文が利益確定で終了した場合、クールで何も変わりません。しかし、この(1回目の)注文がSLで決済されると、その直後の次の注文(2回目)は2倍のロット(0.01*2=0.02)で発注されることになります。この2番目の注文がTake Profitで決済された場合、次の注文(3番目の注文)は通常のロットで発注されます。つまり、前の注文(1番目)がSLで決済された後の次の注文(2番目の注文)には、2倍のロットが必要なのです。3回目の注文が2回連続でSLで決済される場合、TPの決済が行われなくなるまでロットは2倍されたままになります。追加すべきロジックを詳細に記述できたと思います。


2. そして、2番目に追加しなければならないのは、SLの動きです。さて、例で説明しましょう。- 500.価格が要求された方向に動き、注文の始値から+100pipsを通過したとき。注文の始値から+100になったら、SLは基準の-500から+90に移動するはずです。つまり、注文の始値から+100pipsになったら、S,Lを+90pipsに設定してBreakevenに移行させるのです。その後、価格がさらに希望の方向に動き、さらに+50pips通過した場合、S.L.は50pips移動⇒注文開始価格から+140pipsになるはずです。すなわち、S.L.はまず基準位置から注文の始値から+90pipsまで移動し、その後+50pips(-500 => + 90 => + 140 => + 190 など)を過ぎたら移動します。そして、価格がT.P.に達するまで、どちらかになります。または、トレンドが反転してS.L.にぶつかったとき。


このように、不足している要素を追加することで、Expert Advisorの準備が整いますので、皆様のご協力をお願いいたします))ご不明な点があれば、ご質問ください)))以下にExpert Advisorのコードの一部を貼り付けます。

extern string s1                = "Main options";
extern string Symbol            = "";     
extern int timeframe            = 30;     
extern int MagicNumber          = 122122; 
//+------------------------------------------------------------------+
extern string s2                = "Trading options";
extern int BarsForConfirm       = 40;     
extern double Lot               = 0.01;      // размер лота: 0 - авт.расчет (свободная маржа/9000 => 100/5000=0.02 лота); любое другое число - фиксированный лот
extern int StopLoss             = 50;     // стоплосс (в пунктах)
extern int TakeProfit           = 30;     // тейкпрофит (в пунктах)
//+------------------------------------------------------------------+

bool OrderBuy = true, OrderSell = true, Trade = false;  
int timeprev = 0, Slip = 3.0, Start, cnt=1, a;  
datetime newbar=0;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---
   if(CheckForOpen()==0) {a=1; Trade = false;}
   else
   if(CheckForOpen()==1) {a=0; Trade = false;}
   else {Trade = true;}
   if (Digits == 3 || Digits == 5) // Пересчет для 5-ти знаков, работает автоматически
     {                                                    
      TakeProfit *= 10;
      StopLoss *=10;
      Slip *=10;
     } 
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---
   
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  
  {
  
   if(CheckForOpen()==a) Trade = true;
   if(newbar!=Time[0] && Trade==true)  
     {
      if(CheckForOpen()!=Start)        
        {Start=CheckForOpen(); cnt=1;}
      else {cnt+=1;}

      if(cnt==BarsForConfirm) {        
             
                
             
         if(CheckForOpen()==0)         
           {
            if(OrderSend(Symbol(),OP_BUY,Lots(),Ask,Slip,Bid-StopLoss*Point,Ask+TakeProfit*Point,"",MagicNumber,0,Blue))
              {Print("BUY OK");} else {Print(GetLastError());}
           } 
         if(CheckForOpen()==1)         
           {
            if(OrderSend(Symbol(),OP_SELL,Lots(),Bid,Slip,Ask+StopLoss*Point,Bid-TakeProfit*Point,"",MagicNumber,0,Red))
              {Print("SELL OK");} else {Print(GetLastError());}
           }
        }   
      newbar=Time[0];  //открытие ордера на цене открытия свечи
     }
  }
//+------------------------------------------------------------------+
//| Calculate optimal lot size                                       |
//+------------------------------------------------------------------+
double Lots()  // Расчет объема лота
  {
   double Lots;
   if(Lot>0) return(Lot);           
   Lots=AccountFreeMargin()/9000;  // раcчёт лота - свободная маржа/9000 => 100/9000=0.01 лота 
   Lots=MathMin(15,MathMax(0.01,Lots));
   if(Lots<0.1) Lots=NormalizeDouble(Lots,2);
   else 
     {
      if(Lots<1) Lots=NormalizeDouble(Lots,1);
      else       Lots=NormalizeDouble(Lots,0);
     }
   return(Lots);
  }
//+------------------------------------------------------------------+
 
MakarFX #:

キャッチ

ありがとうございました。すぐに返信できず、すみませんでした。
試してみると、ちょっとした問題が...。
USDXのシンボルで実行した場合のみ描画されます。
EURUSDでは表示されません(Symbol_2を変更しているのは明らかです)。
写真をご覧いただくと、わかりやすいかもしれません。
なぜ、このような現象が起こるのか、どのように修正すればよいのか、お分かりになりますか?
ファイル:
EURUSD.JPG  260 kb
USDX.JPG  318 kb
 

こんにちは。

くだらない質問で申し訳ないのですが・・・。注文が正しく行われた後、エラー129 -価格が間違って いる。めんどくさくなってきた...。助けてください...((


int f = OrderSend(para_2,OP_BUY,0.1,Ask_para_2,3,0,0,",0,Blue); if(f < 0){Alert("Error setting Buy Stop order: ", GetLastError());}