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

 
artmedia70:
このような質問は、610スレッドで どうぞ。


ありがとうございます、なくなりました。
 
Zolotai:

ええ、でもね。他人のコードを掘り起こすことになる。というのは理解できないし、時間がかかるしそれを把握すること。

Tutorialから始まり、Documentation、など。他に方法はないのか!そして、他の人のコードを理解し、そこから多くを学ぶことができるようになるのですヒントは教えるものではなく、腐敗させるものだ
 

ビジュアライゼーションに関する質問です。

次のようなコマンドで、保留中の注文を作成します。

OrderSend(Symbol(), OP_BUYLIMIT, lot, price, 3, 0, take_profit, 999, 999, 0, Blue)を実行。

テスターでは、そのすべての経路を矢印で見ることができます: 保留注文 ------> 買い --------------> 利益確定売り

しかし、注文時に 表示されるのは青い矢印だけで、買いや利食いはログで推測するしかない。実際のチャートでもテスターと同じように矢印を表示する方法はありますか?

 
Denis111:

ビジュアライゼーションに関する質問です。

次のようなコマンドで、保留中の注文を作成します。

OrderSend(Symbol(), OP_BUYLIMIT, lot, price, 3, 0, take_profit, 999, 999, 0, Blue)を実行。

テスターでは、矢印はそのすべての経路を示しています: 保留注文 ------> 買い --------------> Take Profitで売る

現実には、注文が入った時に青い矢印が出るだけで、買いや利食いはログで推測するしかないのです。実際のチャートでもStrategy Testerと同じように矢印を表示させる方法はありますか?


そのためには、TPなしで開き、修正時にも色を指定すると、開きそのものから点線のある閉じた三角形になります
削除済み  

こんにちは、私は保留中の 買い注文を 開くための簡単なスクリプトを書きました。このスクリプトは、デモ口座では正常に動作しますが、実際の口座では、取引が許可されていないことを意味するエラー:133が発生します。何が問題なのか、教えてください。このエラーの原因は何でしょうか?


extern int orderSize = 50;
extern int SL = 20;
extern int TP = 20;

int start()
{
double correctPoint = 0.0001;
double priceOpen = iOpen( Symbol(), PERIOD_M5, 0 ); //変数 priceOpen に現在の 5 分値バーの始値を書く

double priceBuy = priceOpen + (double)orderSize * correctPoint; //待機注文が置かれる価格
double priceTP = priceBuy + (double)TP * correctPoint;
double priceSL = priceBuy - (double)SL * correctPoint;

while( !IsTradeAllowed() )
Sleep( 100 );
int codeError = OrderSend( Symbol(), OP_BUYSTOP, 1.5, priceBuy, 100, priceSL, priceTP );
if( codeError == -1 )
Alert ("BuyStop error: ", GetLastError( ));

return(0 );
}//± ...
 
そしてここで、一つの質問で掲示板の半分を埋め尽くす人がいることが判明しました。
 

簡単なフクロウを作りたいのですが・・・1回目の注文でSLとTPが130のエラーになるスクリプトとTralingstopのコードを どこに挿入 すればいいのか?

//+------------------------------------------------------------------+
//| установка мышкой отложенных ордеров                              |
//|                               Copyright © 2012, Хлыстов Владимир |
//|                                                cmillion@narod.ru |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2012, Хлыстов Владимир"
#property link      "cmillion@narod.ru"
#property show_inputs

//--------------------------------------------------------------------
extern int     Stoploss          = 0,     //стоплосс ордеров
               Takeprofit        = 0;     //тейкпрофит ордеров
extern double  Lot               = 0.1;   //лот
extern int     Magic             = 0;     //уникальный номер ордеров этого советника
extern bool    comment           = true;  //выводить информацию на экран
//--------------------------------------------------------------------
int start()
{
   int n;
   double SL,TP;
   double Price = NormalizeDouble(WindowPriceOnDropped(),Digits);
   string txt=StringConcatenate("Скрипт выставления рыночного ордера, старт ",TimeToStr(TimeCurrent(),TIME_DATE|TIME_SECONDS));
   while(true)
   {
      RefreshRates();
      if(Price>Ask) 
      {
         if (Takeprofit!=0) TP = NormalizeDouble(Ask + Takeprofit * Point,Digits); else TP=0;
         if (Stoploss!=0)   SL = NormalizeDouble(Ask - Stoploss   * Point,Digits); else SL=0;
         if (OrderSend(Symbol(),OP_BUY,Lot,NormalizeDouble(Ask,Digits),0,SL,TP,"StopOrders",Magic,0,CLR_NONE)!=-1)
              {txt = StringConcatenate(txt,"\nВыставлен BUY ",DoubleToStr(Ask,Digits));break;}
         else txt = StringConcatenate(txt,"\nОшибка ",GetLastError()," выставления BUY ");
      }
      if(Price<Bid) 
      {
         if (Takeprofit!=0) TP = NormalizeDouble(Bid - Takeprofit * Point,Digits); else TP=0;
         if (Stoploss!=0)   SL = NormalizeDouble(Bid + Stoploss   * Point,Digits); else SL=0;
         if (OrderSend(Symbol(),OP_SELL,Lot,NormalizeDouble(Bid,Digits),0,SL,TP,"StopOrders",Magic,0,CLR_NONE)!=-1)
              {txt = StringConcatenate(txt,"\nВыставлен SELL ",DoubleToStr(Bid,Digits));break;}
         else txt = StringConcatenate(txt,"\nОшибка ",GetLastError()," выставления SELL ");
      }
      if (comment) Comment("Попытка ",n," ",txt);
      n++;
      if (n>10) break;
   }
   if (comment) Comment(txt,"\nСкрипт закончил свою работу ",TimeToStr(TimeCurrent(),TIME_DATE|TIME_SECONDS));
   return(0);
}
//--------------------------------------------------------------------
 
MyTHblu:

簡単なフクロウを作りたいのですが・・・1回目の注文でSLとTPが130のエラーになるスクリプトとTralingstopのコードをどこに挿入すればいいのか?


130 - ストップは間違いです。証券会社の規約をもう一度よく読み、そして忘れないように定期的に読み直しましょう。なんでみんなそんなにアルパリが好きなんだ、ハチミツみたいだ...。


トロールのコードは、スタートにコピーしてもいいし、別の関数を使ってもいいし、やはり、スタートから。

 
evillive:

130 - ストップがおかしい。証券会社の取引条件を今一度読み、忘れないように定期的に読み直しましょう。なんでみんなそんなにアルパリが好きなんだ、ハニトラみたいだ...。


トロールのコードは、スタートにコピーしてもいいし、別の関数を使ってもいいし、やはり、スタートから。


このフクロウはCodeBaseから持ってきたものなので、トロールを使った別のフクロウを選ぶこともできます。そしてアルプスでは、SLとTPを入れずにオープンして、すぐに注文を修正しなければなりません。なぜ彼らはブローカーの条件、フォーラムのルール、MT4のヘルプと、このサイトで100回書かれて議論された情報を読んで、こことGoogleで検索を使用する気にしないのですか?基本的な質問をする前に?
 

コードのつなぎ方...トレーディングストップがある...。どこにも挿入していないのですが、もしかしたらエラーがあるかもしれません、コンパイル時に'if' - expression is not allowed on global scopとありますが、ifの前にエラーがあるということのようです・・・ね?

extern bool UseTrailing = true;
extern int lMinProfit = 30;
extern int sMinProfit = 30;
extern int lTrailingStop = 15;
extern int sTrailingStop = 15;
extern int lTrailingStep = 5;
extern int sTrailingStep = 5;
//-----

if (UseTrailing) TrailingPositions();  

void TrailingPositions() 
{
  int cnt = OrdersTotal();

  for (int i=0; i<cnt; i++) {
        if (!(OrderSelect(i, SELECT_BY_POS, MODE_TRADES))) continue;
        if (OrderSymbol() != Symbol()) continue;                

        if (OrderType() == OP_BUY) {
        if (Bid-OrderOpenPrice() > lMinProfit*Point) {
                if (OrderStopLoss() < Bid-(lTrailingStop+lTrailingStep-1)*Point) {
                OrderModify(OrderTicket(), OrderOpenPrice(), Bid-lTrailingStop*Point, OrderTakeProfit(), 0, Blue);
                }
        }
        }

        if (OrderType() == OP_SELL) {
        if (OrderOpenPrice()-Ask > sMinProfit*Point) {
                if (OrderStopLoss() > Ask+(sTrailingStop+sTrailingStep-1)*Point || OrderStopLoss() == 0) {
                OrderModify(OrderTicket(), OrderOpenPrice(), Ask+sTrailingStop*Point, OrderTakeProfit(), 0, Blue);
                }
        }
        }
  }
  
}