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

 
законопослушный гражданин #:

宇宙へ飛び出す

一旦立ち上がり、テイク後即座に宇宙へ飛び去る(途中でオーダーをクローズ)。

これは、私が理解するところでは、ポイントではありません。

間違っていたら訂正してください: void OnTick()

未決済の注文がなく、かつシグナルがある場合、vOrderOpenBuy() / vOrderOpenSell()となります。

次にvOrderModify(int iOTi)が来る。つまり、ストップとタキオを設定し、エラーをチェックするのである。

つまり、ストップやテイクで注文が終了するまでは、トレーリングの観点から修正することはできないのです。

ストップ&テイクの複数が1つ(最大2つ)必要です。

トレーリングストップを変更して利食いしたい場合は、手動で行う必要があります。

どのように実装するかは、まだ考えているところです。

修正済み

2021.12.24 21:31:12.245 2021.11.01 00:00:00  111 inputs: Lot=0.01; StopLoss=200; TakeProfit=400; Slippage=3; Magic=1; K_Martin1=2; K_Martin2=2; K_Martin3=2; OrdersClose=5; OrdersClose2=5; DigitsLot=2; PeriodMA=14; MovingShift=1; 
2021.12.24 21:31:12.292 2021.11.01 00:05:00  111 EURUSD,M5: open #1  buy 0.01 EURUSD at 1.15583 ok
2021.12.24 21:31:12.292 2021.11.01 00:05:00  111 EURUSD,M5: modify #1  buy 0.01 EURUSD at 1.15583 sl: 1.15383 tp: 1.15983 ok
2021.12.24 21:32:52.782 2021.11.01 17:37:18  111 EURUSD,M5: modify #1  buy 0.01 EURUSD at 1.15583 sl: 1.15403 tp: 1.16003 ok
2021.12.24 21:32:52.782 2021.11.01 17:37:18  111 EURUSD,M5: Модификации ордера на покупку успешна!
2021.12.24 21:33:39.178 2021.11.01 19:06:30  111 EURUSD,M5: modify #1  buy 0.01 EURUSD at 1.15583 sl: 1.15433 tp: 1.16013 ok
2021.12.24 21:33:39.178 2021.11.01 19:06:30  111 EURUSD,M5: Модификации ордера на покупку успешна!
2021.12.24 21:34:08.768 2021.11.01 20:12:05  Tester: take profit #1  at 1.16013 (1.16014 / 1.16019)
2021.12.24 21:34:14.632 2021.11.01 20:17:55  Tester: stop button pressed
ファイル:
111.mq4  25 kb
 
законопослушный гражданин #:

宇宙へ飛び出す

ストップが立ち、瞬時に宇宙へ飛び、テイクが続く(途中でオーダーを閉じる)

それは、あなたのルールが機能していないからです。

トレーディング、自動売買システム、トレーディング戦略のテストに関するフォーラム。

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

ミハイル・マトコフスキー, 2021.12.23 22:01

一般的には、以下のようなルールがあります。

  • 計算されたSLが注文のSLより小さい(利益が少ない) - 何もしない。
  • 決済SLはオーダーと同じ- 何もしない
  • 計算されたSLが注文のSLを上回っている(より利益が出る)-計算値で修正する
これらのトロール作成ルールは、どんなSL計算アルゴリズムでも、ほぼすべてのトロールを作成するのに適している。

とっくに終わって釘付けになっているはずだ。でも、ダメなんです...。

思わず既成の例を探してしまったhttps://www.mql5.com/ru/code/3080 8。

そして記事: https://www.mql5.com/ru/articles/134

初心者の方には複雑ですが、本当に興味があれば何とかなると思います。

Простой трейлинг-стоп
Простой трейлинг-стоп
  • www.mql5.com
Очень простой советник для сопровождения сделок трейлинг-стопом.
 
Tretyakov Rostyslav #:

修正済み

ありがとうございました。

void関数の中にdoubleを入れられるとは知りませんでした

 
Mihail Matkovskij #:

それは、あなたのルールが通用しないからです。

もっと前にやって得点すればよかったのに。でも、ダメなんです...。

我慢できず、既成の例を探してしまったhttps://www.mql5.com/ru/code/30808

そして記事: https://www.mql5.com/ru/articles/134

初心者の方にはややこしいかもしれませんが、本当に興味のある方なら理解できると思います。

ありがとうございました。

 

こんにちは!!!

Hour()関数が返すのは、グリニッジで最後に確認されたサーバー時刻の現在時刻なのか、それともコンピュータで呼び出された現在時刻 なのか、教えていただけますか?

 
EVGENII SHELIPOV 現在時刻 なのか、教えていただけませんか?

 
Tretyakov Rostyslav #:


という問いに対する答えは?

 
EVGENII SHELIPOV #:

その答えは?

ごめんなさい 読めると思ったのに...


 
EVGENII SHELIPOV 現在の 時間を返すか教えてください?

また、サーバーの時刻はGMTでなければ ならないと誰が言ったのですか?

 

mt4、mt5用機能 - スタート、ストップ、.......

//+------------------------------------------------------------------+
//|                                                   time Start.mq4 |
//|                        Copyright 2021, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2021, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
#property strict
//--- input parameters
input datetime InpHoursFrom = D'1970.01.01 02:00'; // Start (Only time)
input datetime InpHoursTo   = D'1970.01.01 23:00'; // Stop (Only time)
input bool     InpClose     = true;                // Close Time
input datetime InpHoursTo1  = D'1970.01.01 23:00'; // Close (Only time)
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
//---
   if(TimeStartStop(InpHoursFrom,InpHoursTo))
     {
      Print("Start time :",InpHoursFrom," || ","Stop time :",InpHoursTo);
     }
   if(TimeClose(InpHoursTo1))
     {
      if(InpClose)
         Print("close_time :",InpHoursTo1);
     }
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
bool TimeStartStop(datetime HoursFrom,datetime HoursTo)
  {
//---
   MqlDateTime currTime;
   TimeToStruct(TimeLocal(),currTime);
   long hour0=currTime.hour*60*60+currTime.min*60+currTime.sec;
   if((HoursFrom<HoursTo && hour0>=HoursFrom && hour0<HoursTo) ||
      (HoursFrom>HoursTo && (hour0<HoursTo || hour0>=HoursFrom)))
      return(true);
   return(false);
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
bool TimeClose(datetime HoursTo)
  {
//---
   MqlDateTime currTime;
   TimeToStruct(TimeLocal(),currTime);
   long hour0=currTime.hour*60*60+currTime.min*60+currTime.sec;
   if(hour0<HoursTo)
      return(false);
   if(hour0>HoursTo+1*10)
      return(false);
   return(true);
  }
//+------------------------------------------------------------------+