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

 
Aleksei Beliakov:

最後の行にスラッシュがないのはなぜですか?また、マクロから値を返すことは可能ですか?

これはマクロ置換構文、ストリンググルーイングです。

以下は、値https://www.mql5.com/ru/forum/318246/page10#comment_12652228 を返す場合の例です。

 
どうか、どなたか助けてください。
 
jaffer wilson:
どうか、どなたか助けてください。
歌詞の代わりに、質問をするのです。誰が放送しても、フォーラムの中身を考え、手助けしてくれる。
 
if (MA5>MA20)
{
Signal=1です。
}

if(Signal>TradeLevel) // TradeLevelが0に設定される。
{
ticket=OrderSend(Symbol(,OP_BUY,Lot,Ask,3,Ask-SL*Point,Bid+TP*Point,「Optim」,16384,0,青)。
}



なぜこのロジックがうまくいかないのか、教えてください。(mql4)
お買い得品は開きません。

(その他、変数、すべて記述されています。MTの標準的な梟のテンプレートで、コンパイルエラーはありません)
 
Ivan Butko:

   if (MA5>MA20)
     {
      Signal=1;
     }
   if(Signal>TradeLevel) // TradeLevel установлен в 0.
     {
      ticket=OrderSend(Symbol(),OP_BUY,Lot,Ask,3,Ask-SL*Point,Bid+TP*Point,"Optim",16384,0,Blue);
     } 


なぜこのロジックがうまくいかないのか、アドバイスをお願いします。(mql4)
トレードは開きません

(その他、変数、すべて記述されています。MTの標準的な梟のテンプレートで、コンパイルエラーは ありません)

では、ロジックが機能していないのか、EAのポジションが開いていないのか?

まず "Experts "誌を見るのが良い習慣です。書きたいことがたくさんあります。そして、「Journal」もチェックしたい。

取引要求を 送信する際に、まさに2つのエラーと1つの不明確な点が見られます。

 
Artyom Trishkin:

では、ロジックが機能していないのか、EAのポジションが開いていないのか?

まず "Experts "誌を見るのが良い習慣です。書きたいことがたくさんあります。そして、「ジャーナル」も見ておいて損はない。

私の頭の中では、トレードのリクエストを送る ときに、ちょうど2つのエラーと1つの不確かさがあります。

ありがとうございます!うまくいきました

ただ、このロジックを標準のMACD EAに再展開しました。
ただ、さまざまな信号を展開し、それをまとめるためのベースが必要だったのです。

お手数をおかけして申し訳ございません。(ちなみにログは空で、エラーもなく、ただトレードを開かなかっただけです)。

差し支えなければ、やはりエラーのご指摘をお願いします

 

プリミティブコードがあります

templ(T)class CData{
public:CData(){};~CData(){};
       T Total(T &mas[]  ,int y){return(ArraySize(mas));}    
       T Total(T &mas[][],int y){return(ArraySize(mas));}}

Total() 関数を呼び出す方法についての質問、私はOnInit()の例でそれを呼びたい、みんな失礼をしないでください、私はjackassです、私はヘルプを理解していない?クラスのメモリーを削除する必要がありますか?削除する場合、どこでどのように削除するのですか?

 

取引ごとのリスクを計算する際の不具合。

課題: あらゆる商品(FX、マリオン、CFDを含む)の取引あたりの許容リスクレベルが250ドルである場合のロットサイズを計算する。

MY REALIZATION (for BUY, snippet of function code):

//valSL - размер стопа
//price - цена открытия ордера
//iLots - размер лота
SL_punkt=(price-valSL)/MarketInfo(currencySelect,MODE_POINT); //Переводим денежное выражение в пункты
 double pricePunkt=NormalizeDouble(iLots*MarketInfo(symb,MODE_TICKVALUE)*SL_punkt,MarketInfo(symb,MODE_DIGITS)); //Вычисляем уровень убытка при заданном размере лота

問題: このコードは、通貨ペア(クロスを含む)、金、原油を含むすべての資産の損失を正しく計算しますが、指数、nq100、例えば、正しく計算さ れません。つまり、私のスクリプトデータ(潜在的な取引損失)は、MT4STRATEGY Testerが 読み取る値よりも、常に10倍も少ないのです。

いくつかの注意点

1. テストはアルパリターミナルで実施しました。

2.端末によると、XAUUSD、BRN(原油)、NQ100の利益計算方法は「CFD」、通貨ペアの場合はそれぞれ「FX」となっています。

問題は、私が考慮していない契約サイズにあると思います(原油の場合-1000、XAUUSDの場合-100、NQ100の場合-10)。しかし、それならなぜXAUUSDやBRNは正しくカウントされるのに(通貨ペアも)、NQ100はカウントされないのでしょうか?もしかして、アルパリのターミナルシンボルのプロパティで利益計算方法が「CFD」になっているにもかかわらず、実際は「FX」としてカウントされているのでは?こんなことが可能なのか?

一般的に、私は誰かが私のスクリプトのエラーとそれを修正する方法を説明することに感謝します。

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

 
Сергей Михеев:

トランザクションごとのリスクを計算する際の不具合。

mode _ticksize

 
Yurij Kozhevnikov 2019.08.10 17:57 EN
Сергей Михеев:

取引ごとのリスク計算の不具合。

mode _ticksize

xxxxxxxxを読む

これでは、残念ながら問題は解決しません。私は

MODE_TICKVALUE равно MODE_POINT и равно MODE_TICKSIZE (для NQ100 это 0.1)

このコードのバリエーションも試してみました。

double StoimPunkt(string B){
double S = MarketInfo(B,MODE_TICKVALUE)/(MarketInfo(B,MODE_TICKSIZE)/MarketInfo(B,MODE_POINT));return(S);
}
//valSL - размер стопа
//price - цена открытия ордера
//iLots - размер лота
SL_punkt=(price-valSL)/MarketInfo(symb,MODE_POINT); //Переводим денежное выражение в пункты
 double pricePunkt=NormalizeDouble(iLots*StoimPunkt(symb)*SL_punkt,MarketInfo(symb,MODE_DIGITS)); //Вычисляем уровень убытка при заданном размере лота

の場合、結果は上記の例と全く同じになります。

他に何かアイデアはありますか?