[ARCHIVE] フォーラムを散らかさないように、どんなルーキーでも質問してください。プロフェッショナルは、通り過ぎないでください。Nowhere without you - 3. - ページ 633

 
7777877:

4MB以上のコードをここにダンプする(または部分的にここにダンプする)方法があるかどうか教えてください?

5年間で作った私のコードは全部で22メガバイトです。数千のインジケーター、エキスパートアドバイザー、スクリプトです。
 
私のコードは15kB(mq4ファイルサイズ)ですが、(ツールラインのsrsリンクを使って)送信しようとすると、メッセージがサイズを超えているというメッセージが表示され、メッセージが送信されません。下の方に最大ファイルサイズが4MBと書いてあるので、何らかの方法で私の質問の処理がファイルサイズを大きくしているのだと思いました
 
7777877:
私のコードは15kB(mq4ファイルサイズ)ですが、送信しようとすると(ツールで文字列中のsrsリンクを使用)、メッセージがサイズを超えているというメッセージが表示され、メッセージが送信されません。下の行に最大ファイルサイズが4MBと書いてあるので、何らかの方法で私の質問の処理で、ファイルサイズが大きくなっているのだと思いました。

以下のリンクからファイルを添付してください。
 
Vinin:

以下のリンクからファイルを添付してください。
ファイル:
rsis.mq4  16 kb
 
TarasBY:

このタスクは明確化が必要です。

  • 入力パラメーター(STPOLOSS、TAKEPROFITなど)は、4桁の数字を意識 して入力する必要があります!!!!

イゴール、ヴィクトール、ありがとうございました。
 
7777877:
配列については、ドキュメントをお読みください。もう一つの方法は,静的配列,つまりあらかじめサイズが決まっている配列を作ることです: double a[55443]; もう一つの方法は,動的配列,つまりサイズが決まっていない配列を double a[] として宣言し,プログラムコードの中で必要なサイズを決定/計算することです: ArrayResize(a,N)
 

どうか、理解を深めてください:)
保留中の注文を移動させる方法は?
最初に削除して、新しいものを入れてみましたが、うまくいきません

int NewOrder(int Cmd,double Lot){。

...

TP=PR+TakeProfit*Point;

SL=PR-StopLoss*ポイント。

プロヴァルカ()。

tic=OrderSend(Symbol(),Cmd,Lot,PR,5,TP,SL,0,1,0,CLR_NONE)とする。

if(tic<0) {Print("オーダーオープンエラー: ",GetLastError());

return(0);}。

//+------------------------------------------------------------------+

void Proverka()

{

for(int i=1; i<=OrdersTotal(); i++) // オーダーループ

{

if (OrderSelect(i-1,SELECT_BY_POS)==true)

{

if (OrderSymbol()!= Symbol()) continue;

if (OrderType() == OP_BUY || OrderType() == OP_SELL) continue;

int tic=OrderTicket();

OrderDelete(tic); Print("Delet",tic)。

}

}


}

//+------------------------------------------------------------------+

 
Ali007:

よろしくお願いします:)
発注待ちの注文を移動させるにはどうすればよいですか?
削除して新しいものを入れようとしたが、うまくいかなかった。

注文の種類が変わらない場合は、OrderTicket()で選択し、OrderModify()関数で、新しい始値と停止値を指定することで移動させることが可能です。

...そして、取引関数に渡される変数の値は正規化する必要があります(価格、STOP)。そして、この順序列挙のループ。

for(int i=1; i<=OrdersTotal(); i++) // Цикл перебора ордер

ということであれば、逆に交換したほうがよいでしょう。

for(int i=OrdersTotal() - 1; i >= 0; i--) // Цикл перебора ордер
{
   if (OrderSelect (i, SELECT_BY_POS)==true) 

StopLossesも正しく編成されていない。

TP=PR+TakeProfit*Point;
SL=PR-StopLoss*Point;

ストップは、注文の種類によって異なる計算が行われます。

ヒント: もしまだ問題があるようなら、保留中の注文を扱うあらゆる種類のExpert Advisorを入手し、注文を扱う機能またはSTOPPの計算をそこから得てください。

 
TarasBY:

注文の種類が変わらない場合は、OrderTicket()でOrderModify()関数を選択し、新しい始値やSTOP値を指定することで移動させることができます。

...そして、取引関数に渡される変数の値は正規化する必要があります(価格、STOP)。そして、この順序列挙のループ。

そのため、逆バージョンに置き換えたほうがよいでしょう。

StopLossesも正しく編成されていない。

ストップは、注文の種類によって異なる計算が行われます。

ありがとうございます、わかりました))
 

こんにちは!よろしくお願いします。

バーチャル・トレーリング・ストップはどのように機能するのですか?

通常のトレーリングストップと比較して、どのように優れているのでしょうか?

各ペアで同時に多くの注文がある場合、Expert Advisorで仮想トレーリングストップを規定することは可能ですか、またそれは合理的ですか?