[ARCHIVE] フォーラムを散らかさないように、どんなルーキーでも質問してください。プロフェッショナルは、通り過ぎないでください。Nowhere without you - 3. - ページ 28

 
ここで、「パラメータ数が間違っている」というエラーはどこにあるのでしょうか?
MA1 = iMA(NULL, 0, MA_Period1, MODE_SMA, PRICE_CLOSE,0);
 
Сvovan-gogan:
ここで、「パラメータ数が間違っている」というエラーはどこにあるのでしょうか?


こんにちは!質問してくださってありがとうございます。お役に立ててうれしいです。

腰を低くして、知的に対応する。

iMAのパラメータが明らかに不足しています。

doubleiMA( 文字列シンボル、int timeframe、int period、int ma_shift、int ma_method、int applied_price、int shift)
移動平均の計算。
パラメータ
記号 - シンボル名:指標となるデータのシンボル名。NULLはカレントシンボルを意味する。
タイムフレーム - 期間チャートの期間の いずれかを指定することができます。0は現在のチャートの期間を意味します。
時期 - 移動平均計算の平均化期間。
ma_shift - 価格チャートに対するインジケータの相対的な移動。
ma_method - 平均化方式。移動平均 法の任意の値を指定することができます。
適用価格 - 使用した価格です。価格定数の いずれかを指定することができる。
シフト - 指標バッファから取得した値のインデックス(現在のバーから指定した期間だけ後ろにずらす)。
--------------------------

ほとんどの場合、パラメータが欠落しています。

ma_shift- 価格チャートに対するインジケータのシフトです。

またのご質問をお待ちしております。

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

あなたの力が必要です。

この式は翻訳する必要があります

OrderOpenPrice()-OrderClosePrice()
をポイント数に変換し、ロットに応じて各ポジションの利益またはストップを計算します。そして最後に合計金額を利益またはストップ高の%で表示します。
 
Vodya:

あなたの力が必要です。

この表現を翻訳する必要があります

をアイテム数に換算すると............。


まず、目的の項目を選択します。

( OrderOpenPrice() - OrderClosePrice() ) /Point - これは選択したポジションの利益/損失をpipsで表したものです。

---------------

実は、この計算には、I.Kimの適当な関数を使った方がいいんです。そして、その作業は数倍楽になる。

https://www.mql5.com/ru/forum/131859

https://www.mql5.com/ru/forum/131859/page3#434225

 
leonid553:


まず正しい位置を選択します。

( OrderOpenPrice() - OrderClosePrice() )* ポイント - 選択したポジションの損益をポイントで表示します。

---------------

実は、この計算には、I.Kimの適当な関数を使った方がいいんです。そして、その作業は数倍楽になる。

https://www.mql5.com/ru/forum/131859

https://www.mql5.com/ru/forum/131859/page3#434225


ありがとうございます。しかし、彼の機能には私が必要とするものが見つかりませんでした。そしてこの場合、( OrderOpenPrice() - OrderClosePrice() )* ポイント I make ( OrderOpenPrice() - OrderClosePrice() ) / ポイント

0000000000000000を掛けると、次のようになります。

 

そうです、もちろんです。間違えました。掛け算ではなく、ポイントで割るのです。

機能別

それはとてもシンプルなことです。例えば、こんな感じです。未決済の取引(仮に)- EURUSDの買いポジションと GBPUSDの売りポジション の入金通貨での現在の利益(または損失)を知る必要があります。

関数https://www.mql5.com/ru/forum/131859/page3#434223 を取る。

を、コードの最後(START関数の外側)にコピーしてください。

すると、現在のポジションの通貨建て利益が(STARTの内側に設定されている)ようになります。

double PROFIT_ EURUSD = GetProfitOpenPosInCurrency(EURUSD,OP_BUY, -1) ;

double PROFIT_FUNTDOLLAR = GetProfitOpenPosInCurrency(GBPUSD,OP_SELL, -1) ;

これらのポジションを開く際にマジックを指定した場合は、"-1 "の代わりにマジックを指定してください。

もし、現在のシンボル、つまりEAが配置され動作しているチャートでのポジションの利益を知る必要がある場合は、:

double PROFIT_NULL = GetProfitOpenPosInCurrency(NULL,OP_SELL, -1) ;

 
leonid553:

そうです、もちろんです。間違えました。掛け算ではなく、ポイントで割るのです。

機能別

それはとてもシンプルなことです。例えば、こんな感じです。未決済の取引(仮に)- EURUSDの買いポジションと GBPUSDの売りポジション の入金通貨での現在の利益(または損失)を知る必要があります。

関数https://www.mql5.com/ru/forum/131859/page3#434223 を取る。

を、コードの最後(START関数の外側)にコピーしてください。

すると、現在のポジションの通貨建て利益が(STARTの内側に設定されている)ようになります。

double PROFIT_ EURUSD = GetProfitOpenPosInCurrency(EURUSD,OP_BUY, -1) ;

double PROFIT_FUNTDOLLAR = GetProfitOpenPosInCurrency(GBPUSD,OP_SELL, -1) ;

これらのポジションを開く際にマジックを指定した場合は、"-1 "の代わりにマジックを指定してください。

もし、現在のシンボル、つまりEAが配置され動作しているチャートでのポジションの利益を知る必要がある場合は、:

double PROFIT_NULL = GetProfitOpenPosInCurrency(NULL,OP_SELL, -1) ;


アドバイスありがとうございました。

しかし、利益を初期預金に対するパーセンテージで設定し、預金の損失を計算したいのです。動作はしますが、各トレードのみで、トータルの損失額を計算することはできません。

 
Vodya:


ご指摘ありがとうございます。

しかし、最初の入金額に対する割合で利益を計算したいし、入金額に対する損失も計算したい。計算できるのですが、各案件のみで、合計ではうまくいきません。

以下は、Profit and Lossを計算するための関数です。

サイズ/損失値があれば、それが預金に対する割合として何であるかを計算することができます。

 double Profit(){
   double profit=0; 
   for(int i=OrdersHistoryTotal()-1; i>=0; i--){
     if(!OrderSelect(i,SELECT_BY_POS,MODE_HISTORY))continue; 
     if(OrderSymbol()!=Symbol())continue;
     if(OrderMagicNumber()!=Magic)continue;
     if(OrderType()>1)continue;
     if(OrderProfit()>0)profit+=OrderProfit();
    }        
 return(profit);} 

 double Loss(){
   double loss=0; 
   for(int i=OrdersHistoryTotal()-1; i>=0; i--){
     if(!OrderSelect(i,SELECT_BY_POS,MODE_HISTORY))continue; 
     if(OrderSymbol()!=Symbol())continue;
     if(OrderMagicNumber()!=Magic)continue;
     if(OrderType()>1)continue;
     if(OrderProfit()<0)loss+=OrderProfit();
    }        
 return(loss);} 
 
charter:

以下は、Profit and Lossを計算するための機能です。

損益の大きさ・金額で、これが預かり金の何パーセントになるかを計算することができます。


ありがとうございます。

しかし、この行でコンパイルすると

double Profit(){

と表示されます。

とこの'}'があります。- 最後のreturn(0)があるアンバランスな括弧。

全くどこに貼り付ければいいのでしょうか?置き場所を間違えたのかもしれません