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

 

何かがうまくいっていないような気がするんです。PLEASE HELP.

ローソク足がある値より大きければ、それ以上の取引を禁止する、というものです。

bool Trade=true。

//---------- start()

{.......

if(CalculateCurrentOrders(Symbol())==0 && CheckVolume()==1) CheckForOpen(); //--------open order if (no order is open) AND (candlestick is not larger than)

if(CalculateCurrentOrders(Symbol())==0 && CheckVolume()==-1) Trade=false; //--------- (未決済注文がない) AND (ローソク足がより大きい) 場合、Trade を false セットする。

......}

//------- TradeはCheckForOpen()関数で使用されます。

void CheckForOpen() //------------------- 条件とオープンオーダーのチェック

{int res;

if( トレード && A()==-1 && B()==-1) //------- オープン状態を確認する。

{ res=OrderSend(Symbol(),OP_SELL,Lot,Bid,2,Ask+SL*Point,Bid-TP*Point,"",MAGICMA,0,Red); //---------条件を満たした場合、注文が発注される。

trade=false; }.//-------------取引に取引禁止値が設定される。そして、ここで効果を発揮する。テイクオーダーで注文を閉じると、その後、古い条件がまだ有効であるにもかかわらず、新しい確定条件が来るのを待ちます(以前は、アドバイザーが連続的に注文を開けていました)。

.........}

//-------------------------- キャンドルの高さを確認する

int CheckVolume()

{ double volume=High[1]-Low[1]; //------ローソク足の高さを計測する。

if (volume <= CandleVolume*Point) return (1); //---------- もしローソク足が

if (volume > CandleVolume*Point) return (-1);//-----------if candle is more than.

return(0);}。

バージョンも試したが、うまくいかなかった。

void start()

{ .....

if(CalculateCurrentOrders(Symbol())==0 && CheckVolume()==1) CheckForOpen()。

.....}

.....

int CheckVolume()

{double volume=High[1]-Low[1]; //------ローソクの高さを計測する。

if (volume <= CandleVolume*Point) return (1); //---------- もしローソク足が

if (volume > CandleVolume*Point) {Trade=false; return (-1);}//------------- もしローソク足が

return(0);}。

 
dzhini:

うまくいくわけがない。


まずはインジケーターを作るべきかもしれない
 
Vinin:

まずはインジケータを作るべきかもしれない
とか、これがないとどうしようもないとか?
 

助けてくださいプリントを1回だけ表示させたいのですが、カチカチやる ごとにプリントを落とすにはどうしたらいいですか?



while(OrdersTotal() != 0 && OrderSelect(index, SELECT_BY_POS, MODE_TRADES)){
    if(OrderType() == OP_BUY)
     {
       Print ("-------   ",OrderSymbol()," "," BUY ",OrderLots()," trade was opened at ", OrderOpenPrice(),"; Stop loss:", OrderStopLoss(),
          "; Take profit:", OrderTakeProfit(), "; Ticket:", OrderTicket(),"; Open time:", OrderOpenTime());
                       return(0);
                }
    if(OrderType() == OP_SELL)
      {
       Print ("-------   ",OrderSymbol()," "," SELL ",OrderLots()," trade was opened at ", OrderOpenPrice(),"; Stop loss:", OrderStopLoss(),
          "; Take profit:", OrderTakeProfit(), "; Ticket:", OrderTicket(),"; Open time:", OrderOpenTime());
                      
       }
index++;
 
itum:

助けてくださいプリントを1回だけ表示させたいのですが、カチカチやるたびにプリント落ちしてしまうのですがどうしたらいいですか?


注文開始時にこのプリントを出力する。
 
sergeev:
このプリントは、注文が開かれたときに出力されます。


手動または他のEAですでにオープンされている注文の情報を出力 する必要があります。

 
itum:


手動または他のEAによって既にオープンされている既存の注文に関する情報を表示する必要があります。

そして、画面上にコメントで表示する。コメント
 

このエラーは何ですか?ターミナルからテストメールを送信すると、次のようなエラーが発生します。

- 2010.12.28 18:23:55 Mail: 530 5.7.0 STARTTLSコマンドを先に発行する必要があります。

 
dzhini:
とか、これがないとどうしようもないとか?

もちろん可能ですが、インジケータを使えばアルゴリズムを視覚的に確認しやすくなります
 
itum:


手動または他のEAによって既にオープンされている既存の注文に関する情報を表示する必要があります。


また、プリントのカウンターを作ることも可能です。整数の変数を宣言します。そして、注文がない場合は、0に設定します。そして、この変数がゼロに等しく、市場に注文があるかどうかをチェックし、注文データを出力し、この変数を1だけインクリメントします。注文が終了するとすぐに、この変数は再びゼロに設定されます。これは、コードが少なくとも1つの注文が表示されるのを待ち、それに関する情報をログに表示することを意味します。