int start() //функция start
{ //начало startdouble Timestart=GetTickCount(); //переменная, с помощью которой вычисляется время (в милисекундах) начала выполнения эксперта string name="Копия Запись чисел в файл.csv"; //имя создаваемого файлаbool h; //переменная: значение функции FileIsEndingbool h_l; //переменная: значение функции FileIsLineEndingint error; //переменная: ошибкаint handle=FileOpen(name,FILE_CSV|FILE_WRITE,';'); //открываем заданный файл n записываем туда данныеint запись=FileWrite(handle,DoubleToStr(1.3584,4)); //записываем цены OHLC в файл csv (в преобразованном виде, т.е в виде текста)FileClose(handle); //закрываем файл//---------------------------------------------------------------------------------------- 2 -
handle=FileOpen(name,FILE_CSV|FILE_READ,';'); //открываем заданный файлint size=FileSize(handle); //вычисляем размер заданного файлаPrint("Размер файла ",name," составил ",size," байт");
for(int i=0;i<=size;i++)
{
GetLastError();
bool pos=FileSeek(handle,i,SEEK_SET); //смещаем от начала вправо указатель файлаint pos1=FileTell(handle);
double чтение=FileReadNumber(handle); //считываем число из текущей позиции (уже измененной функцией FileSeek) файлового указателя
h=FileIsEnding(handle); //устанавливаем текущее значение переменной h
h_l=FileIsLineEnding(handle); //устанавливаем текущее значение переменной h_l
error=GetLastError(); //значение ошибки, производимой функцией FileIsEndingif(error!=0)Alert("Текущая ошибка ",error); //если код текущей ошибки не равен 0, то получаем номер текущей ошибки//----------------------------------------------------------------------------------------- 3 -Print(" Функция FileSeek вернула: ",pos,
" Указатель находится в позиции - ",pos1,
" Функция FileReadNumber(handle) вернула: ",чтение);//печать сообщения
}
FileClose(handle); //закрываем файл//----------------------------------------------------------------------------------------- 4 -return(0); //выход из start
} //конец start//-------------------------------------- КОНЕЦ START -------------------------------------- 5 -
price1 = iMA(Symbol(),i_maTF,i_maPeriod,i_maShiftByPrice,i_maMethod,i_maPrice,i_shiftBarsBack1+i); // Цена в точке А
price2 = iMA(Symbol(),i_maTF,i_maPeriod,i_maShiftByPrice,i_maMethod,i_maPrice,i_shiftBarsBack2+i); // Цена в точке В
time1 = iTime(Symbol(),Period(),i_shiftBarsBack1 + i - 1); // Время в точке А
time2 = iTime(Symbol(),Period(),i_shiftBarsBack2 + i - 1); // Время в точке В
もちろん、オペレーターの内部で全て賄っています。
for(i = limit - 1;i > 0;i--)
そして、価格と時間の値を配列に転送して、さらに作業する。
varsPrice1[i] = price1; // Массив цен в точке А
varsPrice2[i] = price2; // Массив цен в точке В
varsTime1[i] = time1; // Массив времени в точке А
varsTime2[i] = time2; // Массив времени в точке В
ただし、それが必ずしもうまくいくとは限りません。証券会社のストップウェーブの許容範囲について、ストップサイズとテイクサイズを確認する必要があります。
ありがとうございました。
EAが取引できるように するために必要)
皆さん、ごきげんよう。
この質問が以前にも出されていたら申し訳ないのですが、540ページにも及ぶページを見なければなりません。
これが問題なのです。MT4で、同じ価格の注文が重なってしまい、1つの注文しか表示されません。 MT4で、例えばチャート上の2つの注文が重ならずに並んで表示されるような設定はありますか?そのような設定がない場合、そのような機能を持つ表や グラフを作成 することは可能でしょうか。
皆さん、ごきげんよう。
この質問が以前にも出されていたら申し訳ないのですが、540ページにも及ぶページを見なければなりません。
これが問題なのです。MT4で、同じ価格の注文が重なってしまい、1つの注文しか表示されません。 MT4で、例えばチャート上の2つの注文が重ならずに並んで表示されるような設定はありますか?そのような設定がない場合、そのような機能を持つ表やグラフを作成することは可能でしょうか。
助けてください - EAを書いています - コードを基板として使用しています。
if(drawBacker){。
for(int x=0;x<7;x++)
for(int y=0;y<29;y++)
{
ObjectCreate("A_Fon "+x+y,OBJ_LABEL,0,0,0)を実行します。
ObjectSet("A_Fon "+x+y, OBJPROP_CORNER, positionWindow); // positionWindow // Txt_Location
ObjectSet("A_Fon "+x+y,OBJPROP_XDISTANCE,x*20+5)。
ObjectSet("A_Fon "+x+y,OBJPROP_YDISTANCE,y*20+9)を使用します。
ObjectSetText("A_Fon "+x+y,CharToStr(110),26, "Wingdings",colorSubstrate);//Red);
}
if (drawWingdings==False)
{
for( int posp=1000;posp>0;posp--)
{
ObjectDelete("A_Fon "+posp)。
ObjectDelete("A_Fon0"+pospp)。
ObjectDelete("A_Fon00")。
}
}
}
その結果、膨大な数のオブジェクトがチャートに描かれることになり、ごちゃごちゃになってしまったのです。
テキストの背景を設定する通常のコードを教えてください。
こんにちは...FileIsEnding関数とFileIsLineEnding関数について質問です。FileIsEnding関数とFileIsLineEnding関数の動作を理解するために、次のようなスクリプトを書きました。
ある数字がファイルに書き込まれた後、16進数で見ると、次のようなエントリーがある。
00000000: 31 2e 33 35 38 34 0d 0a|| 1.3584...
最後の2文字はラインフィードとキャリッジリターンと 呼ばれ、これらは自動的に付加されるため、ファイルサイズは6バイトではなく8バイトになります。
少し修正したスクリプトを実行して、カーソルの動きに注目してください(エラーが発生する場所を確認できるように、列挙をファイルサイズより大きくしています)。
インジケーターをデバッグ する際、特定のバーから価格と時間の値の配列をシフ トに出力 する必要があります。
もちろん、オペレーターの内部で全て賄っています。
そして、価格と時間の値を配列に転送して、さらに作業する。
すでに持っているものは、直後にプリントアウトするようにしています。
Expert Logに 印刷される内容です。
ここでは、varsTime1[i] とvarsTime2[i] の両方の価格値と、time1 とtime2 の価格だけが常に0 であることがよくわかる。何がいけないんですか?
全コードを出すべきです。明確なものを当てにするのではなく
推測したくない気持ちはわかりますが、問題がはっきりしているのであれば、せめてヒントだけでも教えていただけませんか?
ホットキーに割り当てられたスクリプトがどのファイルに保存されているか、ご存知の方はいらっしゃいますか?私は突然のような必要性がある場合は、端末の再インストール後に毎回、再びこれらのキーを割り当てないことを任命既に "ホットキー "でこのファイルを保存したい...しかし、唯一のファイルをコピーして、すべて...です。
皆さん、よろしくお願いします。
インジケーターをデバッグする際、特定のバーから価格と時間の値の配列をシフ トに出力 する必要があります。
もちろん、オペレーターの内部で全て賄っています。
そして、価格と時間の値を配列に転送して、さらに操作できるようにします。
すでに持っているものは、直後にプリントアウトするようにしています。
Expert Logに 印刷される内容です。
ここでは、varsTime1[i] とvarsTime2[i] の両方の価格値と、time1 とtime2 の価格だけが常に0 であることがよくわかる。どうしたんですか?
i_maTF ==Period()?・・・・・・・・?
i_maPeriodが妥当な値を取る?
もしかしたら、i_maShiftByPriceに何か問題があるのかもしれません。
もっと正確に言うと、難しいんです。
憶測で物を言うのは良くないと理解していますが、せめて問題がはっきりしているのであればヒントを頂けませんか?
すべてのコードを教えてください