[警告は閉鎖されました!】フォーラムを乱雑にしないために、どんな初心者の質問でも。プロフェッショナルは、通り過ぎないでください。あなたなしでは、どこにも行けない。 - ページ 242

 

この条項で問題に直面しているのですが、CCI条件を関数に実装する方法を教えてください。

条件を設定し、10ppの利益水準で注文を終了する必要があります。

1) CCIが下向きなら、10ppの利益水準で買い注文を決済する。

2)売る-似ている。

extern bool ClosePips   = true;//использовать закрытие ордера при профите 10пп по условиям ССИ
extern double profit    = 10.0;//профит по клозе

int start(){
double cci_0 = iCCI(NULL, 0, 14, PRICE_CLOSE, 0);;
double cci_1 = iCCI(NULL, 0, 14, PRICE_CLOSE, 1);;

if ( ClosePips){
int slip=3;
for (int trade2 = OrdersTotal() - 1; trade2 >= 0; trade2--) {
   OrderSelect( trade2, SELECT_BY_POS, MODE_TRADES);
   if (OrderSymbol() == Symbol()) {
   if (OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber) {
   if ((OrderType() == OP_BUY)&&( cci_0< cci_1 что сюда вписать???)) OrderClose(OrderTicket(), OrderLots(), Bid, slip, Blue);
   if ((OrderType() == OP_SELL)&&( cci_0> cci_1 что сюда вписать???)) OrderClose(OrderTicket(), OrderLots(), Ask, slip, Red);
   }Sleep(1000);}}}
будет ли это корректным если прописать вот так?
if ((OrderType() == OP_BUY)&&( cci_0< cci_1 && Bid - OrderOpenPrice()<=Point* profit ))

 
Alive писал(а)>>
EUR/USDなど一部の記号については、小数点以下5桁で表示されます。しかし、私の環境変数の値は小数点以下4桁までしかありません。環境変数の完全な値を取得するにはどうすればよいですか?

そして、どのように見ていたのでしょうか。Print()は常に4文字までしか出力しません。DoubleToStr() を使用するのが望ましい。

 
Martingeil >> :

CCIロックの問題に直面したのですが、CCIに対する条件を関数で実装する方法をご存知ですか?

条件を設定し、10ppの利益水準で注文を終了する必要があります。

1) CCIが下向きなら、10ppの利益水準で買い注文を決済する。

2) 売る-同様に。



これをしなければならない

if (OrderType()==OP_BUY && cci_0< cci_1 && Bid-OrderOpenPrice()>=Point* profit)
 
MrSoros >> :

そうでなければならないのです。


ありがとうございました。ちゃんとやればそれでいいんだ、看板をいじっているわけではないんだろう?

extern bool ClosePips   = true;//использовать закрытие ордера при профите 10пп по условиям ССИ

int start(){
double cci_0 = iCCI(NULL, 0, 14, PRICE_CLOSE, 0);;
double cci_1 = iCCI(NULL, 0, 14, PRICE_CLOSE, 1);;

if ( ClosePips){
int slip=3;
int profit=10;
for (int trade2 = OrdersTotal() - 1; trade2 >= 0; trade2--) {
   OrderSelect( trade2, SELECT_BY_POS, MODE_TRADES);
   if (OrderSymbol() == Symbol()) {
   if (OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber) {
   if (OrderType() == OP_BUY && cci_0< cci_1 && Bid-OrderOpenPrice() >= Point* profit) OrderClose(OrderTicket(), OrderLots(), Bid, slip, Blue);
   if (OrderType() == OP_SELL && cci_0> cci_1 && OrderOpenPrice() - Ask >= Point* profit) OrderClose(OrderTicket(), OrderLots(), Ask, slip, Red);
   }Sleep(1000);}}}
 
Martingeil >> :

ありがとうございました。このように正しく行えば、看板に問題はないのでしょうか?


サインは正しい。

アイデア自体は(CCIクロージング)、私から見ると、アハティではないのですが......。

以前にも同じようなことがありました...。

しかし、それは戦略の問題です。

トレーダーの数だけ、戦略がある...

 

演算子の正しい書き方を教えてください。"or " を使ったものはうまくいきません。買うべきでないところで買ってしまいます。

ありがとうございました。
if (
   {( ma1> ma2 && ma1> ma3  && Open[1]> ma1)} || 
   {( ma2> ma1 && ma2> ma3  && Open[1]> ma1)} ||
   {( ma3> ma1 && ma3> ma2  && Open[1]> ma1)}
   )
    OpenBuy();

ну и т. д.


 
中括弧は不要なので削除してください。そもそも、どうやってコンパイルしたんだろう。
 
granit77 >> :
中括弧は不要なので削除してください。まったくもって、どうやってコンパイルしたのだろう?

両方の方法でコンパイルしても、まだうまくいきません。

(不思議なことに、コンパイルできました =))。

 
costy_ >> :

両方の方法でコンパイルしましたが、まだうまくいきません。

if (( ma1> ma2 && ma1> ma3  && Open[1]> ma1) || 
    ( ma2> ma1 && ma2> ma3  && Open[1]> ma1) ||
    ( ma3> ma1 && ma3> ma2  && Open[1]> ma1)
   )
    OpenBuy();

- >>それはいい理屈だ。

の質問ですが、条件そのものは正しいのでしょうか?

 
ma1...ma3が何であるかを示し、その論理を言葉で説明しなさい。朝になれば、誰かが熱心に訂正してくれるでしょう :))