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

 
おはようございます。コンディションがうまくいかない
bool CCInapravlenie=false;
if( CCI_50S>100&&CCI_50<100 ||CCI_50S>0&&CCI_50<0|| CCI_50S>-100&&CCI_50<-100 )CCInapravlenie=true;

if(CCInapravlenie){ imja = DoubleToStr(Time[0], 0); 
ObjectCreate(imja, 22, 0, iTime(NULL,0,0),iLow(NULL,0,0)-0.0001);ObjectSet(imja, OBJPROP_ARROWCODE, 241);
ObjectSet(imja, OBJPROP_COLOR , Yellow); // стрелка жолтая 
}//&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&

もう、ifeの文字列を見て、見て、見て、見て......。 何か理由があるに違いない、私が混乱して、単純で初歩的なことが見えていないのかもしれない、そういうこともあります。

朝から見ました。出て行った。戻ってきてもう一度見てみると、より簡単に、ifs、more、less...といった感じです。全く理解できない。



そして、これは私のスタートの下での話です。
double EMA_10 = iMA( NULL, 0, 10, 0, MODE_EMA, PRICE_CLOSE, 0);
double EMA_20 = iMA( NULL , 0, 20, 0, MODE_EMA, PRICE_CLOSE, 0);
double LMA_100 =iMA( NULL , 0, 100, 0, MODE_LWMA, PRICE_CLOSE, 0);
double МА_30 = iMA( NULL , 0, 30, 0, MODE_SMA, PRICE_CLOSE, 0);
double CCI_50 = iCCI( NULL, 0, 50, PRICE_CLOSE, 0);

double EMA_10S = iMA( NULL, 0, 10, 0, MODE_EMA, PRICE_CLOSE, 1);
double EMA_20S = iMA( NULL , 0, 20, 0, MODE_EMA, PRICE_CLOSE, 1);
double LMA_100S =iMA( NULL , 0, 100, 0, MODE_LWMA, PRICE_CLOSE, 1);
double МА_30S = iMA( NULL , 0, 30, 0, MODE_SMA, PRICE_CLOSE, 1);
double CCI_50S = iCCI( NULL, 0, 50, PRICE_CLOSE, 1);


p.s. すべてはこの戦略的条件のためです。

EMA-期間10が上から下へクロス EMA-期間200、CCIが上から下へ0.100または100をクロス、キャンドルがLMA-期間100を閉じるか下回る。
 
TheXpert:
0xはまさに16桁の数字です。

ありがとうございます。
 

黄色の矢印が全くない。悪魔は知っている。しかも、ジークコンディションが効くのに!!!!

Zirkの状態。

bool napravlenieCCI=false;
 if( CCI_50S<100&&CCI_50>100 ||CCI_50S<0&&CCI_50>0|| CCI_50S<-100&&CCI_50>-100  )napravlenieCCI=true;
  if(napravlenieCCI){  string imja = DoubleToStr(Time[0], 0);
  ObjectCreate(imja, 22, 0, iTime(NULL,0,0),iHigh(NULL,0,0)+0.0004); 
  ObjectSet(imja, OBJPROP_ARROWCODE, 242);
  Print(" ObjectSet242  ", GetLastError());
  ObjectSet(imja, OBJPROP_COLOR , Red);Print(" сOBJPROP_COLO  ", GetLastError());}

スクリーンショット

 
TarasBY:

インジケータ・アレイの0番目のインデックスを埋めない。

を参照してください。

ちょっと(構造的に)曲がっていますが、最初のうちはこれでいいでしょう。アドバイス:「コードを書くための正しいアプローチにすぐに慣れること」。例えば、次のような条件をコードで使用します。

遅かれ早かれ、テスターをオンライン取引に任せ、複数のEAが並行して動作する可能性があり、このコードは動作しないため、無教養である。


ご返信ありがとうございました

知ることができる。もっと配列の勉強をしたほうがいい。

Total==0」の条件は、私のアイデアを実際に手早く確認するために書いたものです。これからCode Baseを調べて、この状態を修正するための類似のものを探してみます。

正しいコードの書き方を学ばなければならない。訂正させていただきます。

どうもありがとうございました。



 
Vinin:

iHighest()iLowest() のどこが気に入らないのでしょうか?


このような機能があることを知りませんでした。これから試してみようと思います。

情報提供ありがとうございました

 
TheXpert:
0xはまさに16桁の数字です。

16進数ではその両方を指します。例えば、C言語では0x0000、アセンブラでは0000Hです。
 

こんにちは。

受信した情報をファイルに追加する方法を教えてください。つまり、ある数字を取得したら、その数字をファイルに書き込む 必要があります。

FileWriteStringのようですが、なぜかあるものの代わりに虚無に書き込まれます...どなたか正しい方法を例示していただけないでしょうか。

...また、録音が行われるとしても、読めないような理解不能なエンコードで行われている -(

ありがとうございます。

 
TarasBY:

インジケータ・アレイの0番目のインデックスを埋めない。

を参照してください。

ちょっと(構造的に)曲がっていますが、最初のうちはこれでいいでしょう。アドバイス:「コードを書くための正しいアプローチにすぐに慣れること」。例えば、次のような条件をコードで使用します。

なぜなら、遅かれ早かれ、Strategy Testerを離れて、複数のEAが並行して動作するオンライン取引に切り替えることになり、このコードが動作しなくなるからです。


私が理解した限りでは、このようにやり直す必要があるのです。

double L_1= iCustom(NULL,0,"Go_go",K,0,1);  //Линия минимума
double L_2= iCustom(NULL,0,"Go_go",K,1,1);  //Линия максимума 

また同じ問題が発生した。Expert Advisorを起動すると、すぐにSELL注文をオープンしてしまう。

その理由を教えてください。

 
Pacman:


私が理解する限り、このようにやり直す必要があります。

また同じ問題が発生した。Expert Advisorを実行すると、すぐにSELL注文が開かれる。

その理由を教えてください。

交換する。

  double L_1= iCustom(NULL,0,"Go_go",K,0,0);  //Линия минимума
  double L_2= iCustom(NULL,0,"Go_go",K,1,0);  //Линия максимума 

へ。

  double L_1= Low[iLowest (NULL, 0, MODE_LOW, K, 1)];;    //Значение минимума
  double L_2= High[iHighest (NULL, 0, MODE_HIGH, K, 1)];;  //Значение максимума 

そして、なぜ売り注文が(あなたのバージョンで)開くのか(私が先に言ったことに基づいて)、自分でその答えを見つけてください!!!

 

トレードの方向に合わせてフラグを立てました。条件:ライン間の1つのゾーンに当たれば買い、それ以外のゾーンに当たれば買い控え、売り。この工程を横線で規制しています。

extern bool    Покупать  = false;
extern bool    Продавать = false; 


   if ( pcb < Ask && Ask < pl )       // Если Аск цены попал в зону между Уровнем и КлозеБай,
    {                             
     Покупать = false;                // останавливаем покупку
     Продавать = true;
    }
   if ( pl < Bid && Bid < pcs )       // Если Бид цены попал в зону между Уровнем и КлозеСелл,
    {                            
     Продавать = false;               // останавливаем продажи (контрольный флаг)
     Покупать = true;
    }
   if ( pl < Bid && Bid < pb )        // Если Бид цены попал в зону между Уровнем и Покупкой,
    {                                 // начинаем покупать
     Покупать = true;
    }
   if ( pl > Ask && Ask > ps )        // Если Аск цены попал в зону между Уровнем и Продажей,
    {                                 // начинаем продавать
     Продавать = true;             
    }

その前に、露出したラインの価格を聞いています。そしてその後に、フラグに応じて、注文を出したり、閉じたりするブロックがあります。

コードは些細なことですが簡単です。でも...- 質問...

この設計が機能し始めると、売買値が予測不可能(カオス)になることが判明。なぜそうなるかというと、「if」関数と「end」「more/less」演算子には明確な条件があるからです。

つまり、プログラムは自分の都合で行動する。変数の値に何が書かれていても、買ったり売ったり、何もしなかったりする。


どのように、何を書けば、条件が整うのか、そして何より、その条件が整うのか。何が間違っていて、何が考慮されていないのか?(関数の条件に必要なことは全て記載したつもりです)。


また、このトピックには別の問題もあります。条件によって変数が変化する場合、Expert Advisor の設定(F7 でアクセスする場合)の値は、ユーザーが設定したものと同じになります。だから、これらの変数の現状を見ることができないのです。どうすれば、彼らの価値観が今どうなっているのかがわかるようになるのか。