MQL4、MQL5に関する初心者からの質問、アルゴリズムやコードに関するヘルプ、ディスカッションなど。 - ページ 257

 
またまたこんにちは。このくだりが分からないので助けてください...。

私は次のようにしたい!

例えば1.23455の価格で最初の取引を開いたとき、私は価格が1.23415に行くときに第二の貿易が開か れるようにしたいと思います。

PHPのコードです。
double positionTPask=NormalizeDouble(Ask*Point,Digits);
double lastT Pa sk1=Normal izeDouble(Ask - 40 * Point.P); double lastTPask1=NormalizeDouble(Ask-40*Point,Digits;

if (
RSI0<RSIDownLevel&&RSIDownLevel<=RSI1){
TP=NormalizeDouble(Ask+takeprofit*Point,Digits);
if (
OrderSend(Symbol(,OP_BUY,Lot,NormalizeDouble(Ask,Digits),slippage,0,TP,NULL,Magic)==-1)Print(GetLastError());

if (
positionTPask1>lastTPask1){
if (
takeprofit!=0)TPm=NormalizeDouble(Ask+takeprofit*Point,Digits);
if (
OrderSend(Symbol(),OP_BUY,Lot,NormalizeDouble(Ask,Digits),slippage,0,TPm,NULL,Magic)==-1) Print(GetLastError());
}}
.
そして、1つの価格で2つの注文を一度に開く・・・。
これでいいのでしょうか、ご確認を...
 

sviter-pro:
Здраствуйте еще раз! Помогите с этой банальностью для вас, ато я разобраться не могу....

Хочу сделать следующее! 

Когда открывается первая сделка по цене к примеру 1.23455, то хочу что бы вторая сделка открывалась когда цена пойдет на 1.23415

double positionTPask = NormalizeDouble(Ask * Point, Digits);
double lastTPask1 = NormalizeDouble(Ask - 40 * Point, Digits);

if (RSI0 < RSIDownLevel && RSIDownLevel <= RSI1){
      TP  = NormalizeDouble(Ask + takeprofit * Point,Digits); 
      if (OrderSend(Symbol(),OP_BUY, Lot,NormalizeDouble(Ask,Digits),slippage,0,TP,NULL,Magic)==-1) Print(GetLastError());
      
   if (positionTPask1 > lastTPask1){
      if (takeprofit!=0) TPm  = NormalizeDouble(Ask + takeprofit * Point, Digits); 
      if (OrderSend(Symbol(), OP_BUY, Lot, NormalizeDouble(Ask, Digits), slippage, 0, TPm, NULL, Magic)==-1) Print(GetLastError());
      }}  
しかも、同じ値段で一度に2つの注文を開けている...。

ちゃんとできているのだろうか?

1行目で、不思議なことがわかりました。それ以上は調べませんでした。

これは 何のため?

double positionTPask = NormalizeDouble(Ask * Point, Digits);

電卓で、AskとPointを掛け合わせる

コードを 正しく貼り 付ける方法は、とてもよくわかります。

 
sviter-pro:
またまたこんにちは。このくだりが分からないので助けてください...。

をしたい!」と思っています。

最初の注文を1.23455で出したら、2番目の注文を1.23415まで行ったところで出したい。

PHPのコードです。
double positionTPask=NormalizeDouble(Ask*Point,Digits);
double lastT Pa sk1=Normal izeDouble(Ask - 40 * Point.P); double lastTPask1=NormalizeDouble(Ask-40*Point,Digits;

if (
RSI0<RSIDownLevel&&RSIDownLevel<=RSI1){
TP=NormalizeDouble(Ask+takeprofit*Point,Digits);
if (
OrderSend(Symbol(,OP_BUY,Lot,NormalizeDouble(Ask,Digits),slippage,0,TP,NULL,Magic)==-1)Print(GetLastError());

if (
positionTPask1>lastTPask1){
if (
takeprofit!=0)TPm=NormalizeDouble(Ask+takeprofit*Point,Digits);
if (
OrderSend(Symbol(),OP_BUY,Lot,NormalizeDouble(Ask,Digits),slippage,0,TPm,NULL,Magic)==-1) Print(GetLastError());
}}
.
1つの値段で2つの注文を開けた.
これでいいのでしょうか、ご確認ください。
アスク-40*ポイントから踊るのではなく、1ポジションの開始時の価格-40*ポイントから踊る必要があります。
 

あまりインジケータを扱ったことがないので、素朴な疑問かもしれませんが、データウィンドウの グラフィカルバッファの表示を無効にするにはどうしたらいいのでしょうか?バッファ3とバッファ4を削除したいのですが、以下のようなコードがあります。

#property strict
#property indicator_chart_window
#property indicator_buffers 4
#property  indicator_color1 Black
#property  indicator_color2 Yellow
#property  indicator_color3 Black
#property  indicator_color4 Black

//---- input parameters
input int RSIPeriod=14;
input int Levl=50;
input ENUM_TIMEFRAMES TF=PERIOD_CURRENT;
//---- buffers
double RSIBuffer[];
double MABuffer[];
double PosBuffer[];
double NegBuffer[];

//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
   string short_name;
//---- 2 additional buffers are used for counting.
   IndicatorBuffers(4);
   SetIndexBuffer(0,RSIBuffer);
   SetIndexBuffer(1,MABuffer);
   SetIndexBuffer(2,PosBuffer);
   SetIndexBuffer(3,NegBuffer);
   
//---- indicator line
   SetIndexStyle(0,DRAW_NONE);
   SetIndexStyle(1,DRAW_LINE);
   SetIndexStyle(2,DRAW_NONE);
   SetIndexStyle(3,DRAW_NONE);
//----
//---- name for DataWindow and indicator subwindow label
   short_name="RSI("+IntegerToString(RSIPeriod,0,' ')+")";
   IndicatorShortName(short_name);
   SetIndexLabel(0,short_name);
   SetIndexLabel(1,"Levl"+"_"+IntegerToString(Levl,0,' ')+" Price");
   SetIndexLabel(2,"U");
   SetIndexLabel(3,"D");
   

   return(0);
  }

これは修正RSIです。計算が過去のデータに基づいているため、バッファが必要で、(グラフィカルでない場合)毎回バッファのサイズを変更してそこに新しいデータを追加したくないので、グラフィカルバッファは私の目的には便利です。

 
Alekseu Fedotov:
Ask-40*Pointからではなく、始値1position-40*Pointから踊るべきです。

だから初値を 読んで踊る...。

 
Aleksey Vyazmikin:

あまりインジケータを扱ったことがないので、素朴な疑問かもしれませんが、データウィンドウの グラフィカルバッファの表示を無効にするにはどうしたらいいのでしょうか?バッファ3とバッファ4を削除したいのですが、以下のようなコードがあります。

これは修正RSIです。計算が過去のデータに基づいているため、バッファが必要で、(グラフィカルでない場合)毎回バッファのサイズを変更してそこに新しいデータを追加したくないので、グラフィカルバッファは私の目的には便利です。


正しく理解できたかどうかわかりませんが。

こんな風に試してみてください。#property indicator_buffers 2

#property strict
#property indicator_chart_window
#property indicator_buffers 2
#property  indicator_color1 Black
#property  indicator_color2 Yellow
 
Alexander Voronkov:

正しく理解できているかは分かりませんが。

こんな風に試してみてください。#property indicator_buffers 2


その通りだと思います。そして善意から、計算のためにグラフィックバッファを使用する場合は、宣言しなければならないと思っていました。

ありがとうございます。
 
Aleksey Vyazmikin:データウィンドウに グラフィカルバッファを表示しないようにするには?バッファ3とバッファ4を削除したいのですが、以下のようなコードがあります。

をクリックすると、データウィンドウに表示されないようにするには、次のようにします。

SetIndexLabel(2,NULL);  // Запрет в окно Данные буфера 3
SetIndexLabel(3,NULL);  // Запрет в окно Данные буфера 4
 
STARIJ:

データウィンドウに出力しないようにするには、次のようにします。


ありがとうございます。この動きで、iCustomを通してウィンドウデータで 禁止されたバッファを見ることができるようになるのでしょうか?

 
Aleksey Vyazmikin: ありがとうございます。この動きにより、iCustom?経由でデータウィンドウに 出力できないバッファ?

iCustomでは、データウィンドウに 表示されているものだけを見ることができます。この関数の最後のパラメータは、データウィンドウに 表示されているバッファの数です。

Просмотр и настройка графиков - Графики котировок, технический и фундаментальный анализ - Справка по MetaTrader 5
Просмотр и настройка графиков - Графики котировок, технический и фундаментальный анализ - Справка по MetaTrader 5
  • www.metatrader5.com
Графики в торговой платформе отображают изменение котировок финансовых инструментов во времени. Они необходимы для проведения технического анализа...
理由: