[アーカイブ!】どんなルーキーの質問でも、フォーラムを散らかさないように。プロフェッショナルの皆さん、通り過ぎないでください。あなたなしではどこにも行けない - 2. - ページ 187

 
NayTmeR:
例えば、

線分val1[c]が上方0.45を横切った時、変数TimeBeginに時間値が代入される

交差点があるかどうかを調べてから、時刻を記憶する。
 

この時間をどのように変数に代入するのですか?

 
eddy:
まあ、矢印はオープニングバーにあるんだけどね。

オープニングバーに矢印がありますが、対応する関数 - OrderSend()によって描かれています。この矢印はOrderModify()で描かれた矢印とは関係ありませんよね?OrderModify()を使って、矢印の色だけでなく、変数SLの値を変えることで、ストップロスのレベルも変えられると理解したのですが、いかがでしょうか?ヘルプに書いてあります。

boolOrderModify() int ticket, double price, double stoploss, double takeprofit, datetime expiration, color arrow_color=CLR_NONE)

過去に建てたポジションや未決済注文の パラメータを変更します。

矢印の色を変えるだけでなく、「以前に開いた注文のパラメータを変更する」ことを意味します。ストップを変更し、矢印を描くことを示唆するものである。でも、なぜかやらないんです。

 

のみ」は矢印のことであって、機能がどうこうということではありません。

стрелки на баре открытия есть, но нарисованные соответствующей функцией - OrderSend(). Эти стрелки же не относятся к стрелкам, рисуемым OrderModify()?

つまり、ストップやテイクを設定することで、矢印が変化するのです。

 
NayTmeR:

この時間をどのように変数に代入するのですか?

キムの本には、このための関数があります。
 
todem:
キムのコレクションには、そんな特集があります。

もう少し具体的に教えてください。どこにあるのですか?キムのコレクションはどこで見ることができますか?
 
eddy:

のみ」は矢印のことであって、機能がどうこうということではありません。

ストップやテイクを設定する機能で、矢印が変化します。

OrderModify()のマニュアルにはこう書かれています。

arrow_color - チャート上のストップロスやテイクプロフィットの修正矢印の色です。このパラメータがない場合、または値がCLR_NONEの場合、チャートに矢印は表示されません。

つまり、私が理解した限りでは、OrderModify()は「MODIFICATION arrows」と書いてあるので、OrderSendで作成した開閉矢印だけでなく、OrderModifyで作成した修正矢印もあるため、棒を描いているのだと思います。また、これらのMODIFICATION矢印は、パラメータが存在しないかCLR_NONEに 等しい場合にのみ、欠落させることができる。しかし、私のパラメータは存在し、"Green "に等しい。修正矢印の有無は、特別なパラメータはなく、そのCLR_NONEの有無で制御されていると理解しました。同じヘルパーにあるOrderSendと類推して判断しています。

arrow_color - チャート上の開始矢印の色です。パラメータがない場合、または値がCLR_NONEの場合は、グラフにオープニングの矢印は表示されません。

 

isCloseLastPosByStop 関数 ()についてのヘルプをお願いします。

MetaEditorの 関数isCloseLastPosByStop ()に挿入しています(ただし、https://www.mql5.com/ru/forum/107476/page21 に書かれているもののみ

コンパイルに失敗した後、エラーが発生します。

'(' - 関数定義が予期しない

't' - 変数が定義されていない

't' - 変数が定義されていない

'}'- アンバランスな括弧

他のコードにコメントしたように、この関数です。

 

みなさん、こんにちは。以下のものを組み合わせるのにご協力ください。結果は、価格に沿った2本の線と、Askの20ピップ下の線となるはずです。

しかも、1tickで20ポイントも変わるとビープ音が鳴るんです。

すべて別個に問題なく動作します。ありがとうございました。

1) ラインはAskの20ピップス下にある。

//+------------------------------------------------------------------+
//| エキスパート初期化関数
//+------------------------------------------------------------------+
int start()
{
ObjectCreate("MyPriceLine", OBJ_HLINE, 0, 0, Ask-20*Point) ;
ObjectSet("MyPriceLine", OBJPROP_PRICE1, Ask-20*Point);
return(0)です。
}

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

2)Askの上のラインは20pで。

//+------------------------------------------------------------------+
//| エキスパート初期化関数
//+------------------------------------------------------------------+
int start()
{
ObjectCreate("MyPriceLine", OBJ_HLINE, 0, 0, Ask+20*Point) ;
ObjectSet("MyPriceLine", OBJPROP_PRICE1, Ask+20*Point);
return(0)です。
}

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

3) 価格の時間的変化率

#property show_inputs

extern int int pips=2; //Ask を変更する。
extern double Time_=0.1; //c.~ ダニ
extern bool all_from_view=true; //カレントシンボルのみ - false

int i, l, p, number_of_characters;
文字列 val[], on_screen;
int Ask_save[];

//+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=
void start(){。
number_of_characters=SymbolsList(val, true);//val 配列にツールとその数を書き込む SymbolsList 関数を呼び出す。
ArrayResize(Ask_save,number of_characters);
if(number of_characters == -1){ Alert("SymbolsList(string &Symbols[], bool Selected) failed"); return;}; }.
if(!all_from_selected){。
number_of_characters=1です。
ArrayResize(Ask_save,number_of_characters)を使用します。
ArrayResize(val,number of_characters)。
val[0]=Symbol()。
}

while(true&&!IsStopped()){ //許可され、停止されていなければスクリプトは続行されます。

Alert("再計算時間" +Time_+" 秒;)

for(i=0;i<number of_characters;i++){ //calculate value of spread for symbol from market watch.
if((Ask_save[i]-MarketInfo(val[i],MODE_ASK)/MarketInfo(val[i],MODE_POINT))>=pips){ (Ask_save[i]-MarketInfo[i]/MODE_POINT])です。
Alert(val[i]+", "+Period()+" changed downward by "+DoubleToStr((Ask_save[i]-MarketInfo(val[i],MODE_ASK)/MarketInfo(val[i],MODE_POINT)),0)+" pips");
PlaySound("timeout.wav")。
}
if((MarketInfo(val[i],MODE_ASK)/MarketInfo(val[i],MODE_POINT)-Ask_save[i])>=pips){ (MarketInfo(val[i],MODE_POINT)-Ask_save[i])>=pips))
Alert(val[i]+", "+Period()+" changed upwards by "+DoubleToStr((MarketInfo(val[i],MODE_ASK)/MarketInfo(val[i],MODE_POINT)-Ask_save[i]),0)+" pips");
PlaySound("email.wav")。
}
Ask_save[i]=MarketInfo(val[i],MODE_ASK)/MarketInfo(val[i],MODE_POINT) とする。
}
Sleep(Time_*1000);// 秒間休止する。
}

/*
number_of_characters=SymbolsList(val, true);//val 配列にツールとその数を書き込む SymbolsList 関数呼び出し
if(number of_characters == -1){ Alert("Error opening file in SymbolsList(string &Symbols[], bool Selected)"); return;} ・・・・・・・・・・。

while(true&&!IsStopped()){ //許可され、停止されていなければスクリプトは続行されます。
on_screen="\rn"; // インデント
for(i=0;i<number of_characters;i++)//calculate spread value for symbol from market review.
on_screen=on_screen+val[i]+" スプレッドコスト = " + DoubleToStr(MarketInfo(val[i],MODE_SPREAD)*MarketInfo(val[i],MODE_TICKVALUE),0)+"\r\n".
コメント(to_screen);//表示
Alert("recalculate");//Signal
Sleep(3000);//3秒間の一時停止。
}
*/
}
void deinit(){Comment("");}.
//+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=


//+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=
//この関数は,Market Watchからすべての金融商品を読み取ります.
//+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=
int SymbolsList(string &Symbols[], bool Selected){.
int Offset, SymbolsNumber; string SymbolsFileName;
if(Selected) SymbolsFileName = "symbols.sel"; else SymbolsFileName = "symbols.raw";
int hFile = FileOpenHistory(SymbolsFileName, FILE_BIN|FILE_READ);
if(hFile < 0) return(-1); if(Selected) { SymbolsNumber = (FileSize(hFile) - 4) / 128; Offset = 116; }.
else { SymbolsNumber = FileSize(hFile) / 1936; Offset = 1924; }.
ArrayResize(Symbols,SymbolsNumber)。
if(Selected) FileSeek(hFile, 4, SEEK_SET);
for(int i = 0; i < SymbolsNumber; i++){Symbols[i] = FileReadString(hFile, 12); FileSeek(hFile, Offset, SEEK_CUR);}.
FileClose(hFile)を実行します。
return(SymbolsNumber)とする。
}

 
globad:

皆さん、こんにちは。以下のものを組み合わせるのにご協力ください。最終的な結果は、価格に続く2本の線、20ptsでAskの下の1本、...となるはずです。

これはお願いする側にも失礼な話です。正しいポストコードの方法を学ぶ→SRC