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

 
クレジットを取得する方法、または入金する方法を教えてください。
 

このインジケータTrendToTrend_openを使用するExpert Advisorのコードは次の通りです。

下のコード

質問 - なぜExpert Advisorは終値で このインジケータを設定するのですか?

//--- входные параметры
input int LongTrend=14; // Период LongTrend
input int ShortTrend=7; // Период ShortTrend
input int EA_Magic=0;   // Magic Number советника
input double Lot=0.02; // Количество лотов
input double STR= 0.14;
input double TR= 0.1;
input double TP= 0.55;

//--- глобальные переменные

int TrendToTrend;
int TrendToTrendOpen;

//+------------------------------------------------------------------+
//| Expert initialization function |
//+------------------------------------------------------------------+
int OnInit()
  {
  //--- достаточно ли количество баров для работы
   if(Bars(_Symbol,_Period)<60) // общее количество баров на графике меньше 60?
     {
      Alert("На графике меньше 60 баров, советник не будет работать!!");
      return(-1);
     }
TrendToTrend=iCustom(_Symbol,0,"TrendToTrend",LongTrend,ShortTrend);
TrendToTrendOpen=iCustom(_Symbol,0,"TrendToTrend_open",LongTrend,ShortTrend);

if(TrendToTrend<0||TrendToTrendOpen<0)
     {
      Alert("Ошибка при создании индикаторов - номер ошибки: ",GetLastError(),"!!");
      return(-1);
     } 
   return(0);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//--- освобождаем хэндлы индикаторов
   IndicatorRelease(TrendToTrend);
   IndicatorRelease(TrendToTrendOpen);
   }
//+------------------------------------------------------------------+
//| Expert tick function |
//+------------------------------------------------------------------+
void OnTick()
  {
   static datetime Old_Time;
   datetime New_Time[1];
   bool IsNewBar=false;

// копируем время текущего бара в элемент New_Time[0]
   int copied=CopyTime(_Symbol,_Period,0,1,New_Time);
   if(copied>0) // ok, успешно скопировано
     {
      if(Old_Time!=New_Time[0]) // если старое время не равно
        {
         IsNewBar=true;   // новый бар
         if(MQL5InfoInteger(MQL5_DEBUGGING)) Print("Новый бар",New_Time[0],"старый бар",Old_Time);
         Old_Time=New_Time[0];   // сохраняем время бара
        }
     }
   else
     {
      Alert("Ошибка копирования времени, номер ошибки =",GetLastError());
      ResetLastError();
      return;
     }
//--- советник должен проверять условия совершения новой торговой операции только при новом баре
   if(IsNewBar==false)
     {
      return;
     }
//--- Имеем ли мы достаточное количество баров на графике для работы
   int Mybars=Bars(_Symbol,_Period);
   if(Mybars<60) // если общее количество баров меньше 60
     {
     Alert("На графике менее 60 баров, советник работать не будет!!");
     return;
     }
return; 
}
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы индикаторов / Ценовые константы
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы индикаторов / Ценовые константы
  • www.mql5.com
Стандартные константы, перечисления и структуры / Константы индикаторов / Ценовые константы - Документация по MQL5
 

こんにちは。


私の質問に対する答えがどこに書いてあるか教えてください。

私は、異なる原則に基づいて取引を開始する2つの戦略を持つEAを持っています。最終的に共通の位置づけがあるのです。

もう少し後、各戦略がどのようにポジションに貢献したかを理解する必要があります。では、どの戦略(2つ)がポジションを開いたのか。

どうすればいいのか?


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

 
sanderz:

こんにちは。


質問の答えの方向性を教えてください。

私は、異なる原則に基づいて取引を開始する2つの戦略を持つEAを持っています。最終的に共通の位置づけがあるのです。

もう少し後、各戦略がどのようにポジションに貢献したかを理解する必要があります。では、どの戦略(2つ)がポジションを開いたのか。

どうすればいいのでしょうか?


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

もしあなたのEAにストラテジーの1つを無効にする機能があり、設定でマジックナンバーを変更できる場合。そこで、口座に2つのEAを追加し、それぞれのストラテジーを無効にして、ポジションに異なるマジックナンバーを設定し、履歴のマジックナンバーを使って、どちらがより多くの利益または損失を与えているかを追跡する必要があります。
 
Kino:
EAにストラテジーの1つを無効化する機能があり、設定でマジックナンバーを変更できる場合。そして、2つのEAをアカウントに入れ、それぞれのストラテジーを無効にして、ポジションに異なるマジックナンバーを割り当て、マジックナンバーでより多くのプラスまたはマイナスを与えるものをヒストリーでトレースします。

返信ありがとうございました。ストラテジーのポジションが開いていると値が変わる静的変数を 作りました(クローズとストップロスでも値が変わる)。一般的にこれは問題なく動作しますが、EAを再起動すると注文が失われることは理解しています。

Документация по MQL5: Основы языка / Переменные / Статические переменные
Документация по MQL5: Основы языка / Переменные / Статические переменные
  • www.mql5.com
Основы языка / Переменные / Статические переменные - Документация по MQL5
 
なぜお金が回らないのか?
ファイル:
965pp1ixr4.png  2000 kb
 
sneak:
なぜお金が回らないのか?
計算の更新は頻繁ではありません。1日1回くらいかな。
 

ありがとう、覚えておくよ。

地下にコンピューターがある、......、ポットを採掘する......、何かしよう。

 

なぜ関数が0を返すのか理解できない。

int BarsAmountPassed(datetime open_time)
  {
   datetime time_array[];
   int n;
   Print("inpupt time=",TimeToString(open_time));
   CopyTime(_Symbol,_Period,open_time,TimeCurrent(),time_array);
   n=ArraySize(time_array);
   Print("number of elements in array=",n);
   return(n);
  }

例えばこんな呼び方。

int bars;
bars=BarsAmountPassed(1365198000);  
Print(__FUNCTION__+": Баров прошло с этого времени ",bars);
nは正しく書き込みますが、0を返します。
 
tor4en:

なぜ関数が0を返すのか理解できない。

例えばこんな呼び方。

nは正しく書き込みますが、0を返します。
不思議なことに、関数の型をshortやdoubleに変えると、計算された値(この例では4であることが判明)が返ってくるのです。しかし、int 0.では
理由: