どんな新人の質問でも、フォーラムを乱雑にしないように。プロフェッショナルは、通り過ぎないでください。Nowhere without you - 6. - ページ 514

 
Mr.Profit:

こんにちは。

EAを編集しようとすると「MetaEditorが見つかりません」と言われるのですが、どうすればいいでしょうか?MetaTrader build 600。

古いビルドではそのような問題はなかったように記憶しているのですが...。

私が作業しているパソコンは、どちらかというと低性能で、50~75%の負荷がかかっているということで説明できるでしょうか。MT4インスタンスを7台稼働させていますが、通常の状態(TeamViewerでアクセスしてMetaEditorを起動するような外部負荷がない状態)では性能は十分で、バックグラウンドで稼働するタスクマネージャーでは15~20分の平均CPU使用率は<=45~50%となっています。

この問題は100%発生するわけではなく、尋常でない忍耐力と粘り強さを発揮して、5回目~10回目~25回目までは毎回MetaEditorが起動するようになります。しかし、30分もMetaEditorを起動しようとするのは本当に迷惑な話です。

このような質問は、610th buildスレッドで どうぞ。
削除済み  
r772ra:



ありがとうございます。

柵を設けていない範囲で、アドバイスをお願いします。

もっとシンプルにできることは?

input int    Slippage   = 10;   // установим значение проскальзывания 
extern string ___START_SETUP_ = "---ОСНОВА---";  
input double StartLot   = 0.02; 
extern double LotMultiplicator = 1.3;
extern int N_LotMult = 2;
extern string ___STEP_SETUP_BLOK_ = "--- БЛОК УСЛОВИЙ СЕТКИ ---";
extern int Mode_Step = 1;
extern int Step = 5;
extern int StepUv_Step = 5;
extern string ___CLOSE_SETUP_BLOK_ = "--- БЛОК УСТАНОВОК ЗАКРЫТИЯ ---";
extern int TakeProfit = 40;


double z,y, lot=StartLot, count, step=Step;

  
void OnTick()
  {  
   
     int i_buy=0; int i_sell=0;
     for(int i=0;i<OrdersTotal();i++){
         if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==true && OrderSymbol()==Symbol()){
              switch(OrderType()){// Есть ли открыте ордера
                 case OP_BUY:
                    i_buy++;
                 break;
                 case OP_SELL:
                    i_sell++;
                 break;
               }
               
              y = int((OrderOpenPrice()-Ask)/Point); 
              z = OrderLots();
              
              count++;            
          }   
     }
    
     if(LotMultiplicator > 1 && count > N_LotMult) lot = z + z/LotMultiplicator;    
     if(Mode_Step==1) step = Step + count*StepUv_Step;

     if((i_buy==0 && i_sell==0) || y >= step) //--- нет открытых ордеров, открываем
         OrderSend(Symbol(), OP_BUY,lot,Ask,Slippage,0,Ask+TakeProfit*Point(),WindowExpertName()+" "+(string)0,0,0,clrBlue);
     
       count=0;
   
 
Zolotai:


ありがとうございます。

柵を設けていない範囲で、アドバイスをお願いします。

もっとシンプルにできることは?


正しいコードの挿入方法を学んでください。CTRL+ALT+MまたはSRC。
削除済み  
evillive:
正しいコードの挿入方法を学んでください。CTRL+ALT+MまたはSRC。

完了しました。
 
Zolotai:


Spc.

柵を設けていない範囲で、アドバイスをお願いします。

もっとシンプルにできることは?


また、コンパイルエラーはないのでしょうか?実行エラーもない?

まず、最終的にどうしたいのかを記述します。なぜなら、コードのところどころに疑問があるからです。

 y = int((OrderOpenPrice()-Ask)/Point); //подставьте в уравнение реальные цены
if((i_buy==0 && i_sell==0) || y >= step) //--- нет открытых ордеров, открываем открывает позицию всегда когда y >= step, а это будет практически всегда по формуле выше, за исключением коридора шириной в "step"
削除済み  
evillive:

また、コンパイルエラーはないのでしょうか?実行エラーもない?

まず、コードのところどころに疑問があるので、最終的にどうしたいかを記述してください。




簡略化できることはないか。もしかしたら、余分な変数があるかもしれない... 今あるのは、ステップで開いて、ロットを増やしていく、それだけです。まだTPは必要ない。もう少しシンプルに、コードを少なくすることはできないか...。
 
たくさんいるんですか?そこは簡略化する必要はなく、逆にアガるはずです )))
削除済み  
evillive:
たくさんいるんですか?そこは簡略化する必要はなく、逆にアガるはずです )))

ありがとうございます。機能を提案してもらえないか。最後の注文で逆指値と持ち越し注文を出したい場合、最初の注文は平均化されます。で最後から2番目のオーダー、といった具合です。まるで真ん中に行くかのように...。
 
コドバセにはミディアム、マーチン、アンチマーチン、あらゆる嗜好のネトウヨがたくさんいるんだろうな。
削除済み  
evillive:
コドバセにはミディアム、マーチン、アンチマーチン、あらゆる嗜好のネトウヨがたくさんいるんだろうな。

ええ、でもね。他の人のコードを掘り返してというのは理解できないし、時間がかかるしそれを把握すること。