どんな新人の質問でも、フォーラムを乱雑にしないように。プロフェッショナルは、通り過ぎないでください。Nowhere without you - 6. - ページ 756

 
ssn1:
私は自分のアーカイブシステムに慣れています。
PCのハードディスク破壊、ノートPCの故障など、すでにKeeperで無事に乗り切っています。そして、私のコードは1バイトも失われていないのです。Vaultは便利です。
 

こんにちは。

運動プログラムを書きました。なぜかうまくいかない。

9月29日から10月15日の間にストラテジーテスターでテストしてみました。

このプログラムは次のように機能するはずです:私は買い物をする。0.010まで下がったら、損切りして売るべきです。

買いが発生する。販売はしていません。ビジュアライゼーションを始めると、0.010だけでなく、もっと高い価格になっていることがわかります。不思議ですね。

// -------- 変数 --- 開始 -----
extern double L1=0.01; // 買いのロットサイズ
extern double L1n=0.01; // 買いのロットサイズ(正規化ロット)
extern double AktualAsk=0.0; // 現在のビッド価格
extern double AktualBid=0.0; // 実際の販売価格
extern int int ticketlackmus=1; // 注文の開始が成功した場合の指標。
extern int int ticket1=0; // チケット
extern bool PozOtk1=true;
// -------- 変数 --- End --------
int init()
{
return(0)です。
}


int start()
{
if (PozOtk1==true)
{
//オープンポジション
ticketlackmus=1です。
while (ticketlackmus>0)
{
アラート(" Open first position ");
RefreshRates()。// データを更新する
AktualAsk=NormalizeDouble(Ask,Digits); //価格用
L1n=NormalizeDouble(L1,2); //ロット用です。
ticket1=OrderSend ("GBPUSD", OP_BUY, L1n, AktualAsk, 5, 0, 0, 0,CLR_NONE);
if (ticket1>0) ticketlackmus=-1;
{
アラート(" ORDER OPEN ", ticket1, ", ticketlackmus)を表示します。
}
}
PozOtk1=false。
Alert (" PozOtk1 ", PozOtk1);
}

RefreshRates()。// RefreshRates()
AktualBid=NormalizeDouble(Bid,Digits);//価格用
if (AktualBid<=AktualAsk-0.010 && PozOtk1==false)。
{
RefreshRates(); // データをリフレッシュする
オーダーセレクト(ticket1, SELECT_BY_TICKET;)
L1n=NormalizeDouble(L1,2); //ロット分
OrderClose (ticket1, L1n, AktualBid, 5)です。
PozOtk1=trueとした。
}

return(0)です。
}

int deinit()
{
return(0)です。
}


オゼロ。

 

コードを挿入する際は、マジックSRC ボタンをご使用ください。

フォーラムでコードを正しく挿入 する

 
// -------- переменные --- Н -----
extern double L1=0.01;            // размер лота для покупки 
extern double L1n=0.01;           // размер лота для покупки 
extern double AktualAsk=0.0;
extern double AktualBid=0.0;
extern int ticketlackmus=1;       // "лакмусовая бумажка" успешности откарытия ордера
extern int ticket1=0;             // тикет 
extern bool PozOtk1=true;
// -------- переменные --- К ----- 
int init() 
   {
      return(0);
   }


int start()    
   {
      if (PozOtk1==true) 
         {     
// Открытие позиции
             ticketlackmus=1;
             while (ticketlackmus>0)
                {
     Alert (" Открытие первой позиции ");
                   RefreshRates();                                        // Обновление данных 
                   AktualAsk=NormalizeDouble(Ask,Digits); //для цены
                   L1n=NormalizeDouble(L1,2); //для лота.
                   ticket1=OrderSend ("GBPUSD", OP_BUY, L1n, AktualAsk, 5, 0, 0, 0, 0, CLR_NONE);    
                   if (ticket1>0) ticketlackmus=-1;
                   {
                   Alert (" ОРДЕР ОТКРЫТ ", ticket1, "  ", ticketlackmus);
                   }
                }
             PozOtk1=false; 
             Alert (" PozOtk1 ", PozOtk1);
          }

      RefreshRates();                                        // Обновление данных 
      AktualBid=NormalizeDouble(Bid,Digits); //для цены
           if (AktualBid<=AktualAsk-0.010 && PozOtk1==false)
       {                              
                     RefreshRates();    // Обновление данных 
                     OrderSelect(ticket1, SELECT_BY_TICKET);   
                     L1n=NormalizeDouble(L1,2); //для лота
                     OrderClose (ticket1, L1n, AktualBid, 5);
                     PozOtk1=true; 
       }

return(0);
   }



int deinit()                                   
   {
      return(0);
   } 

 

もしポジションが特定のシンボル(この場合は"GBPUSD")で開かれるなら、マーケットインフォを通じてこのシンボルのすべてのデータを取ることをお勧め します、つまり、 AktualAsk=NormalizeDouble(Ask,Digits);aktualAsk=MarketInfo( "GBPUSD",MODE_ASK);

そうして、どんな市場データも、避けるために、取らなければならない。

 
// -------- переменные --- Н -----
extern double L1=0.01;            // размер лота для покупки 
extern double L1n=0.01;           // размер лота для покупки 
extern double AktualAsk=0.0;
extern double AktualBid=0.0;
extern int ticketlackmus=1;       // "лакмусовая бумажка" успешности откарытия ордера
extern int ticket1=0;             // тикет 
extern bool PozOtk1=true;
// -------- переменные --- К ----- 
int init() 
   {
      return(0);
   }


int start()    
   {
      if (PozOtk1==true) 
         {     
// Открытие позиции
             ticketlackmus=1;
             while (ticketlackmus>0)
                {
     Alert (" Открытие первой позиции ");
                   RefreshRates();                                        // Обновление данных 
                   //AktualAsk=NormalizeDouble(Ask,Digits); //для цены
                   AktualAsk=MarketInfo( "GBPUSD",MODE_ASK);
                   L1n=NormalizeDouble(L1,2); //для лота.
                   ticket1=OrderSend ("GBPUSD", OP_BUY, L1n, AktualAsk, 5, 0, 0, 0, 0, CLR_NONE);    
                   if (ticket1>0) ticketlackmus=-1;
                   {
                   Alert (" ОРДЕР ОТКРЫТ ", ticket1, "  ", ticketlackmus);
                   }
                }
             PozOtk1=false; 
             Alert (" PozOtk1 ", PozOtk1);
          }

      RefreshRates();                                        // Обновление данных 
      AktualBid=NormalizeDouble(Bid,Digits); //для цены
           if (AktualBid>=AktualAsk+0.010 && PozOtk1==false)
       {                              
                     RefreshRates();    // Обновление данных 
                     OrderSelect(ticket1, SELECT_BY_TICKET);   
                     L1n=NormalizeDouble(L1,2); //для лота
                     OrderClose (ticket1, L1n, AktualBid, 5);
                     PozOtk1=true; 
       }

return(0);
   }



int deinit()                                   
   {
      return(0);
   } 
evillive:

もしポジションが特定のシンボル(この場合、"GBPUSD")でオープンした場合、マーケットインフォを通じてこのシンボルのすべてのデータを取得することをお勧め します。

そうして、どんな市場データも、避けるために、取らなければならない。

Evilliveありがとうございます。

変更を加えました。でも、もう買い始めています。変更後の販売はありません。2014年9月30日~10月中旬のM15テスト。



 
Ozero:

Evilliveさん、ありがとうございます。

変更を行った。しかし、とにかく購入は進んでいた。変更後、販売は行われません。2014年9月30日から10月中旬までM15テスト。



上記のコードの中で、セールが行われそうな箇所を探す
 
OrderClose (ticket1, L1n, AktualBid, 5);
 
Ozero:
これで注文は終了です。売り注文の 開始位置はどこですか。上記のコードにはありません
 
注文が成立しないという意味です :( 初心者なので、言い方が悪かったらすみません。
理由: