初心者の方からの質問 MQL5 MT5 MetaTrader 5 - ページ 604

 
new-rena:

逆質問です。

どの通貨ペアの動きも、チャート、買値、売値など、あなたの変数のセットに依存していると思いますか?

レートの動きは変数に依存しないが、トレーダーはその動きに規則性を見出そうとし、これに基づいてポジションの 開始、保持、終了の ための変数(入力データ)を選択する。結局のところ、トレーディングシステムは、利益を上げることを目的とした一連のルールなのです。おそらく、利益と損失の分布はランダムなのでしょうが、その割合が異なるので、収益性の高い取引システムが形成されるのでしょう。それはそうでしょうね。
 
Евгений:
レートの動きは変数に依存しないが、トレーダーは動きのパターンを見つけようとし、これに基づいてポジションの 開始、維持、終了の ための変数(入力)を選択する。結局のところ、トレーディングシステムは、利益を上げることを目的とした一連のルールなのです。おそらく、利益と損失の分布はランダムなのでしょうが、その割合が異なるので、収益性の高い取引システムが形成されるのでしょう。そうですね。
基本的に、あなたは自分の質問に自分で答えています。つまり、同じ値動きで次のようになります。利益-損失=CONST
 
Expert Advisorで、移動平均 線からの売り買いを禁止したいのですが、制限に関する機能を提案してください。
 
KoltRU:
Expert Advisorで、移動平均 線からの売り買いを禁止したいのですが、制限する機能を教えてください。
よりシンプルに、開くときの条件を追加しました。
 

これは迷惑な話だ。配列の参照は関数に渡されません。

void GetIndValue(int IndNo, int Vol, double *out[]){;};

このダブルの*out[]では、どう書いても、すべてのエラーが発生します。

'BatIndicators.mqh' BatIndicators.mqh 1 1

'*' -ポインターは 使用できません BatIndicators.mqh 18 45

'out' - 配列は参照渡しのみ BatIndicators.mqh 18 46

2 エラー(s), 0 警告(s) 3 1

どちらか一方、あるいは両方。以前は問題なかったと記憶しているのですが、それともCにあるのでしょうか。)


 
Yuriy Asaulenko:

これは迷惑な話だ。配列の参照は関数に渡されません。

このダブルの*out[]では、どう書いても、すべてのエラーが発生します。

'BatIndicators.mqh' BatIndicators.mqh 1 1

'*' - ポインターは使用できません BatIndicators.mqh 18 45

'out' - 配列は参照渡しのみ BatIndicators.mqh 18 46

2 エラー(s), 0 警告(s) 3 1

どちらか一方、あるいは両方。以前は問題なかったと記憶しているのですが、それともCにあるのでしょうか。)


このように試してみてください。

void GetIndValue(int IndNo, int Vol, double &out[]){}
 
Andrey Barinov:

お試しください

ありがとうございます。
 

//--- インジケータを追加しようとする新しいサブウィンドウの番号を取得します。

int subwindow=(int)ChartGetInteger(0,CHART_WINDOWS_TOTAL);

これは、私が見ているコードですhttps://www.mql5.com/ru/docs/chart_operations/chartindicatoradd

この例では、サブウィンドウにインジケータを配置する方法を示しています。 サブウィンドウが必要ない場合は、muwigの例で方法を示すだけでよいのでは?

Документация по MQL5: Операции с графиками / ChartIndicatorAdd
Документация по MQL5: Операции с графиками / ChartIndicatorAdd
  • www.mql5.com
Операции с графиками / ChartIndicatorAdd - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Alexander Antoshkin:

//--- 新しいサブウィンドウの番号を取得し、そこにインジケータを追加しようとします。

int subwindow=(int)ChartGetInteger(0,CHART_WINDOWS_TOTAL);

これは、私が見ているコードですhttps://www.mql5.com/ru/docs/chart_operations/chartindicatoradd

この例では、サブウィンドウにインジケータを配置する方法を示しています。 サブウィンドウが必要ない場合は、muwigの例でその方法を確認するだけでよいでしょう?

メインウィンドウにインジケータを追加したい場合。

サブウィンドウ

[in] チャートのサブウィンドウ番号です。0はメインチャートウィンドウを意味 します。新しいウィンドウにインジケータを追加するには、パラメータは最後に存在したウィンドウのインデックスより1つ多く、つまりCHART_WINDOWS_TOTALと 同じである必要があります。パラメータ値がCHART_WINDOWS_TOTALの 値を超える場合、新しいウィンドウは作成されず、インジケータも追加されません。

 
Karputov Vladimir:

メインウィンドウにインジケータを追加する必要がある場合。

//+------------------------------------------------------------------+
//|                                                         0000.mq5 |
//|                        Copyright 2016, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2016, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"

input int MA_Period=21; 
input int MA_Shift=0; 
input ENUM_MA_METHOD MA_Method=MODE_SMA;

int MA_handle=INVALID_HANDLE; 
//+------------------------------------------------------------------+ 
//| Expert initialization function                                   | 
//+------------------------------------------------------------------+ 
int OnInit() 
  { 
  
   MA_handle=iCustom(NULL,0,"Examples\\Custom Moving Average",  MA_Period,  MA_Shift, MA_Method,  PRICE_CLOSE  );
//--- попробуем добавить индикатор на график 
AddIndicator();

   return(INIT_SUCCEEDED); 
  } 

//+------------------------------------------------------------------+ 
//| Функция проверки и добавления индикатора на график               | 
//+------------------------------------------------------------------+ 
bool AddIndicator() { if(MA_handle==INVALID_HANDLE) 
{ Print(__FUNCTION__,"  Создаем индикатор ");

 MA_handle=iCustom(NULL,0,"Examples\\Custom Moving Average",  MA_Period,  MA_Shift, MA_Method,  PRICE_CLOSE  );
if(MA_handle==INVALID_HANDLE) 
{ 
 Print("Не удалось создать индикатор . Код ошибки ",GetLastError()); 
 } 
  }     
//--- сбросим код ошибки 
   ResetLastError(); 
//--- накладываем индикатор на график 
  
   Print("Mа построен "); 
//--- получим номер нового подокна, в которое добавим индикатор  
   int subwindow=(int)ChartGetInteger(0,CHART_WINDOWS_TOTAL); 
   PrintFormat("Добавляем индикатор на окно %d графика",subwindow); 
   if(!ChartIndicatorAdd(0,subwindow,MA_handle)) 
     { 
      PrintFormat("Не удалось добавить индикатор  на окно %d графика. Код ошибки  %d", 
                  subwindow,GetLastError()); 
     } 
   return(true); 
  } 
void OnDeinit(const int reason)
{
MA_handle=iCustom(NULL,0,"Examples\\Custom Moving Average",  MA_Period,  MA_Shift, MA_Method,  PRICE_CLOSE  );

ウラジミールさん、こんにちは。

私の質問の仕方が悪かったのでしょう。

サブウィンドウは必要ありません。インジケータは標準的なチャートのように価格チャートに配置される必要があります。

私はそれを一例としてとらえ、理解しようと努めています。

チャートに搭載するインジケーターに番号をつけて、「Add」ボタンで必要な枚数をチャート上に作成できるようにしたいのですが・・・・・。十字」ボタンで選択したものを削除したいのですが・・・・・・(まだ記述しません))。

理由: