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

 
100yan:

ありがとうございました。
でも、うまくいきません。単純なシフトなのに...56小節前のMA値を知る必要があるんです!どなたかヒントがあれば教えてください。ありがとうございました。
 
ma_shift はシフト、shift は MA を計算するときのバー
 
eddy:

doubleiMA( シンボル、タイムフレーム、期間、ma_shift、ma_method、applied_price、shift)
パラメータ
ma_shift
- shift - 価格チャートに対する指標のシフト。
shift- 指標バッファから取得した値のインデックス(現在のバーから指定した期間分だけ後ろにシフト)

私も読みましたが...もしかしたら間違っていたかもしれませんが、実際にはいろいろと試してみました...。効かない!?例えば、Alligatorの場合、インジケーターのshiftとma_shiftの両方を変更しても、結果は同じで、チャート上でシフトします...。なぜ?
 
IgorM:
すべて正しいのですが、注文がすでに出されていることを制御できないので、毎回の注文は新しいものになります。

この制御はどのように設定するのですか?
 
100yan:
私もそう読みました...私が間違っているのかもしれませんが、実際にはいろいろな方法を試してみました...。効かない!?例えば、Alligatorの場合:インジケーターのshiftとma_shiftの両方を変更しても、結果は同じで、チャートはシフトします......。なぜ?

ma_shift=0 ならば,shift の後に値がない,つまり行が終わっているため,shift がないのだろう。

 
あるウィンドウから別のウィンドウにオブジェクト 私の場合は縦線)を移動またはコピーする方法を教えてください。
 
AndrejFX:
あるウィンドウから別のウィンドウにオブジェクト(私の場合は縦線)を移動またはコピーする方法を教えてください。

コードベースにオブジェクトシンクロナイザーが ある

でも、縦線だけならこっちの 方がいいんですよ。

 
sergeev:

コードベースにはオブジェクトシンクロナイザーが ある

が、縦型だけならこっちの 方がいい。

ナイススクリプト、ありがとうございます
 

eddy:

MainBuffer[i] が100を超えてしまうのですが、どこでエラーになるのでしょうか?

エラーの場所はわかったが、原因がわからない。

HighesBuffer[i]=MathMax(HighesBuffer[i],High[k]); //if(High[k]>maximum) maximum=High[k];
 LowesBuffer[i]=MathMin(LowesBuffer[i],Low[k]);   // if(Low[k]<minimum) minimum=Low[k];

とは違うのです。

if(High[k]>HighesBuffer[i]) HighesBuffer[i]=High[k];
if(Low[k]<LowesBuffer[i]) LowesBuffer[i]=Low[k];
 


みんな助けて、わからないんだ...。買いエントリー:期間14と17の2つのRSI指標が同時にクロスし、上方30以上でクローズしたとき......。売りのエントリー:期間14と17の2つのRSI指標が同時にクロスし、上から下に向かって70のレベルより下に寄ったとき・・・。


私が興味を持っているのは、血液の同時クロスです...すなわち、例

diRSI1とdiRSI2が共に30を下回り、次のローソクの終値で共に30を上回った...です。レベル70でも同様に!


double diRSI1=iRSI(NULL,0,14,PRICE_CLOSE,0);
double diRSI2=iRSI(NULL,0,17,PRICE_CLOSE,0);
double diRSI3=iRSI(NULL,0,14,PRICE_CLOSE,1);
double diRSI4=iRSI(NULL,0,17,PRICE_CLOSE,1);

if(AccountFreeMargin()<(100*Lots)){
Print("We have no money.フリーマージン = ", AccountFreeMargin());
return(0);
}.
if (!ExistPositions()){

if ((diRSI1>30 && diRSI2>30 && diRSI3<30 && diRSI4<30)){
OpenBuy();
return(0);
}.

if ((diRSI1<70 && diRSI2<70 && diRSI3>70 && diRSI4>70)){
OpenSell();
return(0);
} }.
}


もし正しければ、テストではまだ合わないトレードを開いている......。

HELP...