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

 
Alexey G. Smolyakov:
MQL4IndicatorsUsed フォルダーのフルパスです。フォルダから抜け出すことはできないようです。しかし、これは異常なことです。他のExpert Advisorは、同様のフォルダにあるインジケータを問題なく使用できます。しかし、このインジケータの何が問題なのか、私には理解できない。そのコードに目を通したが、理解するには知識と経験が足りなかった。最後の1小節しかカウントしないとか、そういう疑惑があります。

ならいい

ターミナルでCtrl+Dを押してデータウィンドウを開き、チャート上でインジケータを 投げると、データウィンドウに各バーにおけるインジケータバッファとその値が表示され、iCustom()を介して同じ数値を得ることができます。

いくつかのバーでEMPTY_VALUEを持つインディケータがあります - データウィンドウに空のセルが表示されます(インディケータ作者がEMPTY_VALUEの代わりに0.0を設定していないことは保証できません - あなたはそれを確認する必要があります)。

そして、iCustom()が呼ばれたときに、得られた値をEMPTY_VALUEと比較する必要があります。コドベース、ZigZag EA、ZigZagアップロードのいずれかを検索してください。

 
Igor Makanu:

ならいい

ターミナルでCtrl+Dを押してデータウィンドウを開き、チャート上でインジケータを 投げると、データウィンドウに各バーにおけるインジケータバッファとその値が表示されます。

いくつかのバーでEMPTY_VALUEの値を持つインディケータがあります - データウィンドウに空のセルが表示されます(インディケータ作者がEMPTY_VALUEの代わりに0.0を設定していないことは保証できません - あなたはそれを確認する必要があります)。

そして、iCustom()が呼ばれたときに、得られた値をEMPTY_VALUEと比較する必要があります。コドベースで検索するか、ZigZagのExpert Advisorで検索するか、ZigZagでファイルにアップロードしてください - そこには、EMPTY_VALUE指標の空の値を操作する方法の準備ができた例が表示されます。

ありがとうございます、EMPTY_VALUEの値を確認することで解決しました。
 
こんにちは。設定で設定した内容(ロングのみ/ショートのみ/ロング&ショート)を表示する機能の作り方。試してみたが、うまくいかない
string LSset()
{
string LS;
if (SymbolInfoInteger(Symbol(),SYMBOL_TRADE_MODE) == SYMBOL_TRADE_MODE_LONGONLY) LS="ONLY LONG";
if (SymbolInfoInteger(Symbol(),SYMBOL_TRADE_MODE) == SYMBOL_TRADE_MODE_SHORTONLY) LS="ONLY SHORT";
if (SymbolInfoInteger(Symbol(),SYMBOL_TRADE_MODE) != SYMBOL_TRADE_MODE_SHORTONLY && 
   SymbolInfoInteger(Symbol(),SYMBOL_TRADE_MODE) != SYMBOL_TRADE_MODE_LONGONLY) LS="LONG & SHORT";
return(LS);
}
ファイル:
 
Lomonosov1991:
こんにちは。設定で設定した内容(ロングのみ/ショートのみ/ロング&ショート)を表示する機能の作り方。試してみたが、うまくいかない

そのようなことはないはずです。このような関数を書くことは可能ですが、初心者には難しいです。

 
fxsaber:

そのようなことはないはずです。このような関数を書くことは可能ですが、初心者には難しいです。

検索ルールは、数年前に開発者がこれらの設定に専門家からアクセスできるようにすると約束しましたが、実現しませんでした。

ソリューションhttps://www.mql5.com/ru/forum/121619#comment_3208150

dll solution, don't know why you need ithttps://www.mql5.com/ru/forum/231434/page2#comment_6773340

ZS: 確認していませんが、スレッドを検索すると、チャートテンプレートを適用する際にこれらの設定を保存しない問題が残っているようです。

LongOnly, ShortOnly or Long&Short?
LongOnly, ShortOnly or Long&Short?
  • 2009.11.03
  • www.mql5.com
Не подсажет ли кто нибудь как внутри советника оределить в каком режиме он запущен LongOnly, ShortOnly or Long&Short? Заранее спасибо...
 
extern int punkt=100;
extern int Ordersss=3;
extern double xxx=1.2;

int PunktsX()
{
   int P=punkt;                             
   int i;
   for(i=Ordersss; i<NumberOfPositions(); i++)
   P*=xxx;
   return(P);
}

平均化アドバイザーの機能を作りました。3つ以上の注文が開いている場合、後続の注文はそれぞれさらに開くようにしました。

警告 型変換によるデータ消失の可能性)が出て修正できない

どうしたらよいかアドバイスをお願いします)

 
Lomonosov1991:

平均化アドバイザーの機能を作りました。3つ以上の注文が開いている場合、後続の注文はそれぞれさらに開くようにしました。

警告 型変換によるデータ消失の可能性)が出て修正できない

どうしたらよいかアドバイスをお願いします)

P=(int)(P*xxx);

より正確な計算を行うには、次のようにするとよいでしょう。

extern int punkt=100;
extern int Ordersss=3;
extern double xxx=1.2;

int PunktsX()
{
   double P=punkt;                             
   int i;
   for(i=Ordersss; i<NumberOfPositions(); i++)
   P*=xxx;
   return (int) P;
}
 
Konstantin Nikitin:

より正確な計算を行うには、次のようにするのがよいでしょう。

ありがとうございます) リターンでそんなことができるなんて知りませんでした)

 
Igor Makanu:

検索ルールは、数年前に開発者がこれらの設定を専門家からアクセスできるようにすると約束しましたが、実現しませんでした。

ソリューションhttps://www.mql5.com/ru/forum/121619#comment_3208150

dllソリューション、なぜ必要なのかわからないhttps://www.mql5.com/ru/forum/231434/page2#comment_6773340

ZS: 確認していませんが、スレッドを検索してみると、チャートテンプレートを適用する際にこれらの設定が保存されないという問題が残っているようです

ありがとうございます、試してみます)

 
Lomonosov1991:

試してみます)

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

ライブラリ: エキスパート

fxsaber さん 2019.06.04 16:40

// MT4-советник показывает, в каком режиме Long/Short был запущен.

#include <fxsaber\Expert.mqh> // https://www.mql5.com/ru/code/19003

int GetLongShortFlag( const int Chart_ID = 0 )
{
  MqlParam Params[];
  string Names[];
  
  const int Res = EXPERT::Parameters(Chart_ID, Params, Names);
  
  return(((Res & 3) << 1) + (Res & 1));
}

string LongShortToString( const int Chart_ID = 0 )
{
  const int Flag = GetLongShortFlag(Chart_ID);
  string Str = NULL;
  
  if ((bool)(Flag & SYMBOL_TRADE_MODE_LONGONLY) && (bool)(Flag & SYMBOL_TRADE_MODE_SHORTONLY))
    Str = "Long & Short";
  else if ((bool)(Flag & SYMBOL_TRADE_MODE_LONGONLY))
    Str = "Only Long";
  else if ((bool)(Flag & SYMBOL_TRADE_MODE_SHORTONLY))
    Str = "Only Short";
    
  return(Str);
}

int OnInit()
{
  Alert(LongShortToString());
  
  return(INIT_FAILED);
}