Изменение открытого ордера. К данным изменениям относятся не только явные изменения со стороны клиентского терминала или торгового сервера, но также и изменение его состояния при выставлении (например, переход из состоянияORDER_STATE_STARTEDからORDER_STATE_PLACEDへ、またはORDER_STATE_PLACEDからORDER_STATE_PARTIALへ、など)。
Приказы на проведение торговых операций оформляются ордерами. Каждый ордер имеет множество свойств для чтения, информацию по ним можно получать с помощью функций Идентификатор позиции, который ставится на ордере при его исполнении. Каждый исполненный ордер порождает сделку, которая открывает новую или изменяет уже существующую позицию...
//+------------------------------------------------------------------+//| StringLowerCase |//+------------------------------------------------------------------+string StringLowerCase(string str)
{
string s = str;
int lenght = StringLen(str) - 1, symbol;
while(lenght >= 0)
{
symbol = StringGetChar(s, lenght);
if((symbol > 64 && symbol < 91) || (symbol > 191 && symbol < 224))
s = StringSetChar(s, lenght, symbol + 32);// тут possible loss of data due to type conversionelseif(symbol > -65 && symbol < -32)
s = StringSetChar(s, lenght, symbol + 288);// тут possible loss of data due to type conversion
lenght--;
}
return(s);
}
//+------------------------------------------------------------------+//| StringUpperCase |//+------------------------------------------------------------------+string StringUpperCase(string str)
{
string s = str;
int lenght = StringLen(str) - 1, symbol;
while(lenght >= 0)
{
symbol = StringGetChar(s, lenght);
if((symbol > 96 && symbol < 123) || (symbol > 223 && symbol < 256))
s = StringSetChar(s, lenght, symbol - 32);// тут possible loss of data due to type conversionelseif(symbol > -33 && symbol < 0)
s = StringSetChar(s, lenght, symbol + 224);// тут possible loss of data due to type conversion
lenght--;
}
return(s);
}
bool BuySignal_new()
{
double Sig_Up[]; // динамический массив для хранения значений индикатора на покупку для каждого бараdouble Sig_Down[]; // динамический массив для хранения значений индикатора на продажу для каждого бараArraySetAsSeries (Sig_Up,true); // устанавливаем индексацию как в таймсерии ( т.е. 5,4,3,2,1,0) в динамич. массиве для индикатораArraySetAsSeries (Sig_Down,true); // устанавливаем индексацию как в таймсерии ( т.е. 5,4,3,2,1,0) в динамич. массиве для индикатораResetLastError();
double close = NormalizeDouble(iClose(_Symbol,_Period,1),Digits());
double close_1 = NormalizeDouble(iClose(_Symbol,_Period,0),Digits());
double Bid=NormalizeDouble(SymbolInfoDouble(_Symbol,SYMBOL_BID),Digits());
if(CopyBuffer(Handle_stepma_line,0,1,5,Sig_Up)==5 && CopyBuffer(Handle_stepma_line,1,1,4,Sig_Down)==4 )
{
Print("Данные скопированы. Ошибок нет.");
}
else
{
Print("Ошибка копирования. Нет данных");
return(false);
}
if (Sig_Up[1] < Sig_Down[1] && Sig_Up[0] > Sig_Down[0])
{
Print("условие 1 - ок");
}
else
{
Print("условие 1 НЕ выполненно");
return(false);
}
if (close < Sig_Up[1]&& Bid > Sig_Up[0])
{
Print ("условие 2 - ок");
return(true);
}
else
{
Print("условие 2 НЕ выполненно");
return(false);
}
アップデートをキャッチする目的が何であるかによります。アレイをオーバーフローさせるのはどうでしょうか?
目的はどうでもいいのか?問題は、他にあまり使われていない、必要とされている特性がものすごくたくさんあるのに、なぜこんなにもわかりやすい事象が捕捉されにくいのか、ということです。この場合、目的は通知(アラート)である。
ターゲットが何であろうと、何の違いもないでしょう?問題は、他にあまり使われていない、必要とされている特性がたくさんあるにもかかわらず、なぜこんなにもわかりやすい事象が捕捉されにくいのか、ということである。この場合、目的は通知(アラート)である。
つまり、トランザクションの種類で ハイライトされるのは、この明らかなイベントなのです。58記事のトリシュキンライブラリーをお試しください。シンプルなオプションがあるのかもしれませんね。
в 58 ми статьях
ありがとうございます。)
戸籍も同じように保管しているのだろう。
これは、特定の注文チケットの最初の ORDER_STATE_PLACED ではないことを知るには十分でしょう。
最初の注文時に2つのTRADE_TRANSACTION_ORDER_UPDATEが来ることが判明。ここと、3つ目は、私の場合、すでに価格だけの変更として収まってしまう。あるいは2番目のORDER_STATE_PLACED。
に従った。
差し支えなければ、修正にご協力ください...。
MT4の「STRINGS: ASCII CHARACTERS TABLE AND HIS USE」の例をやってみました。 もし差し支えなければ、修正するのを手伝ってください......。
StringSetChart() bool は、bool を返す。しかも、それを文字列変数に代入している...。それが問題なら。
こんにちは。ポジションをエントリーするための条件をチェックする関数を書いてみました。
問題は、条件(黄色でハイライトされている)が満たされない場合、関数は終了せず、次の条件に進むことです。そのため、信号が正常に動作しない。
いずれかの条件が満たされないとき、つまり不正な条件の直後に、関数が動作を停止するようにするには、どうすればよいでしょうか。
関数の条件の1つが満たされない場合、その不正な条件の直後に関数全体が終了するようにするには、どうしたらよいでしょうか?
elseによる分岐を削除する、その方法で試してみてください。
によって分岐を取り除く、そのように試してみてください。
ありがとうございます、試してみます。