変数の動作に関する混乱 - ページ 7

 

週末テスト用にExpert Advisorを start()なしで作り直した

1. チャートへ移動

2. パラメータを変更する

3. ログを見ると、文字列(青)は、int(緑)とは異なり、外部変数から誤った値を受け取っていることがわかります。

extern string ValueString = "DDD";
extern int    ValueInt    = 10;  
     
string tempString="val";
int    tempInt   =0;

bool   firsttime=true;
       
int init() {  
   if(firsttime) {     // значение присваевается тольо ОДИН раз   
      Print("иницилизация глобальных переменных");
      Print("tempString = ",tempString);
      Print("tempInt    = ",tempInt);
      
      Print("однократное присваение внешних значений глобальным переменным");
      tempString=ValueString; 
      tempInt   =ValueInt; 
      firsttime =false; 
      Print("ValueString: ",ValueString," < >","  tempString: ",  tempString);
      Print("ValueInt:     ",ValueInt,  " < >","  tempInt:      ",tempInt);
   } else {
      Print("меняем входные параметры");
      Print("ValueString: ",ValueString," < >","  tempString: ",  tempString);
      Print("ValueInt:     ",ValueInt,  " < >","  tempInt:      ",tempInt);
   }                          
}

int start() {}





ファイル:
testinit.mq4  1 kb
 
wlad:

週末テスト用にExpert Advisorをstart()なしで作り直した。

1. チャートへ移動

2. パラメータを変更する

3. ログを見ると、文字列(青)は、int(緑)とは異なり、外部変数から誤った値を受け取っていることがわかる





そして、確かにバグがあります...外部レベルで設定した変数はEAを再起動しても起動せず、以前の再起動時のうんちくを持ち出します...Wladさんの忍耐力に感謝です))))
 

そして、ここにもテーマがある...。という単純な指標です。

#property indicator_color1 レッド
и

SetIndexStyle(0,DRAW_LINE,STYLE_SOLID,3,Aqua)を設定します。

色は厚みのあるRedのまま...インジケータを強制的に削除して再起動するまで、つまり単純な再コンパイルではどうにもなりません。一部のトランクからパラメータが引き出されていることが判明...。もちろんデタラメだが、ウラジはやった))))

 
どうやら関係あるようで、以前から気づいていたのですが、EAのコードを変更してコンパイルしても、ターミナルをリロードするまで、前のコードが 動いてしまうことがあるんです。Expert Advisorを再起動しても解決しない。でも、いつもそうとは限らないので、のんびり構えています。まあ、あるにはあるのですが...。あまり気にならないようです。
 

そうですね。

開発者が修正してくれればいいのですが。

それともここに書いても無意味で、ヘルプデスクに直行するのでしょうか?

ところで、どこに行けばいいのでしょうか?

 
Sepulca:
Э...おめでとうございます!なんだかおじいちゃんみたいですね、そうでもないですが、子供たちは認めています......)))

お目出度うございますおじいさんは何歳ですか?
 

アドバイスをお願いします

キャリパーへの接触方法は?

見当たらない

 
wlad:

アドバイスをお願いします

キャリパーへの接触方法は?

見当たらない

第4回フォーラムから直接はできません。 第5回フォーラムからできます。 mql5.comプロフィールの「サービスデスク」リンクをご覧ください(左側の、プロフィールサービスのリストがある列)。
 
MetaDriver:
第4回フォーラムから直接はできません。 第5回フォーラムからできます。 mql5.comプロフィールの「サービスデスク」リンクをご覧ください(左側の、プロフィールサービスのリストがある列)。
ありがとうございます、チェックしてみます。
 
wlad:

週末テスト用にExpert Advisorをstart()なしで作り直した。

1. チャートへ移動

2. パラメータを変更する

3. ログを見ると、文字列(青)は、int(緑)とは異なり、外部変数から誤った値を受け取っていることがわかる



新コンパイラーでは 再現できません。誰も古いものを変えようとはしない。

extern string ValueString = "DDD";
extern int    ValueInt    = 10;  
     
string tempString="val";
int    tempInt   =0;

bool   firsttime=true;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---
   if(firsttime) 
     {     // значение присваевается тольо ОДИН раз   
      Print("иницилизация глобальных переменных");
      Print("tempString = ",tempString);
      Print("tempInt    = ",tempInt);

      Print("однократное присваение внешних значений глобальным переменным");
      tempString=ValueString;
      tempInt   =ValueInt;
      firsttime =false;
      Print("ValueString: ",ValueString," < >","  tempString: ",tempString);
      Print("ValueInt:     ",ValueInt," < >","  tempInt:      ",tempInt);
        } else {
      Print("меняем входные параметры");
      Print("ValueString: ",ValueString," < >","  tempString: ",tempString);
      Print("ValueInt:     ",ValueInt," < >","  tempInt:      ",tempInt);
     }
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---

  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
//---

  }
//+------------------------------------------------------------------+