[ARCHIVE]フォーラムを乱立させないために、どんなルーキーの質問でも。プロフェッショナルの皆さん、通り過ぎないでください。あなたなしではどこにも行けない - 5. - ページ 17

 

こんにちは!オブジェクトの説明だけがわかっている場合、オブジェクトが手動で削除されたかどうかを知るにはどうしたらよいでしょうか。 たとえば、不明な名前のオブジェクト、テイクプロフィットが オブジェクトに添付されており、オブジェクトが削除されるとテイクプロフィットが削除され、オブジェクトの名前がわからない......

オブジェクトの名前を変更する方法はありますか?

 

EAの改良をお願いします!シグナルが来たら1つ、次のシグナルが来たら1つと、未決済の注文があっても関係なく注文を出すようにしたいのです。

どこが悪いか教えてください!

 m0=iMA(NULL,0,PeriodMA,0,MODE_SMA,PRICE_CLOSE,0);
    m1=iMA(NULL,0,PeriodMA,0,MODE_SMA,PRICE_CLOSE,1);
    lwma=iMA(NULL,0,PeriodLWMA,0,MODE_LWMA,PRICE_CLOSE,0);
    lwma1=iMA(NULL,0,PeriodLWMA,0,MODE_LWMA,PRICE_CLOSE,1);
    sar=iSAR(NULL,0,step,maximum,0);
    sar1=iSAR(NULL,0,step,maximum,1);
//+------------------------------------------------------------------+
   
      Lots=NormalizeDouble(AccountFreeMargin(),0)*MaxRisk/1000;
     if(Lots<0.01) 
    return(Lot);
//--------------------------------------------------------------------
    balans=NormalizeDouble(AccountFreeMargin(),2);
//--------------------------------------------------------------------
   total=OrdersTotal();
   if(OrdersTotal()>=0)
     {
   x=1;
   x++;  
//==========================Медленный==================================
   if( m1>lwma1 && m0<lwma && balans>0 && total<x)
     {
     ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,3,Ask+sl*Point,Ask-tp*Point,"0",Magik,0,Red);
     }
   if(ticket>0)
     {
     Alert("Продажа №",ticket,"\n",Symbol());
     return(0);
     }
//-------------------------------------------------------------------- 
   if ( m1<lwma1 && m0>lwma && balans>0 && total<x)
    {
      ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,Bid-sl*Point,Bid+tp*Point,"0",Magik,0,Blue);
     }
  if(ticket>0)
     {
      Alert("Покупка № ",ticket,"\n",Symbol());
      return(0);  
     }
//========================Быстрый=====================================
   
    if(sar1<Bid && sar>Ask && balans>0 && total<x)
      {
       ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,3,Ask+sl1*Point,Ask-tp1*Point,"0",Magik1,0,Red); return;
      }
    if(ticket>0)
      {
      Alert("Продажа №",ticket,"\n",Symbol());
       return(0);
      }
//---------------------------------------------------------------------
  if(sar1>Ask && sar<Bid && balans>0 && total<x)
      {
      ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,Bid-sl1*Point,Bid+tp1*Point,"0",Magik1,0,Blue);
      }
   if(ticket>0)
     {
         Alert("Покупка №",ticket,"\n",Symbol());
         return(0);
        }
       }
 

行き詰まり

if(Ma_1>Ma_2 && flagg==0) {PlaySound("news.wav"); flagg=1; flag=0; }.

if(Ma_1<Ma_2 && flag==0) {PlaySound("ok.wav"); flag=1; flagg=0; }.

Print(flag,flagg)です。

Ma_1 - short
Ma_2 - long

Ma_1>Ma_2 で news.wav を停止せずにビープし、0 1 を表示する場合 (すなわち、flag=0 flagg=1)。

が、flagg=1の時に条件(Ma_1>Ma_2 && flagg=0)が成立して{PlaySound("news.wav")が通るのはどうしてでしょう?

 
すべてこんにちは、私は順序が開いていない場合、例えば、1000のrequittyとrequittyの%は5%に設定されているrequited量の初期値の一定の割合の後にすべての位置を閉じるためにEAをリメイクする必要があるので、それはrequitty 1050とすべての位置を閉じ、私はEAがグローバル変数を記録 し、彼はこの値を読んで、位置を閉じていたことが、EAは閉じたいとは思わないことを作った。残高が増え、「資本」の5%でいくつかのポジションを決済しなければなりませんが、1050にはならず、もう少し待たなければならないこともありますし、価格が方向転換して利益ではなく損失になってしまいます。!!ご返信ありがとうございました。
ファイル:
 
こんばんは!(^o^)であることは正しく理解されていますか?
アイストキャスティック
モード
私が言っているのは、KラインかDラインか?さらに、0がKで、1がD?
 

そして、グローバル変数の ない、このようなバリアントを見てください。

if(Profit>AccountEquity( )*koefitsientudaleniya){  
   int Total=OrdersTotal();
    for( i=OrdersTotal()-1;i>=0;i--){
  OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
  if(OrderSymbol() != Symbol()) continue; 
   if (OrderMagicNumber() != 450) continue;
   if(OrderType()==OP_SELL) {
  OrderClose(OrderTicket(),OrderLots(),Ask,6,Red);Print(" i " , i,"  GetLastError()CloseOP_SELL ", GetLastError()  );}
   if(OrderType()==OP_BUY)  {
  OrderClose(OrderTicket(),OrderLots(),Bid,6,Red);Print(" i " , i,"  GetLastError()CloseOP_BUY ", GetLastError()  );}}} и виличины, закрываем все ордера!
//----
 
 
そう、マッシュを変える前にシグナルが出ないはずなんです!!!!なんとなく...おそらく、コード全体を見るのでしょう表示されないようですが...。
 
例えば1000のような未決済の注文がないときに、eQuityの値をアドバイザーに記憶させ、%-5と書いたように、すべてのポジションが閉じられたときにeQuityの値は1050になります。
 
lottamer:

行き詰まり

if(Ma_1>Ma_2 && flagg==0) {PlaySound("news.wav"); flagg=1; flag=0; }.

if(Ma_1<Ma_2 && flag==0) {PlaySound("ok.wav"); flag=1; flagg=0; }.

Print(flag,flagg)です。

Ma_1 - short
Ma_2 - long

Ma_1>Ma_2 で news.wav を停止せずにビープし、0 1 を表示する場合 (すなわち、flag=0 flagg=1)。

が、flagg=1の時に条件(Ma_1>Ma_2 && flagg=0)が成立して{PlaySound("news.wav")が通るのはどうしてでしょう?


フラグの状態を条件ごとに分けて表示する。2つ目のフラッグの状態は、コンディションに考慮されないので、そうなってしまったのですね。

追伸:また、混乱を避けるために、Print("flag=",flag, "flagg=",flagg) と出力する方が便利です。

 

デモのロボットもそうなっています。どうして書こうと思ったのか、詳しく覚えていないんです。

if(Profit>AccountBalance()*koefitsientudaleniya){
int Total=OrdersTotal();
for( i=OrdersTotal()-1;i>=0;i--){
OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
if(OrderSymbol() != Symbol()) continue;
if(OrderMagicNumber() != 450) continue;
if(OrderType()==OP_SELL) {
OrderClose(OrderTicket(),OrderLots(),Ask,6,Red);Print(" i " ), i,"GetLastError()CloseOP_SELL", GetLastError() );}.
if(OrderType()==OP_BUY){
OrderClose(OrderTicket(),OrderLots(),Bid,6,Red);Print(" i "), i," GetLastError()CloseOP_BUY ", GetLastError() );}} // 利益が指定した値を超えたら、すべての注文を決済します!
//----

あるいは、年上の友人に助言してもらうか...。