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

 
nuan:
質問ですが、例えば30分ごとにすべての注文をプログラムで閉じるにはどうしたらよいでしょうか?

datetime prevtime;
int Magic=11111;
int slippage=5;

//=====================
 int start(){
 
    datetime TimeM30=iTime(NULL,30,0);
    if(TimeM30==prevtime) return(0); 
    prevtime = TimeM30;   
    CloseAllPos();
  return(0);
 }
//=====================
 void CloseAllPos(){
   double maxlot=0;
   for(int i=OrdersTotal()-1; i>=0; i--){
     if(!OrderSelect(i, SELECT_BY_POS, MODE_TRADES))continue;
     if(OrderSymbol()!=Symbol())continue;
     if(OrderMagicNumber()!=Magic)continue; 
      if(maxlot<OrderLots()){ 
         maxlot=OrderLots();
         if(OrderType()==OP_BUY)OrderClose(OrderTicket(),maxlot,NormalizeDouble(Bid, Digits),slippage,Yellow);
         if(OrderType()==OP_SELL)OrderClose(OrderTicket(),maxlot,NormalizeDouble(Ask, Digits),slippage,Yellow);
  } } }
 
ありがとうございました。
 
終値を 値に置き換えました。結果は前回と同じですが、エクイティ・ラインがバランス・ラインの上に 厳密に表示されるようになりました。案件数、利益とも若干減少しましたが、状況はさらに安定しました。調査期間中の負けトレードはありません。
 
Vinin:


私の理解が正しければ、市場での注文の状態をチェックしながら?-

...
if (OrderType()<2) 
//здесь  корректировка размера позиций с учетом ввода/вывода


面白いものですねぇ。コードの全文を掲載できますか?注文と入出金とがどのように結びついているのか、よくわからない。クローズしたポジションの履歴を再計算することなく、最初に口座に入金された金額、いわば初期残高を割り出すことはできるのでしょうか。すべてのブローカーが全取引履歴を提供しているわけではなく、1ヶ月以上前の履歴もあるため、Expert Advisorの収益性の再計算が誤っている:開始日は 正しいが、残高は1ヶ月前のものである。その結果、毎月の利益は取引期間全体にわたって伸びることになります。

 
nuan:
質問ですが、例えば30分ごとにすべての注文をプログラムで閉じるにはどうしたらよいでしょうか?

datetime prevtime;
int Magic=11111;
int slippage=5;

//=====================
 int start(){
 
    datetime TimeM30=iTime(NULL,30,0);
    if(TimeM30==prevtime) return(0); 
    prevtime = TimeM30;   
    CloseAllPos();
  return(0);
 }
//=====================
 void CloseAllPos(){
   double maxlot=0;
   for(int i=OrdersTotal()-1; i>=0; i--){
     if(!OrderSelect(i, SELECT_BY_POS, MODE_TRADES))continue;
     if(OrderSymbol()!=Symbol())continue;
     if(OrderMagicNumber()!=Magic)continue; 
      if(maxlot<OrderLots()){ 
         maxlot=OrderLots();
         if(OrderType()==OP_BUY)OrderClose(OrderTicket(),maxlot,NormalizeDouble(Bid, Digits),slippage,Yellow);
         if(OrderType()==OP_SELL)OrderClose(OrderTicket(),maxlot,NormalizeDouble(Ask, Digits),slippage,Yellow);
  } } }


чет он не работает , закрывает в секунду
 
forexnew:


私の理解が正しければ、市場での注文の状態をチェックしながら?-


面白いものですねぇ。コードの全文を掲載できますか?注文と入出金とがどのように結びついているのか、よくわからない。クローズしたポジションの履歴を再計算することなく、最初に口座に入金された金額、いわば初期残高を割り出すことはできるのでしょうか。すべてのブローカーが全取引履歴を提供しているわけではなく、1ヶ月以上前の 履歴もあるため、EAの収益性の再計算は間違っている:開始日は正しいが、残高は1ヶ月前のものである。その結果、毎月の利益は取引期間全体にわたって伸びることになります。


これは、やはり違うのだろう。
端末で「アカウント履歴」タブを開き、右クリックして「すべての履歴」を選択します。
履歴は、口座開設時までさかのぼってダウンロードされます。
 
forexnew:


私の理解が正しければ、市場での注文の状態をチェックしながら?-


面白いものですねぇ。コードの全文を掲載できますか?注文と入出金とがどのように結びついているのか、よくわからない。クローズしたポジションの履歴を再計算することなく、最初に口座に入金された金額、いわば初期残高を割り出すことはできるのでしょうか。すべてのブローカーが全取引履歴を提供しているわけではなく、1ヶ月以上前の履歴もあるため、Expert Advisorの収益性の再計算が誤っている:開始日は正しいが、残高は1ヶ月前のものである。その結果、毎月の利益は取引期間全体にわたって伸びることになります。

ここではそういうことではなく、ある時間までに口座への入出金があったかどうかをプログラム的に記録しておくということです。 コードはまだありません。ここに ポジションボリューム調整の基本的な計算式があります。(プレースメント/引き出しの数(総資金額ベース)がそれに連動している)。
 
nuan:


一瞬で閉まる」ってどういうこと?
長い時間?それとも何?

 

チャーターとは 、30分後ではなく、同じ秒数でオーダーをクローズすることを意味します。


私はあなたの例のように設定しました


datetime TimeM30=iTime(NULL,30,0);
    if(TimeM30==prevtime) return(0); 
    prevtime = TimeM30;   
    CloseAllPosTime();
ロボットは他の理由で閉じることはありません。つまり、ストップや利益で閉じることはありません。


1 2011.07.29 00:00 購入 1 0.01 1.4328 1.3328 1.5328 0.00 1000.00
2 2011.07.29 00:01 close 1 0.01 1.4327 1.3328 1.5328 -0.10 999.90
3 2011.07.29 00:01 購入 2 0.01 1.4329 1.3329 1.5329 0.00 999.90
4 2011.07.29 00:01 close 2 0.01 1.4326 1.3329 1.5329 -0.30 999.60
5 2011.07.29 00:01 購入 3 0.01 1.4328 1.3328 1.5328 0.00 999.60
6 2011.07.29 00:03 close 3 0.01 1.4327 1.3328 1.5328 -0.10 999.50
7 2011.07.29 00:03 購入 4 0.01 1.4329 1.3329 1.5329 0.00 999.50
8 2011.07.29 00:03 close 4 0.01 1.4329 1.3329 1.5329 0.00 999.50


 
Roman.:
これは今回の問題ではなく、ある時間までに口座への入金/出金があったかどうかです。 コードはまだありません。ここに ポジションボリューム調整の基本的な計算式があります。(入出金の数(総資金額)がそれに紐づく)

わかったよ。

また、0ドルをスタートとし、1回目の入金を上乗せとして口座開設を考えるとアカウントに行われたすべてのトッピング(最初のトッピングを含む)をプログラム的に判断することは可能でしょうか?