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

 
sergeev >>:

приведите здесь вашу функцию открытия ордеров.

int NewOrder(int Cmd,double Lot)

{double TP=0, TP2=0;

double SL=0, SL2=0;

double PR=0;

datetime endtime。


while(!IsTradeAllowed()の場合)Sleep(100)です。

endtime = TimeCurrent()+4*60*60;


if(Cmd == OP_BUYSTOP)

{

PR=TOP+10*Point

PR=NormalizeDouble(PR,2)とする。

if(テイクプロフィット>0)

{

TP=PR+25*Point

}

if(StopLoss>0)の場合

{

SL=PR-30*ポイント。

SL=NormalizeDouble(SL,2)とする。

}

}

if(Cmd==OP_SELLSTOP)

{

PR=BOT-7*点。

PR=NormalizeDouble(PR,2)とする。

if(テイクプロフィット>0)

{

TP=PR-25*点。

}

if(StopLoss>0)の場合

{

SL=PR+30*Point;

SL=NormalizeDouble(SL,2)とする。

}

}

if ((TOP-BOT)<115*Point))

int tic=OrderSend(Symbol(),Cmd,Lot,PR,3,SL,TP,"",0,endtime,CLR_NONE);

さもなくば

Print("TORとBOTの大きな違い。"、(TOP-BOT))。

if(tic<0) Print("注文開始エラー: ",GetLastError();


return(tic)です。

 
sanyooooook >>:

а ордер как закрывается? по стоп лосту или функцией OrderClose()

ストップロスやテイクプロフィットで

 

皆さんこんにちは...質問があります...トランザクションレポート...全作業期間の合計を見たいのですが...どこで見ることができるのでしょうか?

 
sergeev >>:
В принципе можно искать ордера в истории и отсортировать их, затем узнать два последних закрытия. Но это вам надо пройтись по всем ордерам истории два раза.

используйте OrderHistoryTotal(), MODE_HISTORY, OrderCloseTime()>0, OrderProfit()

Другим вариантом - чтоб не сканировать два раза историю - это запоминание тикетов открывшихся ордеров и потом определения их профита.

具体的にどのようにチケットを記憶しているのですか?そして、チケットにアクセスするためには、オーダーを選択する必要があり、それを選択するためには、チケットを知る必要がある...ということをどう理解すればよいのでしょうか。

 
just-me >>:

А как именно запоминать тикеты? И как понимать: чтоб обратиться к тикету - нужно выбрать ордер, а чтоб его выбрать - нужно знать тикет...

チケットを知らなくても、注文を選択することができます。

 

Marketinfo機能で混乱しており、指定されたロットサイズの入金通貨 での商品の正しいスプレッド値を計算できません。正しい計算式を教えてください。スポットとCFDの両方で必要なのですが・・・。

 

Expert Advisorを起動したときに受け取る最初の価格値を一定にすることは可能でしょうか?

この価格を定数として保存し、EAが動作している間中、参照できるようにしたいのです。ただ、問題は、それをどうするかだ。なぜなら、Askは常に変化しており、コピー機能が見つからないからです。

 

グローバル変数に する、あるいは単なる変数にする

で、これをstart関数ではなく、init関数に挿入します。

int init()
  {
//----
   GlobalVariableSet("Price_Start",Ask);
//----
   return(0);
  }
 
Kesha_k85 >>:

У меня такой вопрос к спецам - есть ли возможность сделать константой, первое полученное значение цены при запуске советника?

Т.е если я запустил советник и в это время цена Ask=1.4444 Я хочу эту цену сохранить как константу, чтобы всё время работы советника можно было к ней орбащаться. Только вот вопрос, как это сделать??? Ведь Ask постоянно меняеться, а функции копирования я нигде не нашёл.


テーマのバリエーション


double Price_Start;

int init()
 {
   Price_Start=Ask;
   return(0);
 }


double Price_Start=0;

int start()
 {
   if ( Price_Start<0.001) Price_Start=Ask;
   //....
 }
 
just-me писал(а)>>

具体的にどのようにチケットを記憶しているのですか?そして、チケットを参照するには、オーダーを選択する必要があり、それを選択するには、チケットを知る必要がある、ということをどう理解するか...。

https://docs.mql4.com/ru/trading/OrderSelect- SELECT_BY_POS を参照してください。