こんにちは、友人たち。直前のローソク足からインジケータの色の値を取得して変数に書き込む方法を教えてください。例えば、赤なら double col =1, 黄色なら 2, 緑なら 3 といった具合です。 いろいろなバリエーションを試したが、うまくいかなかった。私は色の値がバッファ内のユニットの可用性に依存することを理解しますが、何らかの理由で私は正確に最後の固定値、すなわち、アクティブなろうそくを得ることができない、それは常に新しい以前のろうそくの外観と色が変化し、最後の演技色を閉じています。どうしてわかるんだろう?)
int col;
int start()
{
int limit;
int counted_bars=IndicatorCounted();
//---- last counted bar will be recountedif(counted_bars>0) counted_bars--;
limit=Bars-counted_bars;
//---- macd counted in the 1st bufferfor(int i=0; i<limit; i++)
if (iRSI(NULL,0,RSI,PRICE_CLOSE,i)<=valeur2)
{
ExtBuffer2[i]=1;if(i=1)col =1;return;
}
elseif (iRSI(NULL,0,RSI,PRICE_CLOSE,i)>=valeur1)
{
ExtBuffer1[i]=1;if(i=1)col =3;return;
}
else
{
ExtBuffer3[i]=1;
if(i=1)col =2;
}
return(0);
}
int start() {
Comment(Info()); // Вывод какой-то информации на экранint KOL_BUY = order_total(0); // Подсчёт количества Buy-позицийint KOL_SELL = order_total(1); // Подсчёт количества Sell-позицийdouble l;
if (order_total()==0) { // Если количество ордеров равно нулю
open(0,Lot,0,TP); // Открываем Buy лотом Lot скорее всего без стопа, но с тейком
open(1,Lot,0,TP); // Открываем Sell лотом Lot скорее всего без стопа, но с тейком
}
if (KOL_BUY==0 && KOL_SELL!=0) { // Если нет Buy и есть Sell
open(0,Lot,0,TP); // Открываем Buy лотом Lot скорее всего без стопа, но с тейком
l=last_trade(1); // Берём лот прошлой Sell
open(1,l,0,0); // Открываем Sell лотом прошлой Sell скорее всего без стопа и тейка
modify_orders(1); // Что-то модифицируем в Sell (в какой и что - не понятно)
}
if (KOL_BUY!=0 && KOL_SELL==0) { // Если нет Sell и есть Buy
open(1,Lot,0,TP); // Открываем Sell лотом Lot скорее всего без стопа, но с тейком
l=last_trade(0); // Берём лот прошлой Buy
open(0,l,0,0); // Открываем Buy лотом прошлой Buy скорее всего без стопа и тейка
modify_orders(0); // Что-то модифицируем в Buy (в какой и что - не понятно)
}
return(0); // Выход из start()
}
この1分間、Expert Advisorは最大40個の注文をオープンします。
もし、最初の1枚が開かなかったら?次の信号を1時間待つ?大丈夫です。
シグナルが出た→このローソク足に注文・ポジションのセット・オープンがあるかを確認→ない→セット・オープンがある→それ以上必要ない。
これは、注文数を制御する方法です...あるいは、最初の関数への呼び出しだけ...
つまり、あなたのようなラインは1つではないのです。
extern int SecondsAfterTheBar = 0; int start(){ ... if(NewBar() == TRUE){ ... } return(0); } bool NewBar(){ RefreshRates(); static bool initial = FALSE; static datetime stat_dtime = 0; if ((TimeCurrent() - stat_dtime >= Time[0] - Time[1] + SecondsAfterTheBar) == TRUE){ stat_dtime = Time[0]; if (initial == TRUE){ return(TRUE); }else{ initial = TRUE; } } return(FALSE); }遅すぎたかもしれませんが、とにかく誰でも私の解決策を使うことができます。
明らかに遅すぎるのですが、私の解決策はとにかく誰かにとって役に立つかもしれません。
ありがとうございます。より普遍的な場合
bool NewBar( datetime SecondsAfterTheBar = 0 )
そして、呼び出すときにラグを秒単位で指定することができます。
こんにちは、友人たち。直前のローソク足からインジケータの色の値を 取得して変数に書き込む方法を教えてください。例えば、赤なら double col =1, 黄色なら 2, 緑なら 3 といった具合です。いろいろなバリエーションを試したが、うまくいかなかった。私は色の値がバッファ内のユニットの可用性に依存することを理解しますが、何らかの理由で私は正確に最後の固定値、すなわち、アクティブなろうそくを得ることができない、それは常に新しい以前のろうそくの外観と色が変化し、最後の演技色を閉じています。どうしてわかるんだろう?)
この色
返信ありがとうございました。
こんにちは、友人たち。直前のローソク足からインジケータの色の値を取得して変数に書き込む方法を教えてください。例えば、赤なら double col =1, 黄色なら 2, 緑なら 3 といった具合です。 いろいろなバリエーションを試したが、うまくいかなかった。私は色の値がバッファ内のユニットの可用性に依存することを理解しますが、何らかの理由で私は正確に最後の固定値、すなわち、アクティブなろうそくを得ることができない、それは常に新しい以前のろうそくの外観と色が変化し、最後の演技色を閉じています。どうしてわかるんだろう?)
これは受注開始の条件なのでしょうか?正しく理解できていますか?
これは受注開始の条件なのでしょうか?正しく理解できていますか?
この条件は、必要なものすべてに対応します。なぜなら、これらのユーザー定義関数は、その名前から何をするのかを推測することができるだけだからです
皆さん、こんにちは...。皆さんは、これが何と書いてあるか分かりますか?
int start()
...
return(0)です。
全ては私の推測に基づくものであり、あくまでも推測に過ぎません。