プログラマーに助けを求めるのは初めてなので、ヒントをください。 - ページ 6

 
Serqey Nikitin:

わかってないなぁ...。誰も見積もりをFIXしてくれない...。

注文執行の「遅れ」はルール上禁止されていないのですが...。と広がっていく...。

言いたいことはわかります。おそらく誤解されているのでしょう。私が言いたかったのは、何事にも限界はあるということです。未決済の注文に対して、スプレッドが10倍に広がることはありません。遅延が数倍になることはありません。

正直なところ、自慢しに来たわけではありません。アイデアがうまくいかなければ、自分が多数派になる、それが普通です。
 
Serqey Nikitin:

わかってないなぁ...。誰も見積もりをFIXしてくれない...。

注文執行の「遅れ」はルール上禁止されていないのですが...。と広がっていく...。

無駄なアイデアに時間を浪費してしまった...、しかもスキャルピング広告に引っかかってしまったから...。
 
Serqey Nikitin:
無駄なアイデアに時間を浪費してしまった...、しかもスキャルピング広告に引っかかっただけ...、と残念です。

以上で、あなたとの対話は終わりです。他人の憶測を詮索したり、掘り下げたりするのはやめよう。

 
Aleksandr2233:

以上で、あなたとの対話は終わりです。他人の憶測を詮索したり、掘り下げたりするのはやめよう。

頭を使う...適切なアドバイスが得られない場合に役立つこともある...。
 

Expert Advisor は、ストップロスとテイクプロフィットを保留中の注文に 設定します(ない場合)。そして、保留中の注文から価格までの距離が、保留中の注文からストップまでの距離を上回った場合に、保留中の注文を削除します。

#property version   "2.00"
#property strict

input int StopLoss=300;
input int TakeProfit=500;

double loss, profit;
bool result;

string symbol;
double point;
int digits;
 
MqlTick tick;


int OnInit()
   {
   symbol=Symbol();
   point=SymbolInfoDouble(symbol,SYMBOL_POINT);
   digits=(int)SymbolInfoInteger(symbol,SYMBOL_DIGITS);
   return(INIT_SUCCEEDED);
   }

void OnDeinit(const int reason)
   {
   
   }

void OnTick()
   {
   SymbolInfoTick(symbol,tick);
   for(int i=OrdersTotal()-1; i>=0; i--)
      {
      if(!OrderSelect(i,SELECT_BY_POS,MODE_TRADES) && OrderSymbol()!=symbol && OrderClosePrice()!=0) continue;
      if(OrderType()==OP_BUYLIMIT || OrderType()==OP_SELLSTOP)
         {
         //устанавливаем стоплосс и тейкпрофит
         if((OrderStopLoss()==0 && StopLoss>0) || (OrderTakeProfit()==0 && TakeProfit>0))
            {
            loss=(StopLoss>0)?NormalizeDouble(tick.ask-MathMax(StopLoss,(int)SymbolInfoInteger(symbol,SYMBOL_TRADE_STOPS_LEVEL))*point,digits):0;
            profit=(TakeProfit>0)?NormalizeDouble(MathMax(TakeProfit,(int)SymbolInfoInteger(symbol,SYMBOL_TRADE_STOPS_LEVEL))*point-tick.bid,digits):0;
            result=OrderModify(OrderTicket(),OrderOpenPrice(),loss,profit,0);
            }
         //удаляем ордер
         if(OrderStopLoss()>0 && tick.ask-OrderOpenPrice()>OrderOpenPrice()-OrderStopLoss())
            {
            result=OrderDelete(OrderTicket());
            }            
         }
      if(OrderType()==OP_SELLLIMIT || OrderType()==OP_BUYSTOP)
         {
         //устанавливаем стоплосс и тейкпрофит
         if((OrderStopLoss()==0 && StopLoss>0) || (OrderTakeProfit()==0 && TakeProfit>0))
            {
            loss=(StopLoss>0)?NormalizeDouble(MathMax(StopLoss,(int)SymbolInfoInteger(symbol,SYMBOL_TRADE_STOPS_LEVEL))*point-tick.bid,digits):0;
            profit=(TakeProfit>0)?NormalizeDouble(tick.ask-MathMax(TakeProfit,(int)SymbolInfoInteger(symbol,SYMBOL_TRADE_STOPS_LEVEL))*point,digits):0;
            result=OrderModify(OrderTicket(),OrderOpenPrice(),loss,profit,0);
            }
         //удаляем ордер
         if(OrderStopLoss()>0 && OrderOpenPrice()-tick.bid>OrderStopLoss()-OrderOpenPrice())
            {
            result=OrderDelete(OrderTicket());
            }            
         }
      }
   }

ノーテスト

 
Aleksei Stepanenko:

Expert Advisor は、ストップロスとテイクプロフィットを保留中の注文に 設定します(ない場合)。そして、保留中の注文から価格までの距離が、保留中の注文からストップまでの距離を上回った場合に、保留中の注文を削除します。

テストがない

後で確認します。ありがとうございます。プライベートメッセージで返信する可能性が高くなります。

 
Serqey Nikitin:
頭を回転させる...、正しいアドバイスが得られないと助からないことも...。

アドバイスありがとうございました。

 
Aleksei Stepanenko:

Expert Advisor は、ストップロスとテイクプロフィットを保留中の注文に 設定します(ない場合)。そして、保留中の注文から価格までの距離が、保留中の注文からストップまでの距離を上回った場合に、保留中の注文を削除します。

テストがない

しかし、既成のex4ファイルを取得するためのコードをどうすればいいのかわかりません。MetaEditorというプログラムがあるのは知っていますが、一度しか開いたことがありません。

 
をインストールし、ターミナルを再起動します。
ファイル:
 
Aleksei Stepanenko:
をインストールし、ターミナルを再起動します。

そして、私が理解しているファイルは、エキスパート

eeのスナップショット