コーディングのヘルプ - ページ 159

 
mladen:
コードのその部分を変更しないでください。コードのその部分は、あなたのブローカーが4または5桁のブローカーであるかどうかをチェックしています。また、初期預金に500ドル(リスク5%、ストップロス20ピップス、テストに使用したEURUSD)を使用したテストがありますが、この初期預金でも動作します。

こんにちは、ムラデンです。

昨日、注文のコーディングについて質問しました。

しかし、それはあまりにも複雑です。

私はシンプルなコーディングを望んでいるので、申し訳ありません。

こんな感じです。

口座残高$500

5% の危険と、開いたロット= $0.25

たくさん=$500* (危険/100)

ロット=$500*(0.05/100)

ロット=$500(0.0005)

たくさん=$0.25

ちょうどこのEA自動オープン$ 0.25ロットが好きです。

そしてロット数はStoplossまたはTProfitと混合しない。

私はあなたがこの問題を解決するために私を助けることができる願っています。

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

extern double lots = 0.1;extern double stopsize = 20;

extern double profsize = 10;

extern double Risk =5;

int err;

int ticket;

double stop;

double prof;

int init() { return(0); }

int deinit() { return(0); }

int start()

{

int TotalOrders = 0;

for (int i=0; i <= OrdersTotal(); i++)

{

if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES))

if (OrderSymbol() == Symbol())

TotalOrders++;

}

if (TotalOrders<1)

{

double sl = stopsize*Point*MathPow(10,Digits%2);

double tp = profsize*Point*MathPow(10,Digits%2);

stop = (Ask-sl);

prof = (Ask+tp);

ticket = OrderSend(Symbol(), OP_BUY, getLots(sl,Risk), Ask, 3, 0, 0, NULL,LimeGreen);

OrderModify( ticket, OrderOpenPrice(), stop, prof, 0, Blue);

}

err=GetLastError();

Comment(" ");

}

//

//

//

//

//

double getLots(double stopLoss, double risk)

{

RefreshRates();

double pPoint = MarketInfo(Symbol(),MODE_POINT);

double step = MarketInfo(Symbol(),MODE_LOTSTEP);

double minLot = MarketInfo(Symbol(),MODE_MINLOT);

double maxLot = MarketInfo(Symbol(),MODE_MAXLOT);

double lots = minLot;

if (risk>0 && stopLoss>0)

{

lots = AccountFreeMargin()*(risk/100.0)/(stopLoss*MarketInfo(Symbol(),MODE_TICKVALUE)/pPoint);

}

return(MathMax(MathMin(lots,maxLot),minLot));

}
 
hock87:
こんにちは、Mladen さん。

昨日、オーダーのコーディングについて質問しました。

しかし、それはあまりにも複雑でした。

申し訳ありません、私はシンプルなコーディングが欲しいのです。

こんな感じです。

口座残高$500

5% の危険と、開いたロット= $0.25

たくさん=$500* (危険/100)

ロット=$500*(0.05/100)

ロット=$500(0.0005)

たくさん=$0.25

ちょうどこのEA自動オープン$ 0.25ロットが好きです。

そしてロット数はStoplossまたはTProfitと混合しない。

私はあなたがこの問題を解決するために私を助けることができる願っています。

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

extern double lots = 0.1;extern double stopsize = 20;

extern double profsize = 10;

extern double Risk =5;

int err;

int ticket;

double stop;

double prof;

int init() { return(0); }

int deinit() { return(0); }

int start()

{

int TotalOrders = 0;

for (int i=0; i <= OrdersTotal(); i++)

{

if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES))

if (OrderSymbol() == Symbol())

TotalOrders++;

}

if (TotalOrders<1)

{

double sl = stopsize*Point*MathPow(10,Digits%2);

double tp = profsize*Point*MathPow(10,Digits%2);

stop = (Ask-sl);

prof = (Ask+tp);

ticket = OrderSend(Symbol(), OP_BUY, getLots(sl,Risk), Ask, 3, 0, 0, NULL,LimeGreen);

OrderModify( ticket, OrderOpenPrice(), stop, prof, 0, Blue);

}

err=GetLastError();

Comment(" ");

}

//

//

//

//

//

double getLots(double stopLoss, double risk)

{

RefreshRates();

double pPoint = MarketInfo(Symbol(),MODE_POINT);

double step = MarketInfo(Symbol(),MODE_LOTSTEP);

double minLot = MarketInfo(Symbol(),MODE_MINLOT);

double maxLot = MarketInfo(Symbol(),MODE_MAXLOT);

double lots = minLot;

if (risk>0 && stopLoss>0)

{

lots = AccountFreeMargin()*(risk/100.0)/(stopLoss*MarketInfo(Symbol(),MODE_TICKVALUE)/pPoint);

}

return(MathMax(MathMin(lots,maxLot),minLot));

}

ホック87

エクイティ、ストップロス、必要なリスクを考慮した場合、ロットサイズを計算する簡単な(r)方法は存在しません。また、ストップロスが分からないとリスクは計算できません(考えてみてください:例えば、1ロットの注文を出して、1ピップで決済するか、100ピップで決済するか、損失(そうすれば取られたリスク)は同じにはなりませんし、同じにはなりえません)。

もしそのように計算するならば(ストップロスがわからない)、それはリスク計算ではなく、単純なロットサイズの計算です(これはいかなる種類のリスク計算をも意味しません)。

 
mladen:
hock87

株式、ストップロス、必要なリスクを考慮した場合、ロットサイズを計算する簡単な方法はありません。また、ストップロスを知らずにリスクを計算することはできません(考えてみてください:例えば、1ロットの注文を出して、1ピップで決済するか、100ピップで決済するかでは、損失(そして取られたリスク)は同じにはなりませんし、同じになることもありえません)。

もし、そのような計算をするのであれば(既知のストップロスなし)、それはリスク計算ではなく、単純なロットサイズ計算です(これはいかなる種類のリスク計算を意味するものではありません)。

Mladenさん、おっしゃる通りです。

I know It does not imply any kind of risk calculation.

で、単純なロットサイズ計算がしたいだけなのです。

口座残高 と%で、ロットサイズを自動計算させる。

lots=$500*(risk%/100)

ロット=$500*(0.05/100)

ロット=$500(0.0005)

ロット=$0.25

このEAは、0.25ドルのロットを自動でオープンしてくれるのがいい。

そして、ロット数はストップロスやTProfitと混ざらない。

どのようにそれをコーディングするには?

ありがとうございます。

 
hock87:
Mladenさん、その通りです。

リスク計算を意味するものではないことは知っています。

単純なロットサイズ計算をしたいだけです。

口座残高とロットサイズを%で自動計算させる。

lots=$500*(risk%/100)

ロット=$500*(0.05/100)

ロット=$500(0.0005)

ロット=$0.25

このEAは、0.25ドルのロットを自動でオープンしてくれるのがいい。

そして、ロット数はストップロスやTProfitと混ざらない。

どのようにそれをコーディングするのですか?

ありがとうございます。

KimIVがここで説明している方法を試してみてください :b-Lots

 

mladenに感謝し、私は私の心の中で何に似ていると思う#1579、ところで、それはRSIまたはMFI式と同様の方法でDPOを変換することは可能ですか垂直スケールを正規化するのですか?Detrended Price Oscillator - MQL4 Code Base、ありがとうございました。

 
kenwa:
mladenに感謝し、私は私の心の中で何に似ていると思う#1579、ところで、それはRSIやMFI式が垂直スケールを正規化するのと同様の方法でDPOを変換することが可能なのでしょうか?Detrended Price Oscillator - MQL4 Code Base、ありがとうございました。

ケンワ

テンプレートがあれば難しくない

これは、DPOのRSIです。上部はDPOであり、下部はDPOのRSIです。

ファイル:
 

こんにちは、mladenさん。以前、macdのrsiを入手しましたが、最近のforce index FIとDPOのものと同様の方法/論理で作られているのでしょうか?

最近作られた新しいrsiバージョン(FIとDPO)を私のコンピュータに添付しましたが、icustom 関数を使ってそれらの出力値を呼び出すと問題が発生します。それは、チャートに表示されている0から100までではなく、-100から0から100までです。

ファイル:
 

こんにちは、Mladen。

私は問題があります。

買い注文が 逆方向へ移動し、25ポイント以上離れたところにある場合

自動で買い注文が出ます。

どのようにこの戦略的なコーディングするのですか?

ありがとうございます。

extern double lots = 0.1;

extern double stopsize = 50;

extern double profsize = 20;

int err;

int ticket;

double stop;

double prof;

int start()

{

int TotalOrders = 0;

for (int i=0; i <= OrdersTotal(); i++)

{

if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES))

if (OrderSymbol() == Symbol())

TotalOrders++;

}

if (TotalOrders<1)

{

ticket=OrderSend(Symbol(), OP_Buy, 0.1, Ask, 3, 0, 0, NULL,LimeGreen);

stop=(Ask+stopsize*Point);

prof=(Ask-profsize*Point);

OrderModify( ticket, OrderOpenPrice(), stop, prof, 0, Blue);

}

err=GetLastError();

// Comment("This is a test ", err, " ", stop, " ", prof);

Comment(" ");

return(0);

}
 
hock87:
こんにちは、Mladen。

私は問題があります。

買い注文が逆方向へ移動し、市場価格が25ポイント以上になると、再び買い注文が出されます。

自動で買い注文が出ます。

どのようにこの戦略的なコーディングに?

ありがとうございます。

extern double lots = 0.1;

extern double stopsize = 50;

extern double profsize = 20;

int err;

int ticket;

double stop;

double prof;

int start()

{

int TotalOrders = 0;

for (int i=0; i <= OrdersTotal(); i++)

{

if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES))

if (OrderSymbol() == Symbol())

TotalOrders++;

}

if (TotalOrders<1)

{

ticket=OrderSend(Symbol(), OP_Buy, 0.1, Ask, 3, 0, 0, NULL,LimeGreen);

stop=(Ask+stopsize*Point);

prof=(Ask-profsize*Point);

OrderModify( ticket, OrderOpenPrice(), stop, prof, 0, Blue);

}

err=GetLastError();

// Comment("This is a test ", err, " ", stop, " ", prof);

Comment(" ");

return(0);

}

ホック87

このコードはコンパイルできません(OP_BuyをOP_BUYに置き換えてください)また、他の注文を開くための条件も全く見当たりません。一応、1つだけ注文を許可しています(「if (TotalOrders<1)」の行)。

 

CCI fdoe hpp

あるスレッドからダウンロードしたのですが、CCI-zonesやMa-zonesのインジケーターより遥かに優れています。

ゾーンインジケーターのように画面に表示するように適応できるのでしょうか?

CCI設定13に設定していますが、簡単に可変設定インジケータにできるのであれば、それはボーナスであり、非常に副次的な要求です。

Forex-TSDのインジケーターですが、mq4フォルダは一緒にありませんでした。

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

TEAMTRADER

ファイル:
cci_fdoehpp.ex4  19 kb