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

 

それとも、そのようなデザインは、当該楽器に刻みがない場合、役に立たないのでしょうか?

#property strict

extern bool USE_Info=true;

static datetime TimeN=0;

//+------------------------------------------------------------------+

//| Expert tick function                                             |

//+------------------------------------------------------------------+

int start()

  {

   datetime TimeC=iTime("GBPUSD",5,0);

   if(TimeN==0)TimeN=TimeC;

   if(TimeN==TimeC) return(0);

   TimeN=TimeC;

   return(INIT_SUCCEEDED);

  } 

 

これを理解するのを助けてください。

例えば、EURUSDのポジションを ストップ30pips、テイクプロフィット30pipsで建てる 必要があります。 ポジションを建てる前に、負けトレードの損失が100米ドルになるように、ロットボリュームを指定する必要があります。MQL5を使ってどのように計算するのですか?

SL=30。

Lot=計算式

私のトレーディングロボットを参考にしたい。

 
PabloEs:

これを理解するのを助けてください。

例えば、EURUSDのポジションを ストップ30pips、テイクプロフィット30pipsで建てる 必要があります。 ポジションを建てる前に、負けトレードの損失が100米ドルになるように、ロットボリュームを指定する必要があります。MQL5を使ってどのように計算するのですか?

SL=30とした。

Lot=計算式

あらかじめご了承ください。

4の場合、このように計算することができます。

Lot=Money / (Hundred_in_points*MarketInfo(Symbol(),MODE_TICKVALUE))

 
Artyom Trishkin:

四つ子の場合、このように計算できます。

Lot=Money / (Hundred_in_points*MarketInfo(Symbol(),MODE_TICKVALUE))

ありがとうございます、でも私には効果がありませんでした。
 
PabloEs:
ありがとう、でも役に立たなかったよ。

MarketInfo() の代わりにSymbolInfoDouble() を参照してください。

役に立たなかったとはどういうことですか?魚をあげたのではなく、釣竿をあげたのです。

 
Artyom Trishkin:

MarketInfo() ではなく SymbolInfoDouble() を参照してください。

で、うまくいかなかったってどういうこと?魚をあげたんじゃない、竿をあげたんだ。

釣竿を使うには若すぎる)

上記の式を使ってスクリプトを書きました

void OnStart()

{

//---

double Test=100/(300*_Point*SymbolInfoDouble(_Symbol,SYMBOL_TRADE_TICK_VALUE));

アラート(テスト)。

33333.33と出ますが、もしかして荒らしの間違いでは?

 
PabloEs:

釣竿を使うにはまだ若すぎる)

上記の式を使って書かれたスクリプトは以下の通りです。

void OnStart()

{

//---

double Test=100/(300*_Point*SymbolInfoDouble(_Symbol,SYMBOL_TRADE_TICK_VALUE));

アラート(テスト)。

33333.33と出ますが、もしかして荒らしの間違いでは?

マネー /(Stoplos_in_points*MarketInfo(Symbol(),MODE_TICKVALUE))

そして、あなたはそれを価格で計算する

 
PabloEs:

釣竿を使うにはまだ若すぎる)

上記の式を使って書かれたスクリプトは以下の通りです。

void OnStart()

{

//---

double Test=100/(300*_Point*SymbolInfoDouble(_Symbol,SYMBOL_TRADE_TICK_VALUE));

アラート(テスト)。

33333.33が出るんだけど、もしかして荒らしが間違ってる?

私は以前、このような数式を書きました

Lot = AccountFreeMargin()*Risk/100*_Point/(StopLoss*MarketInfo(Symbol(), MODE_TICKVALUE))です。

AccountFreeMargin()*Risk/100 --- これはあなたの100ドルです。

StopLoss・・・注文開始価格とSL価格の差(ポイントではありません。)

これに伴い、MarketInfo()はSymbolInfoDouble()に置き換える必要があります。

 
PabloEs:

釣竿を使うにはまだ若すぎる)

上記の式を使って書かれたスクリプトは以下の通りです。

void OnStart()

{

//---

double Test=100/(300*_Point*SymbolInfoDouble(_Symbol,SYMBOL_TRADE_TICK_VALUE));

アラート(テスト)。

33333.33と出ますが、もしかして荒らしの間違いでは?

あなたが持っているものを参照してください、もしロシア語で、そして_Pointで、0.00001に等しい。

0.003ポイント(300*0.00001)で100ドル儲けるには、ロットは33333.33でなければならないのです。)

 
Artyom Trishkin:

お金 /(Staples_in_points*MarketInfo(Symbol(),MODE_TICKVALUE))です。

そして、あなたはそれを価格で計算する

その通りです。この式を書いたときは、SLは指定された値で定義されるのではなく、注文の開始価格と あるレベルとの差として計算されたので、リスク量に_Pointを掛ける必要がありました。
理由: