if (Totalcena>Cena) { if (OrdersTotal()>0) { for (int i=OrdersTotal()-1; i>=0; i--) { if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==true) { if(OrderMagicNumber()==12345)
for (int i2=0; i2<ArraySize(symbols1); i2++) { if (symbols1[i2]==OneSymbol) int PosSymbolIn1array=i2; } return(-1);
string OneSymbolMod = symbols2[PosSymbolIn1array]; int NewArraySize = ArraySize(textMod)+1; ArrayResize(textMod,NewArraySize); textMod[i1]=OneSymbolMod; string textNew; textNew=StringConcatenate(textMod[1],textMod[2]...);//собрать массив в строку вообще не могу :( return (textNew); } }
for (int i2=0; i2<ArraySize(symbols1); i2++) { if (symbols1[i2]==OneSymbol) int PosSymbolIn1array=i2; } return(-1);
string OneSymbolMod = symbols2[PosSymbolIn1array]; int NewArraySize = ArraySize(textMod)+1; ArrayResize(textMod,NewArraySize); textMod[i1]=OneSymbolMod; string textNew; textNew=StringConcatenate(textMod[1],textMod[2]...);//собрать массив в строку вообще не могу :( return (textNew); } }
DoCは取引回数に制限があるのか?
案件数の 制限だけでなく、依頼数の制限まで設けているところもあります。
彼らは発明家です。:-))
残りの注文はテスト終了まで開いたままですが、ある注文が開かれると、条件付きでその注文が閉じられるはずです。
OrderClose()使用時のエラー4051と134についてもう一つ質問ですが、これはどういう意味ですか?ログから情報をコピーしました。
最後の選択肢は、多かれ少なかれうまくいったように思います。計算を簡略化することは可能ですが
アドバイスお願いします同じマジックで、異なるロットの2つの注文を 閉じるにはどうすればよいですか?
int start() { double MyLastBullOpenPrice=0; for(int Cnt=0;Cnt<OrdersTotal();Cnt++){ OrderSelect(Cnt,SELECT_BY_POS,MODE_TRADES); if(OrderMagicNumber()==12345 && OrderType()==OP_BUY){ MyLastBullOpenPrice=OrderOpenPrice(); double Cena=OrderOpenPrice()+5*Point; double Totalcena=Bid;
if (Totalcena>Cena)
{
if (OrdersTotal()>0)
{ for (int i=OrdersTotal()-1; i>=0; i--)
{ if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==true)
{ if(OrderMagicNumber()==12345)
{ if(OrderDelete(OrderTicket())==true)の場合
{
Print("Error = ",GetLastError()); return(0);
}.
} }
}
}
return(MyLastBullOpenPrice);
}.
残りの注文はテスト終了まで開いたままですが、ある注文が開かれると、条件付きでその注文が閉じられるはずです。
OrderClose()使用時のエラー4051と134についてもう一つ質問ですが、これはどういう意味ですか?ログから情報をコピーしました。
134 - 金銭がない、4051 - 関数に渡されたパラメーターに問題がある。
そうでなければ、すべてのオーダーが独自のマジックを持つことになり、あなたの言うような結果になります。
配列を介して文字列中の文字置換機能を追加(または記述)したいのですが、ご教授ください。
文字の配列が2つある。
stringsymbols1[] = {"a", "b", "c", "d"};string symbols2[] = {"1", "2", "3", "4"}とする。
配列を元に、テキストbadcを2143に置き換える関数を書いてみたところ、以下のような結果になりました。
string ReplaceSymbolsInStr(string text){
string textMod[] ={""};
string symbols1[] = {"a","b","c","d"};
string symbols2[] = {"1","2","3","4"};
int textLen = StringLen(text);
for (int i1=0; i1<textLen; i1++)
{
string OneSymbol = StringSubstr(text,i1,1);
for (int i2=0; i2<ArraySize(symbols1); i2++)
{
if (symbols1[i2]==OneSymbol) int PosSymbolIn1array=i2;
}
return(-1);
string OneSymbolMod = symbols2[PosSymbolIn1array];
int NewArraySize = ArraySize(textMod)+1;
ArrayResize(textMod,NewArraySize);
textMod[i1]=OneSymbolMod;
string textNew;
textNew=StringConcatenate(textMod[1],textMod[2]...);//собрать массив в строку вообще не могу :(
return (textNew);
}
}
間違っているのは分かっているのですが、配列を文字列に組み立てることが全くできないのです。よろしくお願いします。
案件数の制限だけでなく、依頼数の制限まで設けているところもあります。
彼らは発明家です。:-))
配列を介して文字列中の文字置換機能を追加(または記述)したいのですが、ご教授ください。
文字の配列が2つある。
string symbols1[] = {"a", "b", "c", "d"};string symbols2[] = {"1", "2", "3", "4"}.
配列を元に、テキストbadcを2143に置き換える関数を書いてみたところ、以下のような結果になりました。
string ReplaceSymbolsInStr(string text){
string textMod[] ={""};
string symbols1[] = {"a","b","c","d"};
string symbols2[] = {"1","2","3","4"};
int textLen = StringLen(text);
for (int i1=0; i1<textLen; i1++)
{
string OneSymbol = StringSubstr(text,i1,1);
for (int i2=0; i2<ArraySize(symbols1); i2++)
{
if (symbols1[i2]==OneSymbol) int PosSymbolIn1array=i2;
}
return(-1);
string OneSymbolMod = symbols2[PosSymbolIn1array];
int NewArraySize = ArraySize(textMod)+1;
ArrayResize(textMod,NewArraySize);
textMod[i1]=OneSymbolMod;
string textNew;
textNew=StringConcatenate(textMod[1],textMod[2]...);//собрать массив в строку вообще не могу :(
return (textNew);
}
}
間違っているのは分かっているのですが、配列を文字列に組み立てることが全くできないのです。よろしくお願いします。
置換配列の中から文字のインデックスを見つけたはずなのに、なぜ別の配列を作るのでしょうか?
最初のループでプレーンテキスト変数に追加してみてください。
string ReplaceSymbolsInStr(文字列テキスト)
{文字列 symbols1[] = {"a", "b", "c", "d"};
string symbols2[] = {"1", "2", "3", "4"};
文字列 textNew="";
int textLen = StringLen(text)。
for (int i1=0; i1<textLen; i1++)
{
string OneSymbol =StringSubstr(text,i1,1);
for (int i2=0; i2<ArraySize(symbols1); i2++)
{
if (symbols1[i2]==OneSymbol) {textNew = textNew + symbols2[ i2 ] ; i2=A rraySize(symbols1) ; } } {textN ew = textNew + symbols2[ i2 ]; i2=ArraySize(symbols1)
}
}
return (textNew);
}
あるいは、もっと簡単なこんな感じです。
string ReplaceSymbolsInStr(文字列テキスト)
{string symbols1[4] = {"a", "b", "c", "d"}; // シンボルの数だけ配列の大き さを変更する。
文字列 textNew="";
for (int i1=0; i1< StringLen(text) ; i1++)
{
string OneSymbol = StringSubstr(text,i1,1);
for (int i2=0; i2<ArraySize(symbols1); i2++)
{
if (symbols1[i2]==OneSymbol )
{
textNew = textNew + (i2+1); // 返されたテキストにシンボル自体の番号が追加 されます。
i2=ArraySize(symbols1) ; // 探索ループを終了 する。
}
}
}
return (textNew);
}
Good day !
csv形式のデータを自動的にe-mailで送信する方法について、アドバイス(または例のリンク)をお願いします。
ありがとうございます。